The contents of the source file a.cpp:

struct A{};
template <> A a;

It gets compiled with no error generated.

$ g++ -v -save-temps -c a.cpp
Using built-in specs.
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man
--infodir=/usr/share/info --enable-shared --enable-threads=posix
--enable-checking=release --with-system-zlib --enable-__cxa_atexit
--disable-libunwind-exceptions --enable-libgcj-multifile
--enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk
--disable-dssi --enable-plugin
--with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre --with-cpu=generic
--host=x86_64-redhat-linux
Thread model: posix
gcc version 4.1.2 20071124 (Red Hat 4.1.2-42)
 /usr/libexec/gcc/x86_64-redhat-linux/4.1.2/cc1plus -E -quiet -v -D_GNU_SOURCE
a.cpp -mtune=generic -fpch-preprocess
ignoring nonexistent directory
"/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../x86_64-redhat-linux/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2

/usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/x86_64-redhat-linux
 /usr/lib/gcc/x86_64-redhat-linux/4.1.2/../../../../include/c++/4.1.2/backward
 /usr/local/include
 /usr/lib/gcc/x86_64-redhat-linux/4.1.2/include
 /usr/include
End of search list.
Using built-in specs.
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man
--infodir=/usr/share/info --enable-shared --enable-threads=posix
--enable-checking=release --with-system-zlib --enable-__cxa_atexit
--disable-libunwind-exceptions --enable-libgcj-multifile
--enable-languages=c,c++,objc,obj-c++,java,fortran,ada --enable-java-awt=gtk
--disable-dssi --enable-plugin
--with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre --with-cpu=generic
--host=x86_64-redhat-linux
Thread model: posix
gcc version 4.1.2 20071124 (Red Hat 4.1.2-42)
 /usr/libexec/gcc/x86_64-redhat-linux/4.1.2/cc1plus -fpreprocessed
/home/ckumar/.ccache/a.tmp.drizzle.flagstonere.local.13966.ii -quiet -dumpbase
a.tmp.drizzle.flagstonere.local.13966.ii -mtune=generic -auxbase-strip
/home/ckumar/.ccache/tmp.hash.drizzle.flagstonere.local.13966.o -version -o
a.tmp.drizzle.flagstonere.local.13966.s
GNU C++ version 4.1.2 20071124 (Red Hat 4.1.2-42) (x86_64-redhat-linux)
        compiled by GNU C version 4.1.2 20071124 (Red Hat 4.1.2-42).
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: bd3e6803e04a6227d5d87dcec6941619
 as -V -Qy -o /home/ckumar/.ccache/tmp.hash.drizzle.flagstonere.local.13966.o
a.tmp.drizzle.flagstonere.local.13966.s
GNU assembler version 2.17.50.0.6-6.el5 (x86_64-redhat-linux) using BFD version
2.17.50.0.6-6.el5 20061020


$ g++ -v -save-temps -c a.cpp
Using built-in specs.
Target: x86_64-unknown-linux-gnu
Configured with: ../gcc-4.4.1/configure --with-mpfr=/opt/mpfr/
--with-gmp=/opt/gmp/ --with-ppl=/opt/ppl/ --with-cloog=/opt/cloog-ppl/
--with-mpc=/opt/mpc/ --prefix=/opt/gcc/441/ --enable-languages=c,c++
Thread model: posix
gcc version 4.4.1 (GCC)
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-c' '-shared-libgcc' '-mtune=generic'
 /opt/gcc/441/bin/../libexec/gcc/x86_64-unknown-linux-gnu/4.4.1/cc1plus -E
-quiet -v -iprefix /opt/gcc/441/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.4.1/
-D_GNU_SOURCE a.cpp -mtune=generic -fpch-preprocess -o a.ii
ignoring nonexistent directory
"/opt/gcc/441/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.4.1/../../../../x86_64-unknown-linux-gnu/include"
ignoring duplicate directory
"/opt/gcc/441/bin/../lib/gcc/../../lib/gcc/x86_64-unknown-linux-gnu/4.4.1/../../../../include/c++/4.4.1"
ignoring duplicate directory
"/opt/gcc/441/bin/../lib/gcc/../../lib/gcc/x86_64-unknown-linux-gnu/4.4.1/../../../../include/c++/4.4.1/x86_64-unknown-linux-gnu"
ignoring duplicate directory
"/opt/gcc/441/bin/../lib/gcc/../../lib/gcc/x86_64-unknown-linux-gnu/4.4.1/../../../../include/c++/4.4.1/backward"
ignoring duplicate directory
"/opt/gcc/441/bin/../lib/gcc/../../lib/gcc/x86_64-unknown-linux-gnu/4.4.1/include"
ignoring duplicate directory
"/opt/gcc/441/bin/../lib/gcc/../../lib/gcc/x86_64-unknown-linux-gnu/4.4.1/include-fixed"
ignoring nonexistent directory
"/opt/gcc/441/bin/../lib/gcc/../../lib/gcc/x86_64-unknown-linux-gnu/4.4.1/../../../../x86_64-unknown-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:

/opt/gcc/441/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.4.1/../../../../include/c++/4.4.1

/opt/gcc/441/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.4.1/../../../../include/c++/4.4.1/x86_64-unknown-linux-gnu

/opt/gcc/441/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.4.1/../../../../include/c++/4.4.1/backward
 /opt/gcc/441/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.4.1/include
 /opt/gcc/441/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.4.1/include-fixed
 /usr/local/include
 /opt/gcc/441/bin/../lib/gcc/../../include
 /usr/include
End of search list.
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-c' '-shared-libgcc' '-mtune=generic'
 /opt/gcc/441/bin/../libexec/gcc/x86_64-unknown-linux-gnu/4.4.1/cc1plus
-fpreprocessed a.ii -quiet -dumpbase a.cpp -mtune=generic -auxbase a -version
-o a.s
GNU C++ (GCC) version 4.4.1 (x86_64-unknown-linux-gnu)
        compiled by GNU C version 4.4.1, GMP version 4.3.1, MPFR version 2.4.1.
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 097af4cf5e65db9e59b9a4d7f0d91d3b
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-c' '-shared-libgcc' '-mtune=generic'
 as -V -Qy -o a.o a.s
GNU assembler version 2.17.50.0.6-6.el5 (x86_64-redhat-linux) using BFD version
2.17.50.0.6-6.el5 20061020
COMPILER_PATH=/opt/gcc/441/bin/../libexec/gcc/x86_64-unknown-linux-gnu/4.4.1/:/opt/gcc/441/bin/../libexec/gcc/
LIBRARY_PATH=/opt/gcc/441/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.4.1/:/opt/gcc/441/bin/../lib/gcc/:/opt/gcc/441/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.4.1/../../../../lib64/:/lib/../lib64/:/usr/lib/../lib64/:/opt/gcc/441/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.4.1/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-c' '-shared-libgcc' '-mtune=generic'


Using built-in specs.
Target: x86_64-unknown-linux-gnu
Configured with: ../gcc-trunk/configure --with-mpfr=/opt/mpfr/
--with-gmp=/opt/gmp/ --with-ppl=/opt/ppl/ --with-cloog=/opt/cloog-ppl/
--with-mpc=/opt/mpc/ --prefix=/opt/gcc/45/ --enable-languages=c,c++
Thread model: posix
gcc version 4.5.0 20090820 (experimental) (GCC)
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-c' '-shared-libgcc' '-mtune=generic'
 /opt/gcc/45/bin/../libexec/gcc/x86_64-unknown-linux-gnu/4.5.0/cc1plus -E
-quiet -v -iprefix /opt/gcc/45/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.5.0/
-D_GNU_SOURCE a.cpp -mtune=generic -fpch-preprocess -o a.ii
ignoring nonexistent directory
"/opt/gcc/45/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.5.0/../../../../x86_64-unknown-linux-gnu/include"
ignoring duplicate directory
"/opt/gcc/45/bin/../lib/gcc/../../lib/gcc/x86_64-unknown-linux-gnu/4.5.0/../../../../include/c++/4.5.0"
ignoring duplicate directory
"/opt/gcc/45/bin/../lib/gcc/../../lib/gcc/x86_64-unknown-linux-gnu/4.5.0/../../../../include/c++/4.5.0/x86_64-unknown-linux-gnu"
ignoring duplicate directory
"/opt/gcc/45/bin/../lib/gcc/../../lib/gcc/x86_64-unknown-linux-gnu/4.5.0/../../../../include/c++/4.5.0/backward"
ignoring duplicate directory
"/opt/gcc/45/bin/../lib/gcc/../../lib/gcc/x86_64-unknown-linux-gnu/4.5.0/include"
ignoring duplicate directory
"/opt/gcc/45/bin/../lib/gcc/../../lib/gcc/x86_64-unknown-linux-gnu/4.5.0/include-fixed"
ignoring nonexistent directory
"/opt/gcc/45/bin/../lib/gcc/../../lib/gcc/x86_64-unknown-linux-gnu/4.5.0/../../../../x86_64-unknown-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:

/opt/gcc/45/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.5.0/../../../../include/c++/4.5.0

/opt/gcc/45/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.5.0/../../../../include/c++/4.5.0/x86_64-unknown-linux-gnu

/opt/gcc/45/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.5.0/../../../../include/c++/4.5.0/backward
 /opt/gcc/45/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.5.0/include
 /opt/gcc/45/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.5.0/include-fixed
 /usr/local/include
 /opt/gcc/45/bin/../lib/gcc/../../include
 /usr/include
End of search list.
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-c' '-shared-libgcc' '-mtune=generic'
 /opt/gcc/45/bin/../libexec/gcc/x86_64-unknown-linux-gnu/4.5.0/cc1plus
-fpreprocessed a.ii -quiet -dumpbase a.cpp -mtune=generic -auxbase a -version
-o a.s
GNU C++ (GCC) version 4.5.0 20090820 (experimental) (x86_64-unknown-linux-gnu)
        compiled by GNU C version 4.5.0 20090820 (experimental), GMP version
4.3.1, MPFR version 2.4.1, MPC version 0.6
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
GNU C++ (GCC) version 4.5.0 20090820 (experimental) (x86_64-unknown-linux-gnu)
        compiled by GNU C version 4.5.0 20090820 (experimental), GMP version
4.3.1, MPFR version 2.4.1, MPC version 0.6
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
Compiler executable checksum: c9ce94de508883076922d2e84e549544
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-c' '-shared-libgcc' '-mtune=generic'
 as -V -Qy -o a.o a.s
GNU assembler version 2.17.50.0.6-6.el5 (x86_64-redhat-linux) using BFD version
2.17.50.0.6-6.el5 20061020
COMPILER_PATH=/opt/gcc/45/bin/../libexec/gcc/x86_64-unknown-linux-gnu/4.5.0/:/opt/gcc/45/bin/../libexec/gcc/
LIBRARY_PATH=/opt/gcc/45/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.5.0/:/opt/gcc/45/bin/../lib/gcc/:/opt/gcc/45/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.5.0/../../../../lib64/:/lib/../lib64/:/usr/lib/../lib64/:/opt/gcc/45/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.5.0/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-c' '-shared-libgcc' '-mtune=generic'


-- 
           Summary: invalid C++ code compiles with no error
           Product: gcc
           Version: 4.5.0
            Status: UNCONFIRMED
          Severity: major
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: cs9in at acm dot org


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

Reply via email to