erichkeane added inline comments.

================
Comment at: clang/include/clang/Basic/TokenKinds.def:869
 PRAGMA_ANNOTATION(pragma_openmp)
+PRAGMA_ANNOTATION(pragma_openmp_from_attr)
 PRAGMA_ANNOTATION(pragma_openmp_end)
----------------
aaron.ballman wrote:
> erichkeane wrote:
> > `pragma_openmp_from_attr`?  Funny since it isn't a pragma...
> All of our pragma annotation tokens start with `pragma` (and we generate a 
> pragma annotation token to handle the parsing), so this is intended to convey 
> that it's a pragma_openmp annotation token that comes from_attr.
> 
> But if you have a better name you'd prefer I use, I could certainly switch, 
> but I think we want to keep `pragma_openmp` as the prefix to make it clear 
> that this is paired with the preceding `pragma_openmp` annotation token.
I guess I can buy that... it ends up being a little disorienting to see that... 
to me pragma_ meant #pragma, but I guess it could mean PRAGMA_ANNOTATION(.

That said, I would think PRAGMA_ANNOTATION is represented by the annot the 
macro adds...

I guess I would lean towards this being `openmp_attr`, but I don't feel 
strongly about that.


================
Comment at: clang/lib/Basic/Attributes.cpp:26
+  // machinery that goes through TableGen.
+  if (LangOpts.OpenMP >= 51 && ScopeName == "omp")
+    return Name == "directive" || Name == "sequence";
----------------
aaron.ballman wrote:
> erichkeane wrote:
> > Should we diagnose in non-OMP5.1 uses of this?
> What would we diagnose here? This is `__has_cpp_attribute`'s internal 
> implementation, so I don't think we want a diagnostic here. I asked Mike Rice 
> whether he thought we should support this syntax in older OpenMP modes and 
> his recommendation was to not do that yet (I guess it's less common to 
> backport features to older OpenMP standard modes).
Ah!  I missed that this was that context.  Disregard :) 


================
Comment at: clang/lib/Parse/ParseDeclCXX.cpp:4285
+    // created for us by the caller.
+    return true;
+  }
----------------
aaron.ballman wrote:
> erichkeane wrote:
> > Another place to make the same comment :D  I wonder if giving a diagnostic 
> > on attempting to use omp::directive in a previous version should have 
> > either an extension warning or more explicit warning would be a good idea?
> Ah, now I see what you're after. We could do that, but I think deciding 
> whether to expose this in older modes is more of an open question. I went 
> with the conservative approach first, but we could relax this later.
Well, I was going for 1 of two things:

1- allow in older modes, then do a warning that you're using it in the wrong 
version.

2- Customize the error from "unknown attribute directive" to something like, 
"attribute omp::directive is only available in OMP5.1 mode".


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D105648

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

Reply via email to