[Nasm-bugs] [Bug 3392466] New: -Wmaybe-uninitialized warning from iflag_set_cpu()

no-reply at bugzilla-nasm.gorcunov.org no-reply at bugzilla-nasm.gorcunov.org
Thu Feb 22 23:28:14 PST 2018


https://bugzilla.nasm.us/show_bug.cgi?id=3392466

            Bug ID: 3392466
           Summary: -Wmaybe-uninitialized warning from iflag_set_cpu()
           Product: NASM
           Version: 2.14 (development)
          Hardware: All
                OS: All
            Status: OPEN
          Severity: normal
          Priority: Medium
         Component: Assembler
          Assignee: nobody at nasm.us
          Reporter: sezeroz at gmail.com
                CC: gorcunov at gmail.com, hpa at zytor.com, nasm-bugs at nasm.us
     Obtained from: Built from git using configure

My gcc7.3 emits the following:

In file included from asm/assemble.h:42:0,
                 from asm/directiv.c:53:
asm/directiv.c: In function ‘process_directives’:
./include/iflag.h:148:28: warning: ‘r.field[3]’ may be used uninitialized in
this function [-Wmaybe-uninitialized]
     a->field[IF_CPU_FIELD] &= ~IF_CPU_LEVEL_MASK;
                            ^~

Indeed, iflag_set_all_features() doesn't set field[IF_CPU_FIELD]
If I modify the boundary in iflag_set_all_features() to include
IF_CPU_FIELD, then the warning is gone. (Although I am not sure
that such a change is correct here.)

diff --git a/include/iflag.h b/include/iflag.h
index 5280703e..98cd9620 100644
--- a/include/iflag.h
+++ b/include/iflag.h
@@ -137,7 +137,7 @@ static inline void iflag_set_all_features(iflag_t *a)
 {
     size_t i;

-    for (i = IF_FEATURE_FIELD; i < IF_CPU_FIELD; i++)
+    for (i = IF_FEATURE_FIELD; i <= IF_CPU_FIELD; i++)
         a->field[i] = ~UINT32_C(0);
 }

-- 
You are receiving this mail because:
You are on the CC list for the bug.
You are watching all bug changes.


More information about the Nasm-bugs mailing list