[clang] [clang][Sema] Add noinline check for __builtin_frame_address and __builtin_return_address (PR #82966)

Nick Desaulniers via cfe-commits cfe-commits at lists.llvm.org
Mon Mar 4 12:29:09 PST 2024


nickdesaulniers wrote:

> I'm seeing evidence that this might be a chatty diagnostic in practice:
> 
> https://sourcegraph.com/github.com/torvalds/linux@90d35da658da8cff0d4ecbb5113f5fac9d00eb72/-/blob/kernel/fork.c?L311 https://sourcegraph.com/github.com/torvalds/linux@90d35da658da8cff0d4ecbb5113f5fac9d00eb72/-/blob/mm/util.c?L644 https://sourcegraph.com/github.com/torvalds/linux@90d35da658da8cff0d4ecbb5113f5fac9d00eb72/-/blob/arch/arm/mm/nommu.c?L224 https://sourcegraph.com/github.com/torvalds/linux@90d35da658da8cff0d4ecbb5113f5fac9d00eb72/-/blob/kernel/scs.c?L48 (and quite a few others).
> 
> CC @nathanchance @nickdesaulniers @rjmccall for opinions
> 
> If we continue to move forward with the patch, you should add a release note to `clang/docs/ReleaseNotes.rst` so users know about the new diagnostic.

There's definitely cases where `__builtin_frame_address` is used in callers attributes `__attribute__((always_inline))` within the Linux kernel sources.  Perhaps we should diagnose when the caller is neither noinline or always_inline, since then inline substitution will depend on optimizations?

https://github.com/llvm/llvm-project/pull/82966


More information about the cfe-commits mailing list