[llvm-dev] [cfe-dev] Over-ride the compiler built-in functions .

Tim Northover via llvm-dev llvm-dev at lists.llvm.org
Mon Jan 20 07:22:39 PST 2020

On Mon, 20 Jan 2020 at 10:57, Umesh Kalappa via cfe-dev
<cfe-dev at lists.llvm.org> wrote:
> But GCC compiles it and we think that GCC is right here unlike clang.

Names starting with two underscores (or a single underscore and a
capital letter) are reserved by the C and C++ standards for the
compiler to use. Defining any function like that is technically
undefined behaviour; defining one the compiler actually does use like
these atomic ones is extremely risky and Clang has decided it's better
to diagnose these issues than proceed with unknown behaviour.

Without the diagnostic, I believe your implementations would never be
called the way Clang is currently implemented.

> We would like to hear from the community view on this.

I think Clang is certainly technically in the right, and I'm not
convinced the ability to override them is a feature worth



More information about the llvm-dev mailing list