[Bug c++/43282] GCC looks into dependent bases during unqualified lookup

2017-12-13 Thread nathan at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=43282 Bug 43282 depends on bug 15272, which changed state. Bug 15272 Summary: lookup, dependent base https://gcc.gnu.org/bugzilla/show_bug.cgi?id=15272 What|Removed |Added

[Bug c++/43282] GCC looks into dependent bases during unqualified lookup

2010-11-30 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43282 Andrew Pinski pinskia at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED

[Bug c++/43282] GCC looks into dependent bases during unqualified lookup

2010-06-05 Thread schaub-johannes at web dot de
--- Comment #8 from schaub-johannes at web dot de 2010-06-06 01:01 --- (In reply to comment #6) Dup of bug 15272. I don't know about the internals of GCC, but from a Standard point of view, the code in that bug shows a different problem than the code in my bug report. In my bug

[Bug c++/43282] GCC looks into dependent bases during unqualified lookup

2010-03-08 Thread schaub-johannes at web dot de
--- Comment #7 from schaub-johannes at web dot de 2010-03-08 23:41 --- I've digged this up from an early draft ('96: http://ra.dkuug.dk/JTC1/SC22/WG21/docs/wp/txt/jun96/body.txt), '98 and '03). Each has different rules. In fact, C++98 would accept comment#3's code. - '96pre-standard

[Bug c++/43282] GCC looks into dependent bases during unqualified lookup

2010-03-07 Thread bangerth at gmail dot com
--- Comment #1 from bangerth at gmail dot com 2010-03-07 23:41 --- The error message I get is this: g/x c++ -c x.cc x.cc: In member function 'void BarT::bar() [with T = A::Baz]': x.cc:18: instantiated from here x.cc:10: error: no matching function for call to 'BarA::Baz::foo(A::Baz)'

[Bug c++/43282] GCC looks into dependent bases during unqualified lookup

2010-03-07 Thread schaub-johannes at web dot de
--- Comment #2 from schaub-johannes at web dot de 2010-03-08 00:01 --- The point is that the scope of the base class is not examined even during instantiation, so you cannot find the class member function and ADL finds A::foo instead. The Standard says at 14.6.2/3: In the definition of

[Bug c++/43282] GCC looks into dependent bases during unqualified lookup

2010-03-07 Thread bangerth at gmail dot com
--- Comment #3 from bangerth at gmail dot com 2010-03-08 00:19 --- But that would mean that the following code should be invalid because the compiler should never find HasFooT::foo even at instantiation time: - templatetypename T struct HasFoo { void foo(T) { } };

[Bug c++/43282] GCC looks into dependent bases during unqualified lookup

2010-03-07 Thread schaub-johannes at web dot de
--- Comment #4 from schaub-johannes at web dot de 2010-03-08 00:26 --- Yes, this is the consequence. You have to add this- or Bar:: to use another form of lookup (qualified or class-member access) or use a using-declaration to bring the name in scope (using HasFooT::foo;). I can't say

[Bug c++/43282] GCC looks into dependent bases during unqualified lookup

2010-03-07 Thread bangerth at gmail dot com
--- Comment #5 from bangerth at gmail dot com 2010-03-08 00:36 --- OK, so the question is whether the testcase in comment #3 should be rejected based on the wording of 14.6.2/3. Jason, as our resident language lawyer, would you mind commenting? W. -- bangerth at gmail dot com

[Bug c++/43282] GCC looks into dependent bases during unqualified lookup

2010-03-07 Thread pinskia at gcc dot gnu dot org
--- Comment #6 from pinskia at gcc dot gnu dot org 2010-03-08 01:06 --- Dup of bug 15272. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43282