[Openvpn-devel,v1] Silence warning with gcc 15 and O0/01

Message ID 20260723180445.17392-1-gert@greenie.muc.de
State New
Headers
Series [Openvpn-devel,v1] Silence warning with gcc 15 and O0/01 |

Commit Message

Gert Doering July 23, 2026, 6:04 p.m. UTC
  From: Arne Schwabe <arne@rfc2549.org>

When compiling with low optimisation level gcc complains

   route.c:1783:44: error: conversion from ‘int’ to ‘uint8_t’ {aka ‘unsigned char’} may change value [-Werror=conversion]
    1783 |             r6->network.s6_addr[byte--] &= (0xff << bits_to_clear);

With higher it apparently detects that this is cannot be and does not
trigger the warning. Explicitly cast to uint8_t to silence this warning

Change-Id: I96d3698601bb5aac3a0d7ac6ac5b5dd23c975517
Signed-off-by: Arne Schwabe <arne@rfc2549.org>
Acked-by: Frank Lichtenheld <frank@lichtenheld.com>
Gerrit URL: https://gerrit.openvpn.net/c/openvpn/+/1731
---

This change was reviewed on Gerrit and approved by at least one
developer. I request to merge it to master.

Gerrit URL: https://gerrit.openvpn.net/c/openvpn/+/1731
This mail reflects revision 1 of this Change.

Acked-by according to Gerrit (reflected above):
Frank Lichtenheld <frank@lichtenheld.com>
  

Comments

Gert Doering July 24, 2026, 4:25 p.m. UTC | #1
We shouldn't generally compile with -O0 ;-) - but sometimes it's unavoidable
for single-stepping complex interactions...

Your patch has been applied to the master branch.

commit b66d266e2ce556b3364769361586ccac0f66afe5
Author: Arne Schwabe
Date:   Thu Jul 23 20:04:38 2026 +0200

     Silence warning with gcc 15 and O0/01

     Signed-off-by: Arne Schwabe <arne@rfc2549.org>
     Acked-by: Frank Lichtenheld <frank@lichtenheld.com>
     Gerrit URL: https://gerrit.openvpn.net/c/openvpn/+/1731
     Message-Id: <20260723180445.17392-1-gert@greenie.muc.de>
     URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg37816.html
     Signed-off-by: Gert Doering <gert@greenie.muc.de>


--
kind regards,

Gert Doering
  

Patch

diff --git a/src/openvpn/route.c b/src/openvpn/route.c
index 81ce867..8ea745d 100644
--- a/src/openvpn/route.c
+++ b/src/openvpn/route.c
@@ -1780,7 +1780,7 @@ 
         }
         else
         {
-            r6->network.s6_addr[byte--] &= (0xff << bits_to_clear);
+            r6->network.s6_addr[byte--] &= (uint8_t)(0xff << bits_to_clear);
             bits_to_clear = 0;
         }
     }