================
@@ -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

Reply via email to