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.
- 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.”
- 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.
- 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.