public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/53624] New: GCC rejects function local types in template function with default template arguments
@ 2012-06-10 3:38 lunow at math dot hu-berlin.de
2012-06-10 4:24 ` [Bug c++/53624] " pinskia at gcc dot gnu.org
` (6 more replies)
0 siblings, 7 replies; 8+ messages in thread
From: lunow at math dot hu-berlin.de @ 2012-06-10 3:38 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53624
Bug #: 53624
Summary: GCC rejects function local types in template function
with default template arguments
Classification: Unclassified
Product: gcc
Version: 4.6.3
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: lunow@math.hu-berlin.de
Created attachment 27595
--> http://gcc.gnu.org/bugzilla/attachment.cgi?id=27595
testcase
The error occurs when there is at one template argument with default and one
without. Errors are generated for local structs, classes, unions and lambda
functions.
For the attached usecase I get with gcc 4.6.3 and 4.7.0:
C:\dev\projects\compiler test>g++ gcc_test2.cpp --std=c++0x -fsyntax-only
gcc_test2.cpp: In function 'void Foo(T)':
gcc_test2.cpp:5:12: error: no default argument for 'T'
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug c++/53624] GCC rejects function local types in template function with default template arguments
2012-06-10 3:38 [Bug c++/53624] New: GCC rejects function local types in template function with default template arguments lunow at math dot hu-berlin.de
@ 2012-06-10 4:24 ` pinskia at gcc dot gnu.org
2012-06-10 4:49 ` lunow at math dot hu-berlin.de
` (5 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: pinskia at gcc dot gnu.org @ 2012-06-10 4:24 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53624
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
Resolution| |INVALID
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> 2012-06-10 04:24:44 UTC ---
>gcc_test2.cpp:5:12: error: no default argument for 'T'
It is not rejecting the local type but rather it is rejecting the second
template argument which does not have a default argument even though the first
argument does.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug c++/53624] GCC rejects function local types in template function with default template arguments
2012-06-10 3:38 [Bug c++/53624] New: GCC rejects function local types in template function with default template arguments lunow at math dot hu-berlin.de
2012-06-10 4:24 ` [Bug c++/53624] " pinskia at gcc dot gnu.org
@ 2012-06-10 4:49 ` lunow at math dot hu-berlin.de
2012-06-10 4:52 ` pinskia at gcc dot gnu.org
` (4 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: lunow at math dot hu-berlin.de @ 2012-06-10 4:49 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53624
--- Comment #2 from Daniel Lunow <lunow at math dot hu-berlin.de> 2012-06-10 04:49:29 UTC ---
Their is no requirement (in the c++11 standard) for function templates that
implies subsequent template parameters after a template parameter with default
template argument must also have default template arguments (in contrast to
class templates). In general this works in gcc.
But with the local types inside the template function gcc might reject it
because it creates local types as templated with the same template
parameters/default arguments and checks the requirement for class templates.
The line number/offset in the error message clearly refers to the local struct.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug c++/53624] GCC rejects function local types in template function with default template arguments
2012-06-10 3:38 [Bug c++/53624] New: GCC rejects function local types in template function with default template arguments lunow at math dot hu-berlin.de
2012-06-10 4:24 ` [Bug c++/53624] " pinskia at gcc dot gnu.org
2012-06-10 4:49 ` lunow at math dot hu-berlin.de
@ 2012-06-10 4:52 ` pinskia at gcc dot gnu.org
2012-07-28 13:18 ` paolo.carlini at oracle dot com
` (3 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: pinskia at gcc dot gnu.org @ 2012-06-10 4:52 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53624
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|RESOLVED |UNCONFIRMED
Resolution|INVALID |
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> 2012-06-10 04:52:21 UTC ---
Oh I see.
The trunk shows what is going on better:
t.cc: In function ‘void Foo(T)’:
t.cc:4:12: error: no default argument for ‘T’
struct X {};
^
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug c++/53624] GCC rejects function local types in template function with default template arguments
2012-06-10 3:38 [Bug c++/53624] New: GCC rejects function local types in template function with default template arguments lunow at math dot hu-berlin.de
` (2 preceding siblings ...)
2012-06-10 4:52 ` pinskia at gcc dot gnu.org
@ 2012-07-28 13:18 ` paolo.carlini at oracle dot com
2012-07-28 13:20 ` paolo.carlini at oracle dot com
` (2 subsequent siblings)
6 siblings, 0 replies; 8+ messages in thread
From: paolo.carlini at oracle dot com @ 2012-07-28 13:18 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53624
Paolo Carlini <paolo.carlini at oracle dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |likan_999.student at sina
| |dot com
--- Comment #4 from Paolo Carlini <paolo.carlini at oracle dot com> 2012-07-28 13:17:35 UTC ---
*** Bug 54104 has been marked as a duplicate of this bug. ***
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug c++/53624] GCC rejects function local types in template function with default template arguments
2012-06-10 3:38 [Bug c++/53624] New: GCC rejects function local types in template function with default template arguments lunow at math dot hu-berlin.de
` (3 preceding siblings ...)
2012-07-28 13:18 ` paolo.carlini at oracle dot com
@ 2012-07-28 13:20 ` paolo.carlini at oracle dot com
2012-07-31 9:47 ` paolo at gcc dot gnu.org
2012-07-31 9:50 ` paolo.carlini at oracle dot com
6 siblings, 0 replies; 8+ messages in thread
From: paolo.carlini at oracle dot com @ 2012-07-28 13:20 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53624
Paolo Carlini <paolo.carlini at oracle dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |ASSIGNED
Last reconfirmed| |2012-07-28
AssignedTo|unassigned at gcc dot |paolo.carlini at oracle dot
|gnu.org |com
Target Milestone|--- |4.8.0
Ever Confirmed|0 |1
--- Comment #5 from Paolo Carlini <paolo.carlini at oracle dot com> 2012-07-28 13:20:08 UTC ---
Looking into it.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug c++/53624] GCC rejects function local types in template function with default template arguments
2012-06-10 3:38 [Bug c++/53624] New: GCC rejects function local types in template function with default template arguments lunow at math dot hu-berlin.de
` (4 preceding siblings ...)
2012-07-28 13:20 ` paolo.carlini at oracle dot com
@ 2012-07-31 9:47 ` paolo at gcc dot gnu.org
2012-07-31 9:50 ` paolo.carlini at oracle dot com
6 siblings, 0 replies; 8+ messages in thread
From: paolo at gcc dot gnu.org @ 2012-07-31 9:47 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53624
--- Comment #6 from paolo at gcc dot gnu.org <paolo at gcc dot gnu.org> 2012-07-31 09:46:59 UTC ---
Author: paolo
Date: Tue Jul 31 09:46:46 2012
New Revision: 190001
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=190001
Log:
/cp
2012-07-31 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/53624
* pt.c (check_default_tmpl_args): Don't check local types.
/testsuite
2012-07-31 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/53624
* g++.dg/cpp0x/temp_default5.C: New.
Added:
trunk/gcc/testsuite/g++.dg/cpp0x/temp_default5.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/pt.c
trunk/gcc/testsuite/ChangeLog
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Bug c++/53624] GCC rejects function local types in template function with default template arguments
2012-06-10 3:38 [Bug c++/53624] New: GCC rejects function local types in template function with default template arguments lunow at math dot hu-berlin.de
` (5 preceding siblings ...)
2012-07-31 9:47 ` paolo at gcc dot gnu.org
@ 2012-07-31 9:50 ` paolo.carlini at oracle dot com
6 siblings, 0 replies; 8+ messages in thread
From: paolo.carlini at oracle dot com @ 2012-07-31 9:50 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53624
Paolo Carlini <paolo.carlini at oracle dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution| |FIXED
--- Comment #7 from Paolo Carlini <paolo.carlini at oracle dot com> 2012-07-31 09:49:41 UTC ---
Fixed.
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2012-07-31 9:50 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-06-10 3:38 [Bug c++/53624] New: GCC rejects function local types in template function with default template arguments lunow at math dot hu-berlin.de
2012-06-10 4:24 ` [Bug c++/53624] " pinskia at gcc dot gnu.org
2012-06-10 4:49 ` lunow at math dot hu-berlin.de
2012-06-10 4:52 ` pinskia at gcc dot gnu.org
2012-07-28 13:18 ` paolo.carlini at oracle dot com
2012-07-28 13:20 ` paolo.carlini at oracle dot com
2012-07-31 9:47 ` paolo at gcc dot gnu.org
2012-07-31 9:50 ` paolo.carlini at oracle dot com
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).