erichkeane added inline comments.

================
Comment at: clang/lib/Parse/ParseDeclCXX.cpp:4285
+    // created for us by the caller.
+    return true;
+  }
----------------
aaron.ballman wrote:
> aaron.ballman wrote:
> > erichkeane wrote:
> > > ABataev wrote:
> > > > erichkeane wrote:
> > > > > 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".
> > > > I think we can enable it for the previous versions, at least as an 
> > > > extension. Thoughts?
> > > It'll mean a larger test-surface I'd think, but there _IS_ precedent both 
> > > ways.  
> > > IMO, we are probably better off doing #2 above (a better 'unknown 
> > > attribute' diagnostic), then doing it as an extension if GCC makes that 
> > > choice, or there is a compelling reaosn.
> > I think it makes sense to improve the diagnostic here, but I think we 
> > should hold off on enabling it as an extension in older OpenMP modes until 
> > we have some usage experience with the feature. Once we have confidence 
> > that the feature works well in 5.1, then it's easy enough for us to support 
> > it in older modes.
> Actually, I'm rethinking whether that makes sense. In order to have the new 
> diagnostic, we'd have to perform this check *before* the `hasAttribute()` 
> check above because the attributes aren't known. That adds a bit more 
> checking back into the patch that was just removed (not the end of the world) 
> and it makes out-of-spec OpenMP attributes behave differently than  other 
> out-of-spec kinds of attributes (which is strange). I think my preference is 
> to leave this with the generic "unknown attribute" diagnostic. If we decide 
> to enable it as an extension, then `hasAttribute()` will know about them and 
> we can more easily add the forward/backward compat warnings at that point. 
> WDYT?
I guess my main motivation is that OMP version is a little bit more of a subtle 
difference, so I'd think the hint would be appreciated. That said, it DOES look 
like it is going to be enough of a hassle that we could perhaps do it as a 
future patch.

There is perhaps an improvement todiagnostics in general here (for the 
Attribute owner, not the author of this patch :-P) to differentiate, "this 
attribute name is nonsense" vs "this attribute name is only available in higher 
language settings".


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