https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109257
Bug ID: 109257 Summary: `-masm=intel` generates weird syntax for indirect jumps Product: gcc Version: 13.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: lh_mouse at 126 dot com Target Milestone: --- https://gcc.godbolt.org/z/Tc8v5qfv1 a proper tail call: ``` extern int (*foo)(int, int); int ptc_to_foo(int a, int b) { return foo(a, b); } ``` GCC compiles it to this: ``` ptc_to_foo: jmp [QWORD PTR foo[rip]] ``` The outer pair of brackets are superfluous. The `foo[rip]` part is also invalid but it's a common issue for all addressing operands for x86_64, not specifically about jmp.