aboutsummaryrefslogtreecommitdiff
path: root/gcc/c-family
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2014-03-28 19:16:32 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2014-03-28 19:16:32 +0100
commit8edbfaa667837b66a65cce37f46c54341351a35c (patch)
tree5ac9b4bd348a0bf427859860b1c1400fc1d7d29b /gcc/c-family
parented6eb6dc9f67948da5f87b9c75d6d03bf696446e (diff)
downloadgcc-8edbfaa667837b66a65cce37f46c54341351a35c.zip
gcc-8edbfaa667837b66a65cce37f46c54341351a35c.tar.gz
gcc-8edbfaa667837b66a65cce37f46c54341351a35c.tar.bz2
re PR c++/60689 (Bogus error with atomic::exchange)
PR c++/60689 * c-tree.h (c_build_function_call_vec): New prototype. * c-typeck.c (build_function_call_vec): Don't call resolve_overloaded_builtin here. (c_build_function_call_vec): New wrapper function around build_function_call_vec. Call resolve_overloaded_builtin here. (convert_lvalue_to_rvalue, build_function_call, build_atomic_assign): Call c_build_function_call_vec instead of build_function_call_vec. * c-parser.c (c_parser_postfix_expression_after_primary): Likewise. * c-decl.c (finish_decl): Likewise. * c-common.c (add_atomic_size_parameter): When creating new params vector, push the size argument first. * c-c++-common/pr60689.c: New test. From-SVN: r208912
Diffstat (limited to 'gcc/c-family')
-rw-r--r--gcc/c-family/ChangeLog6
-rw-r--r--gcc/c-family/c-common.c1
2 files changed, 7 insertions, 0 deletions
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog
index 8d67d12..250f4cf 100644
--- a/gcc/c-family/ChangeLog
+++ b/gcc/c-family/ChangeLog
@@ -1,3 +1,9 @@
+2014-03-28 Jakub Jelinek <jakub@redhat.com>
+
+ PR c++/60689
+ * c-common.c (add_atomic_size_parameter): When creating new
+ params vector, push the size argument first.
+
2014-03-26 Jakub Jelinek <jakub@redhat.com>
* c-ubsan.c (ubsan_instrument_division, ubsan_instrument_shift,
diff --git a/gcc/c-family/c-common.c b/gcc/c-family/c-common.c
index abd96fb..03731b4 100644
--- a/gcc/c-family/c-common.c
+++ b/gcc/c-family/c-common.c
@@ -10453,6 +10453,7 @@ add_atomic_size_parameter (unsigned n, location_t loc, tree function,
len = params->length ();
vec_alloc (v, len + 1);
+ v->quick_push (build_int_cst (size_type_node, n));
for (z = 0; z < len; z++)
v->quick_push ((*params)[z]);
f = build_function_call_vec (loc, vNULL, function, v, NULL);