cor3ntin added inline comments.

================
Comment at: clang/lib/Sema/SemaExpr.cpp:19113
+    // parameter appertaining to the same declaration as that attribute.
+    if(auto* Parm = dyn_cast<ParmVarDecl>(Var); Parm && Parm->getDeclContext() 
== DC)
+      return true;
----------------
aaron.ballman wrote:
> Formatting nit.
> 
> I have a hazy recollection that we sometimes have a weird declaration context 
> for parameters where the parameter doesn't think it's associated with a 
> function DC but instead with the translation unit DC. I seem to recall this 
> having something to do with PCH/AST importing, but I can't seem to find any 
> open issues about it. So this might be fine, but it may have some weird edge 
> cases still.
Yep, parameters are all created in the top level dc before being attached to 
the function. but by the time they get to be captured by a lambda they are 
attached to the function
(default parameters initializers can't capture)


================
Comment at: clang/test/SemaCXX/lambda-expressions.cpp:675-676
+StringLiteral(const char (&array)[N])
+    __attribute__((enable_if(__builtin_strlen(array) == 2,
+                              "invalid string literal")));
+};
----------------
aaron.ballman wrote:
> 1) This code already compiles today without issue 
> (https://godbolt.org/z/q6hPxoWq9), so are you sure this is testing what needs 
> to be tested?
> 
> 2) What about for non-GNU-style attributes ([[]] attributes that appertain to 
> the function type)? e.g.,
> ```
> template <int N>
> void foo(const char (&array)[N]) [[clang::annotate_type("test", array)]];
> ```
Yes, this is something that was broken by this patch.
enable_if did create odr uses (incorrectly). I can add a test for annotate_type 
but I don't think it would run into the same issue at all. 


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D124351

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

Reply via email to