Commit c587104e by Mikhail Maltsev Committed by Mikhail Maltsev

GIMPLEFE: Handle invalid SSA names

gcc/testsuite/

	PR testsuite/80580
	* gcc.dg/gimplefe-error-6.c: New test.

gcc/c/

	PR testsuite/80580
	* gimple-parser.c (c_parser_parse_ssa_name): Validate SSA name base.

From-SVN: r247903
parent 056a17ee
2017-05-11 Mikhail Maltsev <maltsevm@gmail.com> 2017-05-11 Mikhail Maltsev <maltsevm@gmail.com>
PR testsuite/80580 PR testsuite/80580
* gimple-parser.c (c_parser_parse_ssa_name): Validate SSA name base.
2017-05-11 Mikhail Maltsev <maltsevm@gmail.com>
PR testsuite/80580
* gimple-parser.c (c_parser_gimple_postfix_expression): Handle * gimple-parser.c (c_parser_gimple_postfix_expression): Handle
incorrect __MEM syntax. incorrect __MEM syntax.
......
...@@ -692,6 +692,13 @@ c_parser_parse_ssa_name (c_parser *parser, ...@@ -692,6 +692,13 @@ c_parser_parse_ssa_name (c_parser *parser,
c_parser_error (parser, "base variable or SSA name undeclared"); c_parser_error (parser, "base variable or SSA name undeclared");
return error_mark_node; return error_mark_node;
} }
if (!(VAR_P (parent)
|| TREE_CODE (parent) == PARM_DECL
|| TREE_CODE (parent) == RESULT_DECL))
{
error ("invalid base %qE for SSA name", parent);
return error_mark_node;
}
if (VECTOR_TYPE_P (TREE_TYPE (parent)) if (VECTOR_TYPE_P (TREE_TYPE (parent))
|| TREE_CODE (TREE_TYPE (parent)) == COMPLEX_TYPE) || TREE_CODE (TREE_TYPE (parent)) == COMPLEX_TYPE)
DECL_GIMPLE_REG_P (parent) = 1; DECL_GIMPLE_REG_P (parent) = 1;
......
2017-05-11 Mikhail Maltsev <maltsevm@gmail.com> 2017-05-11 Mikhail Maltsev <maltsevm@gmail.com>
PR testsuite/80580 PR testsuite/80580
* gcc.dg/gimplefe-error-6.c: New test.
2017-05-11 Mikhail Maltsev <maltsevm@gmail.com>
PR testsuite/80580
* gcc.dg/gimplefe-error-5.c: New test. * gcc.dg/gimplefe-error-5.c: New test.
2017-05-11 Mikhail Maltsev <maltsevm@gmail.com> 2017-05-11 Mikhail Maltsev <maltsevm@gmail.com>
......
/* { dg-do compile } */
/* { dg-options "-fgimple" } */
void a(int);
__GIMPLE() void b()
{
a_2 = 0; /* { dg-error "invalid" } */
}
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