https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114779
Bug ID: 114779 Summary: __builtin_constant_p does not work in inline functions Product: gcc Version: 14.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: gjl at gcc dot gnu.org Target Milestone: --- Take the following C test case with a special function register (SFR) definition at a constant address: #define SFR (*(volatile int*) 0x100) static __inline__ __attribute__((__always_inline__)) void test_bcp (int volatile *psfr) { if (! __builtin_constant_p (psfr)) __asm (".error \"psfr is not constant\""); } int main (void) { test_bcp (& SFR); return 0; } Then compile with: $ gcc bar.c -c -O2 Assembler messages: Error: psfr is not constant