Commit 142473df by Marek Polacek Committed by Marek Polacek

re PR sanitizer/80659 (-fsanitize=address evokes ICE in in gimplify_switch_expr)

	PR sanitizer/80659
	* c-decl.c (build_compound_literal): Set DECL_ARTIFICIAL and
	DECL_IGNORED_P even for non-static compound literals.

	* gcc.dg/asan/pr80659.c: New test.

From-SVN: r248143
parent 26092cc7
2017-05-17 Marek Polacek <polacek@redhat.com>
PR sanitizer/80659
* c-decl.c (build_compound_literal): Set DECL_ARTIFICIAL and
DECL_IGNORED_P even for non-static compound literals.
2017-05-17 Martin Liska <mliska@suse.cz> 2017-05-17 Martin Liska <mliska@suse.cz>
* c-decl.c (c_parse_final_cleanups): Introduce dump_flags_t type and * c-decl.c (c_parse_final_cleanups): Introduce dump_flags_t type and
......
...@@ -5261,6 +5261,8 @@ build_compound_literal (location_t loc, tree type, tree init, bool non_const) ...@@ -5261,6 +5261,8 @@ build_compound_literal (location_t loc, tree type, tree init, bool non_const)
DECL_CONTEXT (decl) = current_function_decl; DECL_CONTEXT (decl) = current_function_decl;
TREE_USED (decl) = 1; TREE_USED (decl) = 1;
DECL_READ_P (decl) = 1; DECL_READ_P (decl) = 1;
DECL_ARTIFICIAL (decl) = 1;
DECL_IGNORED_P (decl) = 1;
TREE_TYPE (decl) = type; TREE_TYPE (decl) = type;
TREE_READONLY (decl) = (TYPE_READONLY (type) TREE_READONLY (decl) = (TYPE_READONLY (type)
|| (TREE_CODE (type) == ARRAY_TYPE || (TREE_CODE (type) == ARRAY_TYPE
...@@ -5297,8 +5299,6 @@ build_compound_literal (location_t loc, tree type, tree init, bool non_const) ...@@ -5297,8 +5299,6 @@ build_compound_literal (location_t loc, tree type, tree init, bool non_const)
set_compound_literal_name (decl); set_compound_literal_name (decl);
DECL_DEFER_OUTPUT (decl) = 1; DECL_DEFER_OUTPUT (decl) = 1;
DECL_COMDAT (decl) = 1; DECL_COMDAT (decl) = 1;
DECL_ARTIFICIAL (decl) = 1;
DECL_IGNORED_P (decl) = 1;
pushdecl (decl); pushdecl (decl);
rest_of_decl_compilation (decl, 1, 0); rest_of_decl_compilation (decl, 1, 0);
} }
......
2017-05-17 Marek Polacek <polacek@redhat.com>
PR sanitizer/80659
* gcc.dg/asan/pr80659.c: New test.
2017-05-17 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com> 2017-05-17 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
* gcc.dg/tree-ssa/pr78886.c: Use __SIZE_TYPE__ instead of * gcc.dg/tree-ssa/pr78886.c: Use __SIZE_TYPE__ instead of
......
/* PR sanitizer/80659 */
/* { dg-do compile } */
void
foo (int a)
{
switch (a)
{
case 0:
(int[3]) { };
int h;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment