nridge added a comment.

Sorry, that was a bad example as it's not actually valid. Here's a slightly 
modified one:

  template <bool,int>
  class a {};
  
  constexpr int b = 2;
  constexpr int c = 3;
  constexpr int d = 4;
  
  a<b<c,d> e;

The parser knows the first `<` opens a template-param-list because the name 
before it, `a`, resolves to a template-name, and that the second `<` is a 
comparison operator because the name before //that//, `b`, does not.

But a native client-side matcher might incorrectly pick the second `<` as the 
opening angle-bracket to match the `>`.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D139926

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

Reply via email to