re PR debug/66432 (libgomp.c/appendix-a/a.29.1.c -O2 -g: type mismatch between an SSA_NAME and its symbol)

PR debug/66432
	* tree-inline.c (copy_debug_stmt): If
	gimple_debug_source_bind_get_value is DECL_ORIGIN of a PARM_DECL
	in decl_debug_args, don't call remap_gimple_op_r on it.

	* gcc.dg/debug/pr66432.c: New test.

From-SVN: r230702
This commit is contained in:
Jakub Jelinek
2015-11-21 09:24:13 +01:00
committed by Jakub Jelinek
parent 3b58931386
commit 3856d50d57
4 changed files with 35 additions and 3 deletions

View File

@@ -1,3 +1,10 @@
2015-11-21 Jakub Jelinek <jakub@redhat.com>
PR debug/66432
* tree-inline.c (copy_debug_stmt): If
gimple_debug_source_bind_get_value is DECL_ORIGIN of a PARM_DECL
in decl_debug_args, don't call remap_gimple_op_r on it.
2015-11-07 Jan Hubicka <hubicka@ucw.cz>
* ipa-icf.c (sem_item::add_type): Do not look for TYPE_CANONICAL;

View File

@@ -1,3 +1,8 @@
2015-11-21 Jakub Jelinek <jakub@redhat.com>
PR debug/66432
* gcc.dg/debug/pr66432.c: New test.
2015-11-20 Ian Lance Taylor <iant@google.com>
PR go/66406

View File

@@ -0,0 +1,19 @@
/* PR debug/66432 */
/* { dg-do compile } */
/* { dg-options "-O2 -g" } */
extern void baz (const char *, const char *) __attribute__ ((__noreturn__));
void
foo (int x, int y[x][x])
{
if (x < 2)
baz ("", "");
}
void
bar (void)
{
int z[2][2] = { { 1, 2 }, { 3, 4 } };
foo (2, z);
}

View File

@@ -2864,8 +2864,6 @@ copy_debug_stmt (gdebug *stmt, copy_body_data *id)
else if (gimple_debug_source_bind_p (stmt))
{
gimple_debug_source_bind_set_var (stmt, t);
walk_tree (gimple_debug_source_bind_get_value_ptr (stmt),
remap_gimple_op_r, &wi, NULL);
/* When inlining and source bind refers to one of the optimized
away parameters, change the source bind into normal debug bind
referring to the corresponding DEBUG_EXPR_DECL that should have
@@ -2889,7 +2887,10 @@ copy_debug_stmt (gdebug *stmt, copy_body_data *id)
break;
}
}
}
}
if (gimple_debug_source_bind_p (stmt))
walk_tree (gimple_debug_source_bind_get_value_ptr (stmt),
remap_gimple_op_r, &wi, NULL);
}
processing_debug_stmt = 0;