https://sourceware.org/bugzilla/show_bug.cgi?id=32073

--- Comment #5 from Jan Beulich <jbeulich at suse dot com> ---
(In reply to Andreas Schwab from comment #4)
> $ cat svml_d_acos2_core-sse2.S
> #define JUMPTARGET(name) *name##@GOTPCREL(%rip)
> 
> .macro WRAPPER_IMPL_SSE2 callee
>  call JUMPTARGET(\callee)
> .endm
> .text
> WRAPPER_IMPL_SSE2 acos

Which cpp expands to

 .macro WRAPPER_IMPL_SSE2 callee
 call *\ callee@GOTPCREL(%rip)
 .endm
 .text
 WRAPPER_IMPL_SSE2 acos

Wow. Where's the blank coming from? I didn't know the pre-processor may insert
random whitespace. And the pre-processed result is identical to that of the
(imo) bogus

        call JUMPTARGET(\ callee)

How's the consumer supposed to be telling apart which one it was originally?

Yet then documentation is unclear on whether there may be whitespace between
the \ and the parameter name. We could of course make macro expansion skip
whitespace when a valid parameter name follows. Yet I fear there could be other
anomalies as a result.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Reply via email to