aboutsummaryrefslogtreecommitdiff
path: root/gcc/c-parser.c
diff options
context:
space:
mode:
authorMark Mitchell <mark@codesourcery.com>2006-06-15 03:26:38 +0000
committerMark Mitchell <mmitchel@gcc.gnu.org>2006-06-15 03:26:38 +0000
commitfe89d79748951c95a113e10b6184ca5284d3936d (patch)
tree2419236a5dd577e978264804fe2c75548fb14e25 /gcc/c-parser.c
parent801522dead7b6e710f78eb26017195c814db04a2 (diff)
downloadgcc-fe89d79748951c95a113e10b6184ca5284d3936d.zip
gcc-fe89d79748951c95a113e10b6184ca5284d3936d.tar.gz
gcc-fe89d79748951c95a113e10b6184ca5284d3936d.tar.bz2
re PR c++/26559 (ICE with __builtin_constant_p in template argument)
2006-06-14 Mark Mitchell <mark@codesourcery.com> PR c++/26559 * c-common.h (c_finish_omp_atomic): Adjust declaration. * c-omp.c (c_finish_omp_atomic): Return the expression to perform, rather than calling add_stmt on it. * c-parser.c (c_parser_omp_atomic): Adjust accordingly. 2006-06-14 Mark Mitchell <mark@codesourcery.com> PR c++/26559 * pt.c (tsubst_expr): Use finish_omp_atomic. (value_dependent_expression_p): All CALL_EXPRs are dependent. * semantics.c (finish_omp_atomic): Rework to use standard paradigms for handling non-dependent expressions. 2006-06-14 Mark Mitchell <mark@codesourcery.com> PR c++/26559 * g++.dg/template/builtin1.C: New test. * g++.dg/gomp/tpl-atomic-2.C: Remove XFAIL. From-SVN: r114665
Diffstat (limited to 'gcc/c-parser.c')
-rw-r--r--gcc/c-parser.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/c-parser.c b/gcc/c-parser.c
index 8afe79c..bca6a14 100644
--- a/gcc/c-parser.c
+++ b/gcc/c-parser.c
@@ -7214,6 +7214,7 @@ static void
c_parser_omp_atomic (c_parser *parser)
{
tree lhs, rhs;
+ tree stmt;
enum tree_code code;
c_parser_skip_to_pragma_eol (parser);
@@ -7280,7 +7281,9 @@ c_parser_omp_atomic (c_parser *parser)
rhs = c_parser_expression (parser).value;
break;
}
- c_finish_omp_atomic (code, lhs, rhs);
+ stmt = c_finish_omp_atomic (code, lhs, rhs);
+ if (stmt != error_mark_node)
+ add_stmt (stmt);
c_parser_skip_until_found (parser, CPP_SEMICOLON, "expected %<;%>");
}