From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id BEC073846047; Fri, 26 Feb 2021 05:49:09 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org BEC073846047 From: "i at maskray dot me" To: gcc-bugs@gcc.gnu.org Subject: [Bug c/99282] New: Emit .cfi_sections without arguments for -fno-asynchronous-unwind-tables Date: Fri, 26 Feb 2021 05:49:09 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: c X-Bugzilla-Version: 11.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: i at maskray dot me X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_id short_desc product version bug_status bug_severity priority component assigned_to reporter target_milestone Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: gcc-bugs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-bugs mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Feb 2021 05:49:09 -0000 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D99282 Bug ID: 99282 Summary: Emit .cfi_sections without arguments for -fno-asynchronous-unwind-tables Product: gcc Version: 11.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: i at maskray dot me Target Milestone: --- .cfi_* in inline asm is rare, but can be useful if the user wants precise unwind information. % cat a.c int main() { asm("pushl 0\n.cfi_adjust_cfa_offset 4\npop %%eax\n.cfi_adjust_cfa_offset= -4" ::: "eax"); } % gcc -m32 -c -fomit-frame-pointer -fno-asynchronous-unwind-tables a.c a.c: Assembler messages: a.c:3: Error: CFI instruction used without previous .cfi_startproc a.c:5: Error: CFI instruction used without previous .cfi_startproc -fasynchronous-unwind-tables & -fno-asynchronous-unwind-tables do not have a predefined macro, so it is difficult for the inline asm to know whether CFI directives should be used. For ergonomics, users just want to write CFI directives and hope they will be silently ignored in -fno-asynchronous-unwind-tables mode. However, GNU as errors for .cfi_* wit= hout .cfi_startproc . I suggest that (1) GCC emits ".cfi_sections" (no argument) at the beginning, (2) GNU as suppresses the error if no .eh_frame/.debug_frame is needed (fea= ture request: https://sourceware.org/bugzilla/show_bug.cgi?id=3D27472).=