aaron.ballman added inline comments.

================
Comment at: clang/lib/Parse/ParseDeclCXX.cpp:4285
+    // created for us by the caller.
+    return true;
+  }
----------------
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?


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