I think so but currently we disable only builtins marked with 'f'

//  f -> this is a libc/libm function without the '__builtin_' prefix. It
can
//       be followed by ':headername:' to state which header this function
//       comes from.

-ffreestanding will also disable builtins but many test using
-ffreestanding are using target specific intrinsics builtins. Not sure how
to handle this.



On Tue, Jun 18, 2013 at 8:10 PM, John McCall <[email protected]> wrote:

> On Jun 9, 2013, at 5:15 PM, Francois Pichet <[email protected]> wrote:
>
> Hi, I would like to propose this patch to makes it possible to compile any
> builtin if -fno-builtin is passed.
>
> Here is the problem I am trying to get around.
>
> I am working on a out-of-tree target where atomic operations are expanded
> to function calls.
> for example:
>   setOperationAction(ISD::ATOMIC_SWAP,  MVT::i32, Expand);
>
>
> The backend will replace some atomic operations when compiling libc++ with
> function calls. Now if I try to actually compile the function calls with
> clang I'll get errors like:
>        definition of builtin function '__sync_lock_test_and_set_4'
>
> Just as if I was trying to compile a file similar to
> http://www.opensource.apple.com/source/Libc/Libc-583/arm/sys/gcc_atomic.c with
> clang.
>
> Any objection? Or any possible workaround?
>
>
> Should we even be recognizing this as a builtin under -fno-builtin?
>
> John.
>
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to