diff options
author | Jason Merrill <jason@redhat.com> | 2010-02-03 16:53:41 -0500 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2010-02-03 16:53:41 -0500 |
commit | 2aac192471397a381200ebf29cf92978b97b34b0 (patch) | |
tree | 41d1ac72aeb81b278f1eae050004e7b634c0bd65 /gcc/fold-const.c | |
parent | f000c6a763acc0ba0184c5634f2feb3ea883992c (diff) | |
download | gcc-2aac192471397a381200ebf29cf92978b97b34b0.zip gcc-2aac192471397a381200ebf29cf92978b97b34b0.tar.gz gcc-2aac192471397a381200ebf29cf92978b97b34b0.tar.bz2 |
re PR c++/40138 (ICE with invalid va_arg)
PR c++/40138
* fold-const.c (operand_equal_p): Handle erroneous types.
From-SVN: r156483
Diffstat (limited to 'gcc/fold-const.c')
-rw-r--r-- | gcc/fold-const.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/fold-const.c b/gcc/fold-const.c index e7a4b8c..292b89f 100644 --- a/gcc/fold-const.c +++ b/gcc/fold-const.c @@ -3165,7 +3165,9 @@ int operand_equal_p (const_tree arg0, const_tree arg1, unsigned int flags) { /* If either is ERROR_MARK, they aren't equal. */ - if (TREE_CODE (arg0) == ERROR_MARK || TREE_CODE (arg1) == ERROR_MARK) + if (TREE_CODE (arg0) == ERROR_MARK || TREE_CODE (arg1) == ERROR_MARK + || TREE_TYPE (arg0) == error_mark_node + || TREE_TYPE (arg1) == error_mark_node) return 0; /* Check equality of integer constants before bailing out due to |