diff options
author | Mikhail Maltsev <maltsevm@gmail.com> | 2017-05-11 12:27:37 +0000 |
---|---|---|
committer | Mikhail Maltsev <miyuki@gcc.gnu.org> | 2017-05-11 12:27:37 +0000 |
commit | c587104e114652bea492bebbbc8373852578df69 (patch) | |
tree | 9214bd31fe82d143b0a670e59b7b32368d5cc9c2 /gcc/c/gimple-parser.c | |
parent | 056a17ee6ca8f0fcd318d0dfba18f277e05a3579 (diff) | |
download | gcc-c587104e114652bea492bebbbc8373852578df69.zip gcc-c587104e114652bea492bebbbc8373852578df69.tar.gz gcc-c587104e114652bea492bebbbc8373852578df69.tar.bz2 |
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
Diffstat (limited to 'gcc/c/gimple-parser.c')
-rw-r--r-- | gcc/c/gimple-parser.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/c/gimple-parser.c b/gcc/c/gimple-parser.c index c0858b7..ed9e7c5 100644 --- a/gcc/c/gimple-parser.c +++ b/gcc/c/gimple-parser.c @@ -692,6 +692,13 @@ c_parser_parse_ssa_name (c_parser *parser, c_parser_error (parser, "base variable or SSA name undeclared"); 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)) || TREE_CODE (TREE_TYPE (parent)) == COMPLEX_TYPE) DECL_GIMPLE_REG_P (parent) = 1; |