[Bug libstdc++/53984] iostream operation throwing exception when exceptions not enabled
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53984 David Rodriguez Ibeas changed: What|Removed |Added CC||dibeas at ieee dot org --- Comment #6 from David Rodriguez Ibeas --- Still failling 6.2. Any plans to look at this one?
[Bug c++/60860] New: Friend function declaration incorrectly hides function in outer namespace
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60860 Bug ID: 60860 Summary: Friend function declaration incorrectly hides function in outer namespace Product: gcc Version: 4.8.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: dibeas at ieee dot org The following valid code fails to compile: void f( int ); namespace N { struct A { friend void f(int); friend void f(double); }; void g() { f(0); } } The problem goes away if any of the two friend declarations is commented out.
[Bug c++/60860] Friend function declaration incorrectly hides function in outer namespace
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60860 --- Comment #1 from David Rodriguez Ibeas --- Created this as a new bug as I cannot say for sure whether this is the same issue as 53012, but they maybe related. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53012
[Bug c++/15218] [DR 421] rvalue.field is not an lvalue
--- Comment #3 from dibeas at ieee dot org 2010-02-08 12:11 --- Also related: dereferencing a data member pointer with an lvalue incorrectly yields an lvalue: struct X { int x; }; X f(); void g() { int X::*ptr = &X::x; f().*ptr = 5; // should not compile! } -- dibeas at ieee dot org changed: What|Removed |Added CC| |dibeas at ieee dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=15218
[Bug c++/48980] New: Misleading error message when a conversion is invalid while calling a protected base constructor
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48980 Summary: Misleading error message when a conversion is invalid while calling a protected base constructor Product: gcc Version: unknown Status: UNCONFIRMED Severity: trivial Priority: P3 Component: c++ AssignedTo: unassig...@gcc.gnu.org ReportedBy: dib...@ieee.org Provided with this code: class base { protected: base( int * ) {} }; struct derived : base { derived( const int * p ) : base( p ) {} }; The compiler correctly detects that there is an error as using p as argument to the constructor of base will break const-correctness. The error report identifies that condition, but it also adds a misleading first error: error.cpp: In constructor ‘derived::derived(const int*)’: error.cpp:5: error: ‘base::base(int*)’ is protected error.cpp:10: error: within this context error.cpp:10: error: invalid conversion from ‘const int*’ to ‘int*’ error.cpp:10: error: initializing argument 1 of ‘base::base(int*)’ Clearly base::base(int*) is protected, but it is accessible from the context of the constructor derived::derived(const int*), and the first 3 lines should not be part of the error message. This can be reproduced with the default g++ in ubuntu/linaro, and also with g++ 4.0.3 (I don't know the exact compiler flags used, but I believe the error to be independent of compiler flags, if it is not, I can find out the exact flags used). g++ (Ubuntu/Linaro 4.4.4-14ubuntu5) 4.4.5