[Bug c++/44409] New: explicit call of a defined copy constructor does not work
the following command always outputs 1 instead of the expected 0 g++ bug_report.cpp && ./a.out ;echo $? g++ does not output anything during the compilation the output of g++ -v -save-temps follows the source file bug_report.cpp the preprocessed file bug_report.ii is at the end of this report struct A{ const int i; A():i(1){} A(const A& a):i(0){} }; int main(){ return A(A()).i; } g++ -v -save-temps Using built-in specs. Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Debian 4.4.4-3' --with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared --enable-multiarch --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.4 --program-suffix=-4.4 --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --with-arch-32=i486 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu Thread model: posix gcc version 4.4.4 (Debian 4.4.4-3) COLLECT_GCC_OPTIONS='-v' '-save-temps' '-shared-libgcc' '-mtune=generic' /usr/lib/gcc/x86_64-linux-gnu/4.4.4/cc1plus -E -quiet -v -D_GNU_SOURCE bug_report.cpp -mtune=generic -fpch-preprocess -o bug_report.ii ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu" ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/4.4.4/../../../../x86_64-linux-gnu/include" ignoring nonexistent directory "/usr/include/x86_64-linux-gnu" #include "..." search starts here: #include <...> search starts here: /usr/include/c++/4.4 /usr/include/c++/4.4/x86_64-linux-gnu /usr/include/c++/4.4/backward /usr/local/include /usr/lib/gcc/x86_64-linux-gnu/4.4.4/include /usr/lib/gcc/x86_64-linux-gnu/4.4.4/include-fixed /usr/include End of search list. COLLECT_GCC_OPTIONS='-v' '-save-temps' '-shared-libgcc' '-mtune=generic' /usr/lib/gcc/x86_64-linux-gnu/4.4.4/cc1plus -fpreprocessed bug_report.ii -quiet -dumpbase bug_report.cpp -mtune=generic -auxbase bug_report -version -o bug_report.s GNU C++ (Debian 4.4.4-3) version 4.4.4 (x86_64-linux-gnu) compiled by GNU C version 4.4.4, GMP version 4.3.2, MPFR version 2.4.2-p1. GGC heuristics: --param ggc-min-expand=57 --param ggc-min-heapsize=51739 GNU C++ (Debian 4.4.4-3) version 4.4.4 (x86_64-linux-gnu) compiled by GNU C version 4.4.4, GMP version 4.3.2, MPFR version 2.4.2-p1. GGC heuristics: --param ggc-min-expand=57 --param ggc-min-heapsize=51739 Compiler executable checksum: a92c574e76687c18572fdbea97434cec COLLECT_GCC_OPTIONS='-v' '-save-temps' '-shared-libgcc' '-mtune=generic' as --traditional-format -V -Qy -o bug_report.o bug_report.s GNU assembler version 2.20.1 (x86_64-linux-gnu) using BFD version (GNU Binutils for Debian) 2.20.1-system.20100303 COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.4.4/:/usr/lib/gcc/x86_64-linux-gnu/4.4.4/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.4.4/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.4.4/:/usr/lib/gcc/x86_64-linux-gnu/ LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.4.4/:/usr/lib/gcc/x86_64-linux-gnu/4.4.4/:/usr/lib/gcc/x86_64-linux-gnu/4.4.4/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/4.4.4/../../../:/lib/:/usr/lib/ COLLECT_GCC_OPTIONS='-v' '-save-temps' '-shared-libgcc' '-mtune=generic' /usr/lib/gcc/x86_64-linux-gnu/4.4.4/collect2 --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=both -dynamic-linker /lib64/ld-linux-x86-64.so.2 /usr/lib/gcc/x86_64-linux-gnu/4.4.4/../../../../lib/crt1.o /usr/lib/gcc/x86_64-linux-gnu/4.4.4/../../../../lib/crti.o /usr/lib/gcc/x86_64-linux-gnu/4.4.4/crtbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/4.4.4 -L/usr/lib/gcc/x86_64-linux-gnu/4.4.4 -L/usr/lib/gcc/x86_64-linux-gnu/4.4.4/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.4.4/../../.. bug_report.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/4.4.4/crtend.o /usr/lib/gcc/x86_64-linux-gnu/4.4.4/../../../../lib/crtn.o bug_report.ii # 1 "bug_report.cpp" # 1 "" # 1 "" # 1 "bug_report.cpp" struct A{ const int i; A():i(1){} A(const A& a):i(0){} }; int main(){ return A(A()).i; } -- Summary: explicit call of a defined copy constructor does not work Product: gcc Version: 4.4.4 Status: UNCONFIRMED Severity: major Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: gcc at razorcam dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44409
[Bug c++/44409] explicit call of a defined copy constructor does not work
--- Comment #3 from gcc at razorcam dot com 2010-06-03 23:04 --- Thanks for your answers. From the above answers I understand that g++ respects the ISO c++ standard, and thus you can consider this is not a bug. But this is clearly an explicit call of the copy constructor, not an implicit one. That means that the fundamental concept of function composition is not respected here by the ISO standard only when you compose the same constructor function and silently so this is very error-prone. I guess i have to submit a bug report to the ISO C++ standard now ... -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44409
[Bug c++/44528] New: ld returns 1 and reports undefined reference to a defined static class variable
when executing the command g++ bug_report.cc , i get the output: /tmp/ccM7O0pr.o: In function `A::init()': bug_report.cc:(.text._ZN1A4initEv[A::init()]+0x6): undefined reference to `A::i' collect2: ld returned 1 exit status here is the output of the command ld -v GNU ld (GNU Binutils for Debian) 2.20.1-system.20100303 the output of g++ -v -save-temps follows the source file bug_report.cc the preprocessed file bug_report.ii is at the end of this report struct A{ static int i; static void init() {i=0;} }; int main(){ A::init(); } g++ -v -save-temps bug_report.cc Using built-in specs. Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Debian 4.4.4-3' --with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared --enable-multiarch --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.4 --program-suffix=-4.4 --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --with-arch-32=i486 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu Thread model: posix gcc version 4.4.4 (Debian 4.4.4-3) COLLECT_GCC_OPTIONS='-v' '-save-temps' '-shared-libgcc' '-mtune=generic' /usr/lib/gcc/x86_64-linux-gnu/4.4.4/cc1plus -E -quiet -v -D_GNU_SOURCE bug_report.cc -mtune=generic -fpch-preprocess -o bug_report.ii ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu" ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/4.4.4/../../../../x86_64-linux-gnu/include" ignoring nonexistent directory "/usr/include/x86_64-linux-gnu" #include "..." search starts here: #include <...> search starts here: /usr/include/c++/4.4 /usr/include/c++/4.4/x86_64-linux-gnu /usr/include/c++/4.4/backward /usr/local/include /usr/lib/gcc/x86_64-linux-gnu/4.4.4/include /usr/lib/gcc/x86_64-linux-gnu/4.4.4/include-fixed /usr/include End of search list. COLLECT_GCC_OPTIONS='-v' '-save-temps' '-shared-libgcc' '-mtune=generic' /usr/lib/gcc/x86_64-linux-gnu/4.4.4/cc1plus -fpreprocessed bug_report.ii -quiet -dumpbase bug_report.cc -mtune=generic -auxbase bug_report -version -o bug_report.s GNU C++ (Debian 4.4.4-3) version 4.4.4 (x86_64-linux-gnu) compiled by GNU C version 4.4.4, GMP version 4.3.2, MPFR version 2.4.2-p1. GGC heuristics: --param ggc-min-expand=57 --param ggc-min-heapsize=51739 GNU C++ (Debian 4.4.4-3) version 4.4.4 (x86_64-linux-gnu) compiled by GNU C version 4.4.4, GMP version 4.3.2, MPFR version 2.4.2-p1. GGC heuristics: --param ggc-min-expand=57 --param ggc-min-heapsize=51739 Compiler executable checksum: a92c574e76687c18572fdbea97434cec COLLECT_GCC_OPTIONS='-v' '-save-temps' '-shared-libgcc' '-mtune=generic' as --traditional-format -V -Qy -o bug_report.o bug_report.s GNU assembler version 2.20.1 (x86_64-linux-gnu) using BFD version (GNU Binutils for Debian) 2.20.1-system.20100303 COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.4.4/:/usr/lib/gcc/x86_64-linux-gnu/4.4.4/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.4.4/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.4.4/:/usr/lib/gcc/x86_64-linux-gnu/ LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/4.4.4/:/usr/lib/gcc/x86_64-linux-gnu/4.4.4/:/usr/lib/gcc/x86_64-linux-gnu/4.4.4/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/4.4.4/../../../:/lib/:/usr/lib/ COLLECT_GCC_OPTIONS='-v' '-save-temps' '-shared-libgcc' '-mtune=generic' /usr/lib/gcc/x86_64-linux-gnu/4.4.4/collect2 --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=both -dynamic-linker /lib64/ld-linux-x86-64.so.2 /usr/lib/gcc/x86_64-linux-gnu/4.4.4/../../../../lib/crt1.o /usr/lib/gcc/x86_64-linux-gnu/4.4.4/../../../../lib/crti.o /usr/lib/gcc/x86_64-linux-gnu/4.4.4/crtbegin.o -L/usr/lib/gcc/x86_64-linux-gnu/4.4.4 -L/usr/lib/gcc/x86_64-linux-gnu/4.4.4 -L/usr/lib/gcc/x86_64-linux-gnu/4.4.4/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.4.4/../../.. bug_report.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/4.4.4/crtend.o /usr/lib/gcc/x86_64-linux-gnu/4.4.4/../../../../lib/crtn.o bug_report.o: In function `A::init()': bug_report.cc:(.text._ZN1A4initEv[A::init()]+0x6): undefined reference to `A::i' collect2: ld returned 1 exit status cat bug_report.ii # 1 "bug_report.cc" # 1 "" # 1 "" # 1 "bug_report.cc" struct A{ static int i; static void init() {i=0;} }; int main(){ A::init(); } -- Summary: ld returns 1 and reports undefined reference to a define
[Bug c++/44559] New: you can't use a typedef from a typename scope in a template
You can't use a typedef from a typename scope in a template This is obviously a major bug and it means you can't access the typedefs of the ISO standard library containers in order to use safe types to manipulate those containers, when typename is such a container. Here is the output of the command g++ bug_report_typedef.cc bug_report_typedef.cc: In function âvoid f(T)â: bug_report_typedef.cc:3: error: expected â;â before âiâ g++ -v follows the source code of bug_report_typedef.cc template void f(T t){ T::type i; } g++ -v bug_report_typedef.cc Using built-in specs. Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Debian 4.4.4-3' --with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared --enable-multiarch --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.4 --program-suffix=-4.4 --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --with-arch-32=i486 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu Thread model: posix gcc version 4.4.4 (Debian 4.4.4-3) COLLECT_GCC_OPTIONS='-v' '-shared-libgcc' '-mtune=generic' /usr/lib/gcc/x86_64-linux-gnu/4.4.4/cc1plus -quiet -v -D_GNU_SOURCE bug_report_typedef.cc -quiet -dumpbase bug_report_typedef.cc -mtune=generic -auxbase bug_report_typedef -version -o /tmp/ccgt4Dk8.s GNU C++ (Debian 4.4.4-3) version 4.4.4 (x86_64-linux-gnu) compiled by GNU C version 4.4.4, GMP version 4.3.2, MPFR version 2.4.2-p1. GGC heuristics: --param ggc-min-expand=57 --param ggc-min-heapsize=51739 ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu" ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/4.4.4/../../../../x86_64-linux-gnu/include" ignoring nonexistent directory "/usr/include/x86_64-linux-gnu" #include "..." search starts here: #include <...> search starts here: /usr/include/c++/4.4 /usr/include/c++/4.4/x86_64-linux-gnu /usr/include/c++/4.4/backward /usr/local/include /usr/lib/gcc/x86_64-linux-gnu/4.4.4/include /usr/lib/gcc/x86_64-linux-gnu/4.4.4/include-fixed /usr/include End of search list. GNU C++ (Debian 4.4.4-3) version 4.4.4 (x86_64-linux-gnu) compiled by GNU C version 4.4.4, GMP version 4.3.2, MPFR version 2.4.2-p1. GGC heuristics: --param ggc-min-expand=57 --param ggc-min-heapsize=51739 Compiler executable checksum: a92c574e76687c18572fdbea97434cec bug_report_typedef.cc: In function âvoid f(T)â: bug_report_typedef.cc:3: error: expected â;â before âiâ -- Summary: you can't use a typedef from a typename scope in a template Product: gcc Version: 4.4.4 Status: UNCONFIRMED Severity: major Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: gcc at razorcam dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44559
[Bug c++/44559] you can't use a typedef from a typename scope in a template
--- Comment #3 from gcc at razorcam dot com 2010-06-16 17:20 --- I apologize. Thanks for your quick answers. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44559
[Bug c++/44599] New: very basic recurring template only works when using g++ -O option
when using g++ -O option Product: gcc Version: 4.4.4 Status: UNCONFIRMED Severity: major Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: gcc at razorcam dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44599
[Bug c++/44599] very basic recurring template only works when using g++ -O option
--- Comment #2 from gcc at razorcam dot com 2010-06-20 01:37 --- Thanks. Yes, using &obj does work. Sorry for this bug report from me. Bug resolved: invalid. -- gcc at razorcam dot com changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution||INVALID http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44599
[Bug c++/44607] New: basic template struct has no direct access to members of a basic parent template struct
the following program with a basic template struct which inherit another basic template struct does not compile: g++ bug_template_template.cc bug_template_template.cc: In member function âvoid U::f()â: bug_template_template.cc:6: error: âiâ was not declared in this scope the output of g++ -v -save-temps follows the source file the preprocessed file .ii is at the end of this report template struct T{ int i; C c; }; template struct U:T{ void f(){i=0;} }; g++ -v -save-temps bug_template_template.cc Using built-in specs. Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Debian 4.4.4-3' --with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared --enable-multiarch --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.4 --program-suffix=-4.4 --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --with-arch-32=i486 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu Thread model: posix gcc version 4.4.4 (Debian 4.4.4-3) COLLECT_GCC_OPTIONS='-v' '-save-temps' '-shared-libgcc' '-mtune=generic' /usr/lib/gcc/x86_64-linux-gnu/4.4.4/cc1plus -E -quiet -v -D_GNU_SOURCE bug_template_template.cc -mtune=generic -fpch-preprocess -o bug_template_template.ii ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu" ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/4.4.4/../../../../x86_64-linux-gnu/include" ignoring nonexistent directory "/usr/include/x86_64-linux-gnu" #include "..." search starts here: #include <...> search starts here: /usr/include/c++/4.4 /usr/include/c++/4.4/x86_64-linux-gnu /usr/include/c++/4.4/backward /usr/local/include /usr/lib/gcc/x86_64-linux-gnu/4.4.4/include /usr/lib/gcc/x86_64-linux-gnu/4.4.4/include-fixed /usr/include End of search list. COLLECT_GCC_OPTIONS='-v' '-save-temps' '-shared-libgcc' '-mtune=generic' /usr/lib/gcc/x86_64-linux-gnu/4.4.4/cc1plus -fpreprocessed bug_template_template.ii -quiet -dumpbase bug_template_template.cc -mtune=generic -auxbase bug_template_template -version -o bug_template_template.s GNU C++ (Debian 4.4.4-3) version 4.4.4 (x86_64-linux-gnu) compiled by GNU C version 4.4.4, GMP version 4.3.2, MPFR version 2.4.2-p1. GGC heuristics: --param ggc-min-expand=57 --param ggc-min-heapsize=51739 GNU C++ (Debian 4.4.4-3) version 4.4.4 (x86_64-linux-gnu) compiled by GNU C version 4.4.4, GMP version 4.3.2, MPFR version 2.4.2-p1. GGC heuristics: --param ggc-min-expand=57 --param ggc-min-heapsize=51739 Compiler executable checksum: a92c574e76687c18572fdbea97434cec bug_template_template.cc: In member function âvoid U::f()â: bug_template_template.cc:6: error: âiâ was not declared in this scope cat bug_template_template.ii # 1 "bug_template_template.cc" # 1 "" # 1 "" # 1 "bug_template_template.cc" template struct T{ int i; C c; }; template struct U:T{ void f(){i=0;} }; -- Summary: basic template struct has no direct access to members of a basic parent template struct Product: gcc Version: 4.4.4 Status: UNCONFIRMED Severity: major Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: gcc at razorcam dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44607
[Bug c++/44607] basic template struct has no direct access to members of a basic parent template struct
--- Comment #3 from gcc at razorcam dot com 2010-06-21 13:55 --- Sorry again. I am reading again the ISO c++ standard in order to avoid invalid bug reports. It should occupy me for some time. Is there a c++ lint program that could help you when you don't know all the tricks of the full standard yet? Obviously g++ error messages are not meant to replace a c++ lint. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44607