[Bug c++/44409] New: explicit call of a defined copy constructor does not work

2010-06-03 Thread gcc at razorcam dot com
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

2010-06-03 Thread gcc at razorcam dot com


--- 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

2010-06-13 Thread gcc at razorcam dot com
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

2010-06-16 Thread gcc at razorcam dot com
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

2010-06-16 Thread gcc at razorcam dot com


--- 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

2010-06-19 Thread gcc at razorcam dot com
 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

2010-06-19 Thread gcc at razorcam dot com


--- 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

2010-06-21 Thread gcc at razorcam dot com
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

2010-06-21 Thread gcc at razorcam dot com


--- 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