Re: [C++ PATCH] Fix __atomic_exchange (PR c++/60689)

2014-03-28 Thread Richard Henderson
On 03/28/2014 08:24 AM, Jakub Jelinek wrote: > Here is the variant patch, which implements the above. > Also bootstrapped/regtested on x86_64-linux and i686-linux. > > 2014-03-28 Jakub Jelinek > > PR c++/60689 > * c-tree.h (c_build_function_call_vec): New prototype. > * c-typ

Re: [C++ PATCH] Fix __atomic_exchange (PR c++/60689)

2014-03-28 Thread Jason Merrill
On 03/28/2014 06:47 AM, Jakub Jelinek wrote: * typeck.c (build_function_call_vec): Call resolve_overloaded_builtin. I expect this will break in templates if arguments are dependent. Jason

Re: [C++ PATCH] Fix __atomic_exchange (PR c++/60689)

2014-03-28 Thread Jakub Jelinek
On Fri, Mar 28, 2014 at 01:46:09PM -0400, Jason Merrill wrote: > On 03/28/2014 06:47 AM, Jakub Jelinek wrote: > > * typeck.c (build_function_call_vec): Call resolve_overloaded_builtin. > > I expect this will break in templates if arguments are dependent. The only problem with this patch is po

Re: [C++ PATCH] Fix __atomic_exchange (PR c++/60689)

2014-03-28 Thread Jakub Jelinek
On Fri, Mar 28, 2014 at 11:47:52AM +0100, Jakub Jelinek wrote: > Yet another possibility would be to rename all calls in C FE to > build_function_call_vec to say c_build_function_call_vec and add that > function which would call resolve_overloaded_builtin and then tail call to > build_function_call

[C++ PATCH] Fix __atomic_exchange (PR c++/60689)

2014-03-28 Thread Jakub Jelinek
Hi! __atomic_exchange doesn't work in C++. The problem is that add_atomic_size_parameter, if there is no room in params vector, creates new params vector big enough that the extra argument fixs in, but doesn't add the extra argument in, because it relies on the subsequent build_function_call_vec