[Bug c++/53573] template type dependent name resolution broken

2012-06-27 Thread ke...@fry-it.com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53573 --- Comment #23 from Keean Schupke ke...@fry-it.com 2012-06-27 06:48:28 UTC --- (In reply to comment #22) (In reply to comment #21) Is there any chance this 'feature' of GCC could be kept as a g++ specific extension in 'gnu++11' mode, as I

[Bug c++/53573] template type dependent name resolution broken

2012-06-05 Thread ke...@fry-it.com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53573 --- Comment #6 from Keean Schupke ke...@fry-it.com 2012-06-05 09:06:01 UTC --- The suggested work around in the error message 'adding -fpermissive' to gcc-4.7.0 does not fix the problem as suggested by the error message. This would suggest the

[Bug c++/53573] template type dependent name resolution broken

2012-06-05 Thread manu at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53573 Manuel López-Ibáñez manu at gcc dot gnu.org changed: What|Removed |Added CC||manu at gcc

[Bug c++/53573] template type dependent name resolution broken

2012-06-05 Thread ke...@fry-it.com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53573 --- Comment #8 from Keean Schupke ke...@fry-it.com 2012-06-05 10:15:18 UTC --- (In reply to comment #7) Have a read of the C++ standard, the example given in: N3242=11-0012 14.6 Name Resolution: paragraph 10 Which I have pasted above into

[Bug c++/53573] template type dependent name resolution broken

2012-06-05 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53573 Jonathan Wakely redi at gcc dot gnu.org changed: What|Removed |Added Severity|major |normal ---

[Bug c++/53573] template type dependent name resolution broken

2012-06-05 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53573 Jonathan Wakely redi at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED

[Bug c++/53573] template type dependent name resolution broken

2012-06-05 Thread ke...@fry-it.com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53573 --- Comment #11 from Keean Schupke ke...@fry-it.com 2012-06-05 11:07:14 UTC --- (In reply to comment #9) Can you point me at where in the specification this is defined? (In reply to comment #2) The function called in the template

[Bug c++/53573] template type dependent name resolution broken

2012-06-05 Thread ke...@fry-it.com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53573 --- Comment #12 from Keean Schupke ke...@fry-it.com 2012-06-05 11:14:00 UTC --- (In reply to comment #10) although -fpermissive allows the code to compile (in some circumstances) it does not in all, and it also produces incorrect output, for

[Bug c++/53573] template type dependent name resolution broken

2012-06-05 Thread ke...@fry-it.com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53573 --- Comment #13 from Keean Schupke ke...@fry-it.com 2012-06-05 11:25:40 UTC --- (In reply to comment #9) From ISO14882 14.6 - Name resolution [temp.res] -8- When looking for the declaration of a name used in a template definition, the usual

[Bug c++/53573] template type dependent name resolution broken

2012-06-05 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53573 --- Comment #14 from Jonathan Wakely redi at gcc dot gnu.org 2012-06-05 11:31:07 UTC --- [temp.dep.res] says dependent name resolution considers declarations visible at the point of definition, and declarations from associated namespaces from the

[Bug c++/53573] template type dependent name resolution broken

2012-06-05 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53573 --- Comment #15 from Jonathan Wakely redi at gcc dot gnu.org 2012-06-05 11:33:59 UTC --- (In reply to comment #12) (In reply to comment #10) although -fpermissive allows the code to compile (in some circumstances) it does not in all, and it

[Bug c++/53573] template type dependent name resolution broken

2012-06-05 Thread ke...@fry-it.com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53573 --- Comment #16 from Keean Schupke ke...@fry-it.com 2012-06-05 11:53:32 UTC --- (In reply to comment #14) Basic.lookup.argdep is not specific to templates, so why does the dependent lookup work outside of templates? int g(int x) { return x

[Bug c++/53573] template type dependent name resolution broken

2012-06-05 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53573 --- Comment #16 from Keean Schupke ke...@fry-it.com 2012-06-05 11:53:32 UTC --- (In reply to comment #14) Basic.lookup.argdep is not specific to templates, so why does the dependent lookup work outside of templates? int g(int x) { return x

[Bug c++/53573] template type dependent name resolution broken

2012-06-05 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53573 --- Comment #18 from Jonathan Wakely redi at gcc dot gnu.org 2012-06-05 11:57:20 UTC --- (In reply to comment #16) why does ADL work here if [basic.lookup.argdep] means what you imply? That's not ADL, so I don't know what you're asking.

[Bug c++/53573] template type dependent name resolution broken

2012-06-05 Thread ke...@fry-it.com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53573 --- Comment #19 from Keean Schupke ke...@fry-it.com 2012-06-05 12:55:06 UTC --- (In reply to comment #18) Sorry about that. It does indeed seem that the combination of [temp.dep.res] and [basic.lookup.argdep] imply this behaviour. I think my

[Bug c++/53573] template type dependent name resolution broken

2012-06-05 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53573 --- Comment #20 from Paolo Carlini paolo.carlini at oracle dot com 2012-06-05 16:31:21 UTC --- I'm under the impression that the bug reports using the word 'broken' are the ones most likely broken, err invalid. Maybe just another manifestation of

[Bug c++/53573] template type dependent name resolution broken

2012-06-05 Thread ke...@fry-it.com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53573 --- Comment #21 from Keean Schupke ke...@fry-it.com 2012-06-05 17:01:01 UTC --- (In reply to comment #20) Yes, once again sorry. Obviously not GCC's problem for implementing the standard correctly, but this causes problems producing elegant

[Bug c++/53573] template type dependent name resolution broken

2012-06-05 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53573 --- Comment #22 from Jonathan Wakely redi at gcc dot gnu.org 2012-06-05 17:30:18 UTC --- (In reply to comment #21) Is there any chance this 'feature' of GCC could be kept as a g++ specific extension in 'gnu++11' mode, as I think the old

[Bug c++/53573] template type dependent name resolution broken

2012-06-04 Thread ke...@fry-it.com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53573 --- Comment #3 from Keean Schupke ke...@fry-it.com 2012-06-04 13:44:14 UTC --- From: Technicalities C.13.8.3: struct X { X(int); /* ... */ }; void g(X); templateclass T void f(T a) { g(a); } void h() { extern void

[Bug c++/53573] template type dependent name resolution broken

2012-06-04 Thread ke...@fry-it.com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53573 --- Comment #4 from Keean Schupke ke...@fry-it.com 2012-06-04 16:38:21 UTC --- From C++ Standard N3242=11-0012 14.6 Name Resolution 10. If a name does not depend on a template-parameter (as defined in 14.6.2), a declaration (or set of

[Bug c++/53573] template type dependent name resolution broken

2012-06-04 Thread ke...@fry-it.com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53573 --- Comment #5 from Keean Schupke ke...@fry-it.com 2012-06-04 17:13:18 UTC --- The following program will apparently compile correctly, but will silently produce incorrect results at runtime: #include iostream char g(char x) { return x -