rZhBoYao added a comment.

In D153156#4599324 <https://reviews.llvm.org/D153156#4599324>, @jyknight wrote:

> If proper spec-conformance means we can no longer support the ability to 
> allow such out-of-spec pre-c++11 code to work anymore, that's probably 
> OK...but, in that case, we also need to eliminate the warning option, and 
> mention the change in the release notes.

Works in C++98 mode tho. TIL people exploit this to mix pre-C++11 code into 
modern C++. I agree that a reminder for those people in the release note is 
needed.

> And, if that _was_ an intended change, then we have other diagnostics which 
> need to be fixed up now

Agreed

In D153156#4599292 <https://reviews.llvm.org/D153156#4599292>, @rupprecht wrote:

> IIUC, the question is not whether the diagnostic is correct, but rather why 
> `-Wno-reserved-user-defined-literal` does not workaround the breakage. Is 
> that right?
>
> An example of this in the wild is older versions of swig: 
> https://github.com/swig/swig/blob/939dd5e1c8c17e5f8b38747bf18e9041ab5f377e/Source/Modules/php.cxx#L1724

We simply stop pretending a whitespace precedes an invalid ud-suffix as that 
affects the grammar production and therefore diagnosis in Sema.
IMHO, people should stop  using `-Wno-reserved-user-defined-literal` and 
exploiting the addition of a whitespace to mingle pre-c++11 and post-c++11 code.
What if a programmer is really trying to call operator""b here (albeit 
ill-formed):

  const char* operator""b(const char*, decltype(sizeof 0));
  const char* f() {
  #define b "a"
    return "ONE"b; // NOW: IFNDR but calls operator""b
                   //
                   // BEFORE: string concat by exploiting the impl of
                   // ext_reserved_user_defined_literal (controlled by
                   // -Wreserved-user-defined-literal diag group)
  }


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D153156/new/

https://reviews.llvm.org/D153156

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to