Bug 55371 - [asan] False -Werror=uninitialized
Summary: [asan] False -Werror=uninitialized
Status: RESOLVED WONTFIX
Alias: None
Product: gcc
Classification: Unclassified
Component: bootstrap (show other bugs)
Version: 4.8.0
: P3 normal
Target Milestone: ---
Assignee: Not yet assigned to anyone
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-11-18 00:03 UTC by H.J. Lu
Modified: 2021-04-12 20:06 UTC (History)
6 users (show)

See Also:
Host:
Target:
Build:
Known to work:
Known to fail:
Last reconfirmed: 2012-12-20 00:00:00


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description H.J. Lu 2012-11-18 00:03:16 UTC
[hjl@gnu-tools-1 gcc]$ /export/build/gnu/gcc-asan/build-x86_64-linux/./prev-gcc/g++ -B/export/build/gnu/gcc-asan/build-x86_64-linux/./prev-gcc/ -B/usr/gcc-4.8.0/x86_64-unknown-linux-gnu/bin/ -nostdinc++ -B/export/build/gnu/gcc-asan/build-x86_64-linux/prev-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs -B/export/build/gnu/gcc-asan/build-x86_64-linux/prev-x86_64-unknown-linux-gnu/libstdc++-v3/libsupc++/.libs -B/export/build/gnu/gcc-asan/build-x86_64-linux/prev-x86_64-unknown-linux-gnu/libsanitizer/asan/.libs -I/export/build/gnu/gcc-asan/build-x86_64-linux/prev-x86_64-unknown-linux-gnu/libstdc++-v3/include/x86_64-unknown-linux-gnu -I/export/build/gnu/gcc-asan/build-x86_64-linux/prev-x86_64-unknown-linux-gnu/libstdc++-v3/include -I/export/gnu/import/git/sources/gcc/libstdc++-v3/libsupc++ -L/export/build/gnu/gcc-asan/build-x86_64-linux/prev-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs -L/export/build/gnu/gcc-asan/build-x86_64-linux/prev-x86_64-unknown-linux-gnu/libstdc++-v3/libsupc++/.libs -c   -g -O2 -faddress-sanitizer -DIN_GCC   -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -Werror -fno-common  -DHAVE_CONFIG_H -I. -I. -I/export/gnu/import/git/sources/gcc/gcc -I/export/gnu/import/git/sources/gcc/gcc/. -I/export/gnu/import/git/sources/gcc/gcc/../include -I/export/gnu/import/git/sources/gcc/gcc/../libcpp/include  -I/export/gnu/import/git/sources/gcc/gcc/../libdecnumber -I/export/gnu/import/git/sources/gcc/gcc/../libdecnumber/bid -I../libdecnumber -I/export/gnu/import/git/sources/gcc/gcc/../libbacktrace    /export/gnu/import/git/sources/gcc/gcc/explow.c -o explow.o
/export/gnu/import/git/sources/gcc/gcc/explow.c: In function ‘rtx_def* plus_constant(machine_mode, rtx, long int)’:
/export/gnu/import/git/sources/gcc/gcc/explow.c:84:7: error: ‘y’ may be used uninitialized in this function [-Werror=uninitialized]
   rtx y;
       ^
cc1plus: all warnings being treated as errors
[hjl@gnu-tools-1 gcc]$ /export/build/gnu/gcc-asan/build-x86_64-linux/./prev-gcc/g++ -B/export/build/gnu/gcc-asan/build-x86_64-linux/./prev-gcc/ -B/usr/gcc-4.8.0/x86_64-unknown-linux-gnu/bin/ -nostdinc++ -B/export/build/gnu/gcc-asan/build-x86_64-linux/prev-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs -B/export/build/gnu/gcc-asan/build-x86_64-linux/prev-x86_64-unknown-linux-gnu/libstdc++-v3/libsupc++/.libs -B/export/build/gnu/gcc-asan/build-x86_64-linux/prev-x86_64-unknown-linux-gnu/libsanitizer/asan/.libs -I/export/build/gnu/gcc-asan/build-x86_64-linux/prev-x86_64-unknown-linux-gnu/libstdc++-v3/include/x86_64-unknown-linux-gnu -I/export/build/gnu/gcc-asan/build-x86_64-linux/prev-x86_64-unknown-linux-gnu/libstdc++-v3/include -I/export/gnu/import/git/sources/gcc/libstdc++-v3/libsupc++ -L/export/build/gnu/gcc-asan/build-x86_64-linux/prev-x86_64-unknown-linux-gnu/libstdc++-v3/src/.libs -L/export/build/gnu/gcc-asan/build-x86_64-linux/prev-x86_64-unknown-linux-gnu/libstdc++-v3/libsupc++/.libs -c   -g -O2  -DIN_GCC   -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -Werror -fno-common  -DHAVE_CONFIG_H -I. -I. -I/export/gnu/import/git/sources/gcc/gcc -I/export/gnu/import/git/sources/gcc/gcc/. -I/export/gnu/import/git/sources/gcc/gcc/../include -I/export/gnu/import/git/sources/gcc/gcc/../libcpp/include  -I/export/gnu/import/git/sources/gcc/gcc/../libdecnumber -I/export/gnu/import/git/sources/gcc/gcc/../libdecnumber/bid -I../libdecnumber -I/export/gnu/import/git/sources/gcc/gcc/../libbacktrace    /export/gnu/import/git/sources/gcc/gcc/explow.c -o explow.o
[hjl@gnu-tools-1 gcc]$
Comment 1 H.J. Lu 2012-11-28 19:29:25 UTC
Also

/export/gnu/import/git/gcc/libgfortran/intrinsics/unpack_generic.c: In function ‘unpack_internal’:
/export/gnu/import/git/gcc/libgfortran/intrinsics/unpack_generic.c:149:12: warning: ‘rstride[0]’ may be used uninitialized in this function [-Wuninitialized]
   rstride0 = rstride[0];
            ^
/export/gnu/import/git/gcc/libgfortran/intrinsics/unpack_generic.c:150:12: warning: ‘fstride[0]’ may be used uninitialized in this function [-Wuninitialized]
   fstride0 = fstride[0];
            ^
/export/gnu/import/git/gcc/libgfortran/intrinsics/unpack_generic.c:151:12: warning: ‘mstride[0]’ may be used uninitialized in this function [-Wuninitialized]
   mstride0 = mstride[0];
            ^
Comment 2 Joost VandeVondele 2012-12-20 18:18:56 UTC
seen as well, workaround: configure with --disable-werror
Comment 3 Martin Sebor 2021-04-12 20:06:41 UTC
In a recent build of GCC 11 I count 69 instances of -Wmaybe-uninitialized without sanitization but not one looking like the one in comment #0.  I don't have a sanitized build handy but the instrumentation injected by the sanitizers is known to induce false positives, so (I think) GCC builds with -Wno-error=maybe-uniitialized when sanitization is enabled.  There are a lot of bugs against the warning with small test cases and odds are that one of them captures the essence of this ancient bug if it is, in fact, a bug and if it hasn't disappeared by now.  Since there's been no activity on this bug in almost a decade I'm going to resolve this report as WONTFIX.  If it's still reproducible please reopen and attach a standalone test case to make it easy to reproduce.