================ @@ -899,6 +899,12 @@ def FrameAddress : Builtin { let Prototype = "void*(_Constant unsigned int)"; } +def StackAddress : Builtin { + let Spellings = ["__builtin_stack_address"]; + let Attributes = [NoThrow]; ---------------- aalhwc wrote:
I may be wrong here but I am not sure if this is an instance of a `Const` or even `Pure` function. Two consecutive calls to `__builtin_stack_address` can return different values which makes it im`Pure`. Since `Const` functions are a subset of `Pure` functions, it also can't be `Const`. This is based on [GCC](https://gcc.gnu.org/onlinedocs/gcc-4.0.0/gcc/Function-Attributes.html)'s documentation regarding function attributes. https://github.com/llvm/llvm-project/pull/121332 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits