[PATCH] Fix __atomic_compare_exchange handling (PR c++/52215)

2012-02-13 Thread Jakub Jelinek
Hi! As the testcase shows, deciding on whether to convert an argument or not based on TYPE_SIZE is wrong. While the old __sync_* builtins in the _[1248]/_16 variants only had a VPTR as first argument and optionally I[1248]/I16 argument or arguments that should be converted, the new __atomic_*

Re: [PATCH] Fix __atomic_compare_exchange handling (PR c++/52215)

2012-02-13 Thread Richard Henderson
On 02/13/2012 11:42 AM, Jakub Jelinek wrote: 2012-02-13 Jakub Jelinek ja...@redhat.com PR c++/52215 * c-common.c (sync_resolve_params): Don't decide whether to convert or not based on TYPE_SIZE comparison, convert whenever arg_type is unsigned INTEGER_TYPE.