public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug libstdc++/55413] New: [LTO] hashtable.h:1648 '__bbegin_bkt' may be used uninitialized in this function [-Werror=maybe-uninitialized]
@ 2012-11-20 14:06 david.abdurachmanov at gmail dot com
  2012-11-20 14:09 ` [Bug libstdc++/55413] " david.abdurachmanov at gmail dot com
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: david.abdurachmanov at gmail dot com @ 2012-11-20 14:06 UTC (permalink / raw)
  To: gcc-bugs


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55413

             Bug #: 55413
           Summary: [LTO] hashtable.h:1648 '__bbegin_bkt' may be used
                    uninitialized in this function
                    [-Werror=maybe-uninitialized]
    Classification: Unclassified
           Product: gcc
           Version: 4.7.2
            Status: UNCONFIRMED
          Severity: minor
          Priority: P3
         Component: libstdc++
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: david.abdurachmanov@gmail.com


Hi,

I have enabled -Werror=maybe-uninitialized and normal builds works fine. LTO
builds crashed with error coming from hashtable.h. According to he code,
__bbegin_bkt is not explicitly initialized to anything.

1637       std::size_t __bbegin_bkt;
<snip>
1648     __new_buckets[__bbegin_bkt] = __p;                                     
1649         __bbegin_bkt = __bkt;

Similar issues MIGHT be on the next (in file) template.

1678       std::size_t __bbegin_bkt;
<snip>
1724         __new_buckets[__bbegin_bkt] = __p;
1725       __bbegin_bkt = __bkt;

This is a minor issue, but comments would be welcomed. Is LTO + diagnostics
issue or STL issue? Is the a way to silence them from user-code side? (I tried
GCC diagnostics pragma w/o results).

Attaching *.ii.

## GCC VERSION ##

Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/afs/cern.ch/cms/slc5_amd64_gcc472/external/gcc/4.7.2/bin/../libexec/gcc/x86_64-unknown-linux-gnu/4.7.2/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ../configure
--prefix=/build/davidlt/build-BOOTSTRAP_slc5_amd64_gcc472/b/tmp/BUILDROOT/3526ecf0ad2656770a1b0f9f5e8d92a9/opt/cmssw/slc5_amd64_gcc472/external/gcc/4.7.2
--disable-multilib --disable-nls --enable-languages=c,c++,fortran
--enable-gold=yes --enable-lto
--with-gmp=/build/davidlt/build-BOOTSTRAP_slc5_amd64_gcc472/b/tmp/BUILDROOT/3526ecf0ad2656770a1b0f9f5e8d92a9/opt/cmssw/slc5_amd64_gcc472/external/gcc/4.7.2
--with-mpfr=/build/davidlt/build-BOOTSTRAP_slc5_amd64_gcc472/b/tmp/BUILDROOT/3526ecf0ad2656770a1b0f9f5e8d92a9/opt/cmssw/slc5_amd64_gcc472/external/gcc/4.7.2
--with-mpc=/build/davidlt/build-BOOTSTRAP_slc5_amd64_gcc472/b/tmp/BUILDROOT/3526ecf0ad2656770a1b0f9f5e8d92a9/opt/cmssw/slc5_amd64_gcc472/external/gcc/4.7.2
--with-ppl=/build/davidlt/build-BOOTSTRAP_slc5_amd64_gcc472/b/tmp/BUILDROOT/3526ecf0ad2656770a1b0f9f5e8d92a9/opt/cmssw/slc5_amd64_gcc472/external/gcc/4.7.2
--with-cloog=/build/davidlt/build-BOOTSTRAP_slc5_amd64_gcc472/b/tmp/BUILDROOT/3526ecf0ad2656770a1b0f9f5e8d92a9/opt/cmssw/slc5_amd64_gcc472/external/gcc/4.7.2
--enable-cloog-backend=isl --enable-shared CC='gcc -fPIC' CXX='c++ -fPIC'
CPP=cpp CXXCPP='c++ -E'
Thread model: posix
gcc version 4.7.2 (GCC)

## FULL ERROR ##

In file included from
/afs/cern.ch/cms/slc5_amd64_gcc472/external/gcc/4.7.2/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.7.2/../../../../include/c++/4.7.2/bits/stl_algobase.h:1026:0,
                 from :97:
test.cc: In function 'main':
/afs/cern.ch/cms/slc5_amd64_gcc472/external/gcc/4.7.2/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.7.2/../../../../include/c++/4.7.2/bits/hashtable.h:1648:3:
error: '__bbegin_bkt' may be used uninitialized in this function
[-Werror=maybe-uninitialized]
In file included from
/afs/cern.ch/cms/slc5_amd64_gcc472/external/gcc/4.7.2/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.7.2/../../../../include/c++/4.7.2/bits/stl_algobase.h:1017:0,
                 from :97:
/afs/cern.ch/cms/slc5_amd64_gcc472/external/gcc/4.7.2/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.7.2/../../../../include/c++/4.7.2/bits/hashtable.h:1637:19:
note: '__bbegin_bkt' was declared here
lto1: some warnings being treated as errors
lto-wrapper: /afs/cern.ch/cms/slc5_amd64_gcc472/external/gcc/4.7.2/bin/c++
returned 1 exit status
/afs/cern.ch/cms/slc5_amd64_gcc472/external/gcc/4.7.2/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.7.2/../../../../x86_64-unknown-linux-gnu/bin/ld:
fatal error: lto-wrapper failed
collect2: error: ld returned 1 exit status

## TESTCASE ##

#include <unordered_map>
struct S {  int id;  S(): id(0) {} };
int main(void) {
  std::unordered_map<unsigned int, S> tmap;
  S & res = tmap[0];
  return 0;
}

## COMPILE LINE ##

c++ -v -save-temps -c -DGNU_GCC -D_GNU_SOURCE -O2 -pedantic -pthread -pipe
-Wno-vla -Werror=overflow -Wstrict-overflow -std=c++0x -msse3 -ftree-vectorize
-Wno-strict-overflow -Werror=array-bounds -Werror=format-contains-nul
-Werror=type-limits -fvisibility-inlines-hidden -fno-math-errno --param
vect-max-version-for-alias-checks=50 -felide-constructors -fmessage-length=0
-ftemplate-depth-300 -Wall -Wno-non-template-friend -Wno-long-long
-Wreturn-type -Wunused -Wparentheses -Wno-deprecated -Werror=return-type
-Werror=missing-braces -Werror=unused-value -Werror=address -Werror=format
-Werror=sign-compare -Werror=write-strings -Werror=delete-non-virtual-dtor
-Werror=maybe-uninitialized -Werror=strict-aliasing -Werror=narrowing
-Werror=uninitialized -Werror=unused-but-set-variable -Werror=reorder
-fdiagnostics-show-option -flto -fno-fat-lto-objects -fPIC -MMD test.cc -o
test.o

## LINK LINE ##

c++ -O2 -pedantic -pthread -pipe -Wno-vla -Werror=overflow -Wstrict-overflow
-std=c++0x -msse3 -ftree-vectorize -Wno-strict-overflow -Werror=array-bounds
-Werror=format-contains-nul -Werror=type-limits -fvisibility-inlines-hidden
-fno-math-errno --param vect-max-version-for-alias-checks=50
-felide-constructors -fmessage-length=0 -ftemplate-depth-300 -Wall
-Wno-non-template-friend -Wno-long-long -Wreturn-type -Wunused -Wparentheses
-Wno-deprecated -Werror=return-type -Werror=missing-braces -Werror=unused-value
-Werror=address -Werror=format -Werror=sign-compare -Werror=write-strings
-Werror=delete-non-virtual-dtor -Werror=maybe-uninitialized
-Werror=strict-aliasing -Werror=narrowing -Werror=uninitialized
-Werror=unused-but-set-variable -Werror=reorder -fdiagnostics-show-option -flto
-fno-fat-lto-objects -shared -shared -Wl,-E -Wl,-z,defs test.o -o test.so
-Wl,-E -Wl,--hash-style=gnu


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug libstdc++/55413] [LTO] hashtable.h:1648 '__bbegin_bkt' may be used uninitialized in this function [-Werror=maybe-uninitialized]
  2012-11-20 14:06 [Bug libstdc++/55413] New: [LTO] hashtable.h:1648 '__bbegin_bkt' may be used uninitialized in this function [-Werror=maybe-uninitialized] david.abdurachmanov at gmail dot com
@ 2012-11-20 14:09 ` david.abdurachmanov at gmail dot com
  2012-11-20 14:16 ` paolo.carlini at oracle dot com
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: david.abdurachmanov at gmail dot com @ 2012-11-20 14:09 UTC (permalink / raw)
  To: gcc-bugs


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55413

--- Comment #1 from David Abdurachmanov <david.abdurachmanov at gmail dot com> 2012-11-20 14:07:57 UTC ---
Created attachment 28743
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=28743
Testcase used.


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug libstdc++/55413] [LTO] hashtable.h:1648 '__bbegin_bkt' may be used uninitialized in this function [-Werror=maybe-uninitialized]
  2012-11-20 14:06 [Bug libstdc++/55413] New: [LTO] hashtable.h:1648 '__bbegin_bkt' may be used uninitialized in this function [-Werror=maybe-uninitialized] david.abdurachmanov at gmail dot com
  2012-11-20 14:09 ` [Bug libstdc++/55413] " david.abdurachmanov at gmail dot com
@ 2012-11-20 14:16 ` paolo.carlini at oracle dot com
  2012-11-20 14:55 ` paolo at gcc dot gnu.org
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: paolo.carlini at oracle dot com @ 2012-11-20 14:16 UTC (permalink / raw)
  To: gcc-bugs


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55413

Paolo Carlini <paolo.carlini at oracle dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2012-11-20
                 CC|                            |fdumont at gcc dot gnu.org
         AssignedTo|unassigned at gcc dot       |paolo.carlini at oracle dot
                   |gnu.org                     |com
     Ever Confirmed|0                           |1
           Severity|minor                       |normal

--- Comment #2 from Paolo Carlini <paolo.carlini at oracle dot com> 2012-11-20 14:15:54 UTC ---
I'm testing the obvious fix of initializing it to zero, likewise for __prev_bkt


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug libstdc++/55413] [LTO] hashtable.h:1648 '__bbegin_bkt' may be used uninitialized in this function [-Werror=maybe-uninitialized]
  2012-11-20 14:06 [Bug libstdc++/55413] New: [LTO] hashtable.h:1648 '__bbegin_bkt' may be used uninitialized in this function [-Werror=maybe-uninitialized] david.abdurachmanov at gmail dot com
  2012-11-20 14:09 ` [Bug libstdc++/55413] " david.abdurachmanov at gmail dot com
  2012-11-20 14:16 ` paolo.carlini at oracle dot com
@ 2012-11-20 14:55 ` paolo at gcc dot gnu.org
  2012-11-20 14:55 ` paolo at gcc dot gnu.org
  2012-11-20 14:56 ` paolo.carlini at oracle dot com
  4 siblings, 0 replies; 6+ messages in thread
From: paolo at gcc dot gnu.org @ 2012-11-20 14:55 UTC (permalink / raw)
  To: gcc-bugs


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55413

--- Comment #3 from paolo at gcc dot gnu.org <paolo at gcc dot gnu.org> 2012-11-20 14:54:22 UTC ---
Author: paolo
Date: Tue Nov 20 14:54:11 2012
New Revision: 193663

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=193663
Log:
2012-11-20  Paolo Carlini  <paolo.carlini@oracle.com>

    PR libstdc++/55413
    * include/bits/hashtable.h (_Hashtable<>::_M_rehash_aux): Initialize
    __bbegin_bkt and __prev_bkt to avoid uninitialized warnings.
    * testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
    dg-error line number.

Modified:
    trunk/libstdc++-v3/ChangeLog
    trunk/libstdc++-v3/include/bits/hashtable.h
   
trunk/libstdc++-v3/testsuite/23_containers/unordered_set/instantiation_neg.cc


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug libstdc++/55413] [LTO] hashtable.h:1648 '__bbegin_bkt' may be used uninitialized in this function [-Werror=maybe-uninitialized]
  2012-11-20 14:06 [Bug libstdc++/55413] New: [LTO] hashtable.h:1648 '__bbegin_bkt' may be used uninitialized in this function [-Werror=maybe-uninitialized] david.abdurachmanov at gmail dot com
                   ` (2 preceding siblings ...)
  2012-11-20 14:55 ` paolo at gcc dot gnu.org
@ 2012-11-20 14:55 ` paolo at gcc dot gnu.org
  2012-11-20 14:56 ` paolo.carlini at oracle dot com
  4 siblings, 0 replies; 6+ messages in thread
From: paolo at gcc dot gnu.org @ 2012-11-20 14:55 UTC (permalink / raw)
  To: gcc-bugs


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55413

--- Comment #4 from paolo at gcc dot gnu.org <paolo at gcc dot gnu.org> 2012-11-20 14:54:48 UTC ---
Author: paolo
Date: Tue Nov 20 14:54:36 2012
New Revision: 193664

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=193664
Log:
2012-11-20  Paolo Carlini  <paolo.carlini@oracle.com>

    PR libstdc++/55413
    * include/bits/hashtable.h (_Hashtable<>::_M_rehash_aux): Initialize
    __bbegin_bkt and __prev_bkt to avoid uninitialized warnings.
    * testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust
    dg-error line number.

Modified:
    branches/gcc-4_7-branch/libstdc++-v3/ChangeLog
    branches/gcc-4_7-branch/libstdc++-v3/include/bits/hashtable.h
   
branches/gcc-4_7-branch/libstdc++-v3/testsuite/23_containers/unordered_set/instantiation_neg.cc


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug libstdc++/55413] [LTO] hashtable.h:1648 '__bbegin_bkt' may be used uninitialized in this function [-Werror=maybe-uninitialized]
  2012-11-20 14:06 [Bug libstdc++/55413] New: [LTO] hashtable.h:1648 '__bbegin_bkt' may be used uninitialized in this function [-Werror=maybe-uninitialized] david.abdurachmanov at gmail dot com
                   ` (3 preceding siblings ...)
  2012-11-20 14:55 ` paolo at gcc dot gnu.org
@ 2012-11-20 14:56 ` paolo.carlini at oracle dot com
  4 siblings, 0 replies; 6+ messages in thread
From: paolo.carlini at oracle dot com @ 2012-11-20 14:56 UTC (permalink / raw)
  To: gcc-bugs


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55413

Paolo Carlini <paolo.carlini at oracle dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED
   Target Milestone|---                         |4.7.3

--- Comment #5 from Paolo Carlini <paolo.carlini at oracle dot com> 2012-11-20 14:56:03 UTC ---
Fixed mainline and 4.7.3.


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2012-11-20 14:56 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-11-20 14:06 [Bug libstdc++/55413] New: [LTO] hashtable.h:1648 '__bbegin_bkt' may be used uninitialized in this function [-Werror=maybe-uninitialized] david.abdurachmanov at gmail dot com
2012-11-20 14:09 ` [Bug libstdc++/55413] " david.abdurachmanov at gmail dot com
2012-11-20 14:16 ` paolo.carlini at oracle dot com
2012-11-20 14:55 ` paolo at gcc dot gnu.org
2012-11-20 14:55 ` paolo at gcc dot gnu.org
2012-11-20 14:56 ` paolo.carlini at oracle dot com

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).