This is the mail archive of the mailing list for the binutils project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH][BINUTILS][AARCH64] Add support for pointer authentication B key

On 13/12/2018 21:30, Christophe Lyon wrote:
On Wed, 12 Dec 2018 at 11:50, Nick Clifton <> wrote:
Hi Sam,

One thing did catch my eye:

+#define tc_output_cie_extra(cie) if (cie->pauth_key == AARCH64_PAUTH_KEY_B) \
+                          out_one ('B');

Normally this would be written as:

#define tc_output_cie_extra(cie) \
    do \
      { \
        if (cie->pauth_key == AARCH64_PAUTH_KEY_B) \
          out_one ('B'); \
      } \
    while (0)

(Note - no semi-colon at the end).
That's an interesting convention! I don't really see the use of the loop.
It is there so that programmers can do:

   if (foo)
     tc_output_cie_extra (bar);
   if (baz)

With your version you might get a warning from the compiler about the "if (baz)"
conditional not being clearly associated with a previous if() statement.

I can commit this with the convention if you'd like, otherwise I can get
it committed right away.
I think that I prefer my way. :-)  Sorry, but your patch is still approved with this change made.


Hi Sam,
You patch broke the build:
../../gas/dw2gencfi.c: In function 'output_cie':
../../gas/dw2gencfi.c:1868:5: error: expected ';' before '}' token
../../gas/dw2gencfi.c:1931:1: error: invalid storage class for
function 'output_fde'
  output_fde (struct fde_entry *fde, struct cie_entry *cie,
../../gas/dw2gencfi.c: In function 'output_fde':
../../gas/dw2gencfi.c:1931:54: error: declaration of 'cie' shadows a
parameter [-Werror=shadow]


Fixed by Jeff's commit.




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]