public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/56377] New: [4.8 Regression] <missing> template args in substitution-failure diagnostics
@ 2013-02-18 16:05 pl.smith.mail at gmail dot com
2013-02-18 16:12 ` [Bug c++/56377] " pl.smith.mail at gmail dot com
` (10 more replies)
0 siblings, 11 replies; 12+ messages in thread
From: pl.smith.mail at gmail dot com @ 2013-02-18 16:05 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56377
Bug #: 56377
Summary: [4.8 Regression] <missing> template args in
substitution-failure diagnostics
Classification: Unclassified
Product: gcc
Version: 4.8.0
Status: UNCONFIRMED
Severity: minor
Priority: P3
Component: c++
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: pl.smith.mail@gmail.com
When a candidate function for which substituion failed is listed in a
diagnostic, if the failure stems from a template parameter that have an
explicit argument, the explicit arguments are listed as <missing>.
For example:
template <typename T>
typename T::type f();
int main () {
f<int>();
}
Produces (4.8, no flags):
test.cpp: In function ג€˜int main()ג€™:
test.cpp:5:10: error: no matching function for call to 'f()'
f<int>();
^
test.cpp:5:10: note: candidate is:
test.cpp:2:18: note: template<class T> typename T::type f()
typename T::type f();
^
test.cpp:2:18: note: template argument deduction/substitution failed:
*************
test.cpp: In substitution of 'template<class T> typename T::type f() [with T =
<missing>]':
*************
test.cpp:5:10: required from here
test.cpp:2:18: error: 'int' is not a class, struct, or union type
In 4.7 it is "[with T = int]".
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug c++/56377] [4.8 Regression] <missing> template args in substitution-failure diagnostics
2013-02-18 16:05 [Bug c++/56377] New: [4.8 Regression] <missing> template args in substitution-failure diagnostics pl.smith.mail at gmail dot com
@ 2013-02-18 16:12 ` pl.smith.mail at gmail dot com
2013-02-18 16:16 ` paolo.carlini at oracle dot com
` (9 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: pl.smith.mail at gmail dot com @ 2013-02-18 16:12 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56377
--- Comment #1 from Paul Smith <pl.smith.mail at gmail dot com> 2013-02-18 16:12:00 UTC ---
Looks like this was introduced in rev. 190664, with the merging of
'deduction_tsubst_fntype' into 'fn_type_unification'.
The instantiation context is constructed with 'targs' as the vector of template
arguments, which is still empty when substituting the explicit arguments into
the function type the first time. This can be fixed by either constructing the
instantiation context using 'explicit_targs' when non-null, or by copying
'explicit_targs' into 'targs' before the substitution.
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug c++/56377] [4.8 Regression] <missing> template args in substitution-failure diagnostics
2013-02-18 16:05 [Bug c++/56377] New: [4.8 Regression] <missing> template args in substitution-failure diagnostics pl.smith.mail at gmail dot com
2013-02-18 16:12 ` [Bug c++/56377] " pl.smith.mail at gmail dot com
@ 2013-02-18 16:16 ` paolo.carlini at oracle dot com
2013-02-19 9:33 ` rguenth at gcc dot gnu.org
` (8 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: paolo.carlini at oracle dot com @ 2013-02-18 16:16 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56377
Paolo Carlini <paolo.carlini at oracle dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2013-02-18
CC| |jason at gcc dot gnu.org
Ever Confirmed|0 |1
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug c++/56377] [4.8 Regression] <missing> template args in substitution-failure diagnostics
2013-02-18 16:05 [Bug c++/56377] New: [4.8 Regression] <missing> template args in substitution-failure diagnostics pl.smith.mail at gmail dot com
2013-02-18 16:12 ` [Bug c++/56377] " pl.smith.mail at gmail dot com
2013-02-18 16:16 ` paolo.carlini at oracle dot com
@ 2013-02-19 9:33 ` rguenth at gcc dot gnu.org
2013-02-19 9:58 ` jakub at gcc dot gnu.org
` (7 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: rguenth at gcc dot gnu.org @ 2013-02-19 9:33 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56377
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target Milestone|--- |4.8.0
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug c++/56377] [4.8 Regression] <missing> template args in substitution-failure diagnostics
2013-02-18 16:05 [Bug c++/56377] New: [4.8 Regression] <missing> template args in substitution-failure diagnostics pl.smith.mail at gmail dot com
` (2 preceding siblings ...)
2013-02-19 9:33 ` rguenth at gcc dot gnu.org
@ 2013-02-19 9:58 ` jakub at gcc dot gnu.org
2013-02-20 14:52 ` rguenth at gcc dot gnu.org
` (6 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: jakub at gcc dot gnu.org @ 2013-02-19 9:58 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56377
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jakub at gcc dot gnu.org
--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> 2013-02-19 09:58:16 UTC ---
Yeah, diff between r190663 and r190664 output is:
-pr56377.C: In substitution of ‘template<class T> typename T::type f() [with T
= int]’:
+pr56377.C: In substitution of ‘template<class T> typename T::type f() [with T
= <missing>]’:
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug c++/56377] [4.8 Regression] <missing> template args in substitution-failure diagnostics
2013-02-18 16:05 [Bug c++/56377] New: [4.8 Regression] <missing> template args in substitution-failure diagnostics pl.smith.mail at gmail dot com
` (3 preceding siblings ...)
2013-02-19 9:58 ` jakub at gcc dot gnu.org
@ 2013-02-20 14:52 ` rguenth at gcc dot gnu.org
2013-02-22 15:58 ` jason at gcc dot gnu.org
` (5 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: rguenth at gcc dot gnu.org @ 2013-02-20 14:52 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56377
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |diagnostic
Priority|P3 |P1
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug c++/56377] [4.8 Regression] <missing> template args in substitution-failure diagnostics
2013-02-18 16:05 [Bug c++/56377] New: [4.8 Regression] <missing> template args in substitution-failure diagnostics pl.smith.mail at gmail dot com
` (4 preceding siblings ...)
2013-02-20 14:52 ` rguenth at gcc dot gnu.org
@ 2013-02-22 15:58 ` jason at gcc dot gnu.org
2013-02-22 22:25 ` jason at gcc dot gnu.org
` (4 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: jason at gcc dot gnu.org @ 2013-02-22 15:58 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56377
Jason Merrill <jason at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |ASSIGNED
AssignedTo|unassigned at gcc dot |jason at gcc dot gnu.org
|gnu.org |
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug c++/56377] [4.8 Regression] <missing> template args in substitution-failure diagnostics
2013-02-18 16:05 [Bug c++/56377] New: [4.8 Regression] <missing> template args in substitution-failure diagnostics pl.smith.mail at gmail dot com
` (5 preceding siblings ...)
2013-02-22 15:58 ` jason at gcc dot gnu.org
@ 2013-02-22 22:25 ` jason at gcc dot gnu.org
2013-02-23 1:59 ` jason at gcc dot gnu.org
` (3 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: jason at gcc dot gnu.org @ 2013-02-22 22:25 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56377
--- Comment #3 from Jason Merrill <jason at gcc dot gnu.org> 2013-02-22 22:24:40 UTC ---
Author: jason
Date: Fri Feb 22 22:24:27 2013
New Revision: 196230
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=196230
Log:
PR c++/56377
* pt.c (fn_type_unification): Use explicit args in template
instantiation context.
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/pt.c
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug c++/56377] [4.8 Regression] <missing> template args in substitution-failure diagnostics
2013-02-18 16:05 [Bug c++/56377] New: [4.8 Regression] <missing> template args in substitution-failure diagnostics pl.smith.mail at gmail dot com
` (6 preceding siblings ...)
2013-02-22 22:25 ` jason at gcc dot gnu.org
@ 2013-02-23 1:59 ` jason at gcc dot gnu.org
2013-02-23 15:16 ` pl.smith.mail at gmail dot com
` (2 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: jason at gcc dot gnu.org @ 2013-02-23 1:59 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56377
Jason Merrill <jason at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|ASSIGNED |RESOLVED
Resolution| |FIXED
--- Comment #4 from Jason Merrill <jason at gcc dot gnu.org> 2013-02-23 01:59:20 UTC ---
Fixed.
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug c++/56377] [4.8 Regression] <missing> template args in substitution-failure diagnostics
2013-02-18 16:05 [Bug c++/56377] New: [4.8 Regression] <missing> template args in substitution-failure diagnostics pl.smith.mail at gmail dot com
` (7 preceding siblings ...)
2013-02-23 1:59 ` jason at gcc dot gnu.org
@ 2013-02-23 15:16 ` pl.smith.mail at gmail dot com
2013-02-26 4:28 ` jason at gcc dot gnu.org
2013-02-26 4:29 ` jason at gcc dot gnu.org
10 siblings, 0 replies; 12+ messages in thread
From: pl.smith.mail at gmail dot com @ 2013-02-23 15:16 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56377
Paul Smith <pl.smith.mail at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|RESOLVED |REOPENED
Resolution|FIXED |
--- Comment #5 from Paul Smith <pl.smith.mail at gmail dot com> 2013-02-23 15:15:47 UTC ---
There can still be <missing> arguments before the substitution:
template <int N>
void f() {
f<N + 1>();
}
int main() {
f<0>();
}
Output:
test.cpp:3:11: error: template instantiation depth exceeds maximum of 900 (use
-ftemplate-depth= to increase the maximum) substituting ‘template<int N> void
f() [with int N = <missing>]’
f<N + 1>();
^
...
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug c++/56377] [4.8 Regression] <missing> template args in substitution-failure diagnostics
2013-02-18 16:05 [Bug c++/56377] New: [4.8 Regression] <missing> template args in substitution-failure diagnostics pl.smith.mail at gmail dot com
` (8 preceding siblings ...)
2013-02-23 15:16 ` pl.smith.mail at gmail dot com
@ 2013-02-26 4:28 ` jason at gcc dot gnu.org
2013-02-26 4:29 ` jason at gcc dot gnu.org
10 siblings, 0 replies; 12+ messages in thread
From: jason at gcc dot gnu.org @ 2013-02-26 4:28 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56377
--- Comment #6 from Jason Merrill <jason at gcc dot gnu.org> 2013-02-26 04:28:04 UTC ---
Author: jason
Date: Tue Feb 26 04:27:51 2013
New Revision: 196275
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=196275
Log:
PR c++/56377
* pt.c (fn_type_unification): Wait to call push_tinst_level until
we know what args we're looking at.
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/pt.c
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Bug c++/56377] [4.8 Regression] <missing> template args in substitution-failure diagnostics
2013-02-18 16:05 [Bug c++/56377] New: [4.8 Regression] <missing> template args in substitution-failure diagnostics pl.smith.mail at gmail dot com
` (9 preceding siblings ...)
2013-02-26 4:28 ` jason at gcc dot gnu.org
@ 2013-02-26 4:29 ` jason at gcc dot gnu.org
10 siblings, 0 replies; 12+ messages in thread
From: jason at gcc dot gnu.org @ 2013-02-26 4:29 UTC (permalink / raw)
To: gcc-bugs
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56377
Jason Merrill <jason at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|REOPENED |RESOLVED
Resolution| |FIXED
--- Comment #7 from Jason Merrill <jason at gcc dot gnu.org> 2013-02-26 04:29:17 UTC ---
Should really be fixed now.
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2013-02-26 4:29 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-02-18 16:05 [Bug c++/56377] New: [4.8 Regression] <missing> template args in substitution-failure diagnostics pl.smith.mail at gmail dot com
2013-02-18 16:12 ` [Bug c++/56377] " pl.smith.mail at gmail dot com
2013-02-18 16:16 ` paolo.carlini at oracle dot com
2013-02-19 9:33 ` rguenth at gcc dot gnu.org
2013-02-19 9:58 ` jakub at gcc dot gnu.org
2013-02-20 14:52 ` rguenth at gcc dot gnu.org
2013-02-22 15:58 ` jason at gcc dot gnu.org
2013-02-22 22:25 ` jason at gcc dot gnu.org
2013-02-23 1:59 ` jason at gcc dot gnu.org
2013-02-23 15:16 ` pl.smith.mail at gmail dot com
2013-02-26 4:28 ` jason at gcc dot gnu.org
2013-02-26 4:29 ` jason at gcc dot gnu.org
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).