https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107513
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Roy Jacobson from comment #2) > I might be using it wrong? But it doesn't seem to do anything: > https://godbolt.org/z/9bdKhz4E7 > > It would be nice to at least avoid having the function's name in the binary, > clang does it with nodebug. because it does something different really. It is not used to reduce debug info but rather to make the debugging experience better. It marks the inlined function with DW_AT_artificial. .byte 0x1 # DW_AT_decl_file (/app/example.cpp) .byte 0x2 # DW_AT_decl_line .long 0x35 # DW_AT_type .byte 0x3 # DW_AT_inline .byte 0x1 # DW_AT_artificial That is it is actually better than Clang's nodebug for debuggability reasons. In my view nodebug is a hack rather than actually use DW_AT_artificial correctly.