binutils Newspaper
OCTOBER 6, 2026
gas — Proposed

gas: Disable SFrame warnings if default-enabled

A discussion on removing a GCC extension for variable argument lists (`__VA_ARGS__`) from gas's SFrame warning macro to improve portability.

Sam James is asked by Jan Beulich to remove a GCC-specific __VA_ARGS__ extension from the sframe_as_warn macro in gas. The macro is intended to suppress warnings when SFrames are enabled by default. James acknowledges the issue, attributing it to a long-running branch, and agrees to fix it.

In the Thread 2 participants
  1. Jan Beulich reviewer

    Requests the removal of a GCC extension (`__VA_ARGS__`) from the `sframe_as_warn` macro, citing a previous commit that already addressed this issue.

    “As per 26ea095fa700 ("gas/gen-sframe: avoid gcc extension using __VA_ARGS__") please avoid using a gcc extension here.”
  2. Sam James proposer

    Acknowledges the feedback regarding the GCC extension and agrees to correct the macro, attributing the oversight to a long-running development branch.

    “The perils of long-running branches. Thanks.”

Technical Tradeoffs

  • Ensuring portability by avoiding compiler-specific extensions.
  • Maintaining the intended warning suppression logic across different C standards.

In Details

This patch for the GNU Assembler (gas) aims to modify how SFrame warnings are handled. The macro sframe_as_warn is intended to only issue warnings when SFrames are explicitly enabled via a command-line flag, not when they are the default behavior. The discussion centers on removing a GCC-specific __VA_ARGS__ syntax from this macro to ensure compatibility with other C compilers.

For Context
gas
The GNU Assembler, part of the binutils package. It translates assembly language code into machine code.
SFrame
Likely refers to a mechanism for generating stack frame unwind information, possibly related to debugging or exception handling. The exact nature is not fully specified but relates to code generation in gas/ld.
Warning
A diagnostic message issued by a compiler or assembler indicating a potential problem or non-standard code construct, but not necessarily an error that prevents compilation.
__VA_ARGS__
A GCC-specific preprocessor extension that represents all arguments passed to a variadic macro.
Macro
A fragment of code that is given a name. When the code is compiled, the macro name is replaced by the contents of the macro.

Part of a Series

Filed Under: gasbinutilswarningsportabilitysframe