1. 6

This one looks like a no-op unless you have all the context: JS_STATIC_CONST_ENTRY_STRING is a macro that uses #x to convert its second argument to a string.

clang-format didn’t realize that what looks like a subtraction expression in a function call is not, in fact, multiple tokens but a single thing meant to turn into a string.


  2. 8

    This is a great example of how being “clever” with macros in C can cause pain. The #x macro feature arguably breaks C since it allows tokens to be treated invisibly as a completely different kind of token.

    1. 1

      In response to this, the macro was made less clever: https://pdfium.googlesource.com/pdfium/+/d539de991cacf02811880c434d4393c8275163d2

    2. 2

      What exactly is the significance of this?

      1. 2

        It illustrates an area where the mechanical tidy would need to take much more into account than it is designed to, to avoid suggesting changes that can break code. It appears that in this case, somebody decided the semantic change it wanted was the path of least resistance to silencing it.