re PR c++/67369 (ICE (in tsubst_decl, at cp/pt.c:11302) with -std=c++14)

/cp
2015-09-08  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/67369
	* pt.c (tsubst_copy, [case FUNCTION_DECL]): Do not call tsubst
	if the first argument isn't a template.

/testsuite
2015-09-08  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/67369
	* g++.dg/cpp1y/lambda-generic-ice4.C: New.

From-SVN: r227530
This commit is contained in:
Paolo Carlini 2015-09-08 15:02:01 +00:00 committed by Paolo Carlini
parent 981d281fed
commit 761f8e2f8a
4 changed files with 24 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2015-09-08 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/67369
* pt.c (tsubst_copy, [case FUNCTION_DECL]): Do not call tsubst
if the first argument isn't a template.
2015-09-03 Martin Sebor <msebor@redhat.com>
PR c/66516

View File

@ -13599,8 +13599,9 @@ tsubst_copy (tree t, tree args, tsubst_flags_t complain, tree in_decl)
if (r)
{
/* Make sure that the one we found is the one we want. */
tree ctx = tsubst (DECL_CONTEXT (t), args,
complain, in_decl);
tree ctx = DECL_CONTEXT (t);
if (DECL_LANG_SPECIFIC (ctx) && DECL_TEMPLATE_INFO (ctx))
ctx = tsubst (ctx, args, complain, in_decl);
if (ctx != DECL_CONTEXT (r))
r = NULL_TREE;
}

View File

@ -1,3 +1,8 @@
2015-09-08 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/67369
* g++.dg/cpp1y/lambda-generic-ice4.C: New.
2015-09-07 Marek Polacek <polacek@redhat.com>
PR inline-asm/67448

View File

@ -0,0 +1,10 @@
// PR c++/67369
// { dg-do compile { target c++14 } }
int main() {
unsigned const nsz = 0;
auto repeat_conditional = [&](auto) {
auto new_sz = nsz;
};
repeat_conditional(1);
}