https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97831

            Bug ID: 97831
           Summary: Lack of disable_tail_calls attribute
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: irogers at google dot com
  Target Milestone: ---

Tail call optimization may remove stack frames, certain tests assert stack
frames are present. Previously these tests would use
__attribute__((optimize("no-optimize-sibling-calls"))), however, the use of the
optimize attribute shouldn't occur in production code as per the FAQ:
https://gcc.gnu.org/wiki/FAQ#optimize_attribute_broken
The attribute disable_tail_calls is used in other compilers for this situation:
https://clang.llvm.org/docs/AttributeReference.html#disable-tail-calls

A situation where this has come up is in Linux:
https://lore.kernel.org/lkml/20201028081123.gt2...@hirez.programming.kicks-ass.net/
https://lore.kernel.org/lkml/20201114000803.909530-1-irog...@google.com/

Reply via email to