aaron.ballman added inline comments.

================
Comment at: clang/lib/Parse/Parser.cpp:1096-1097
+    ParsingDeclSpec &DS, AccessSpecifier AS) {
+  DS.SetRangeStart(DeclSpecAttrs.Range.getBegin());
+  DS.SetRangeEnd(DeclSpecAttrs.Range.getEnd());
+  DS.takeAttributesFrom(DeclSpecAttrs);
----------------
compnerd wrote:
> aaron.ballman wrote:
> > How sure are you that this isn't overwriting existing range data that's 
> > potentially relevant? e.g., where declaration specifiers and attributes are 
> > mixed together such that the attribute range doesn't cover all of the 
> > declaration specifiers?
> I don't believe it can - the range hasn't been setup yet when coming into 
> this function, only the storage has been allocated.  This is the first place 
> where we are initializing the source range.  If there are other unstated 
> invariants, it would be nice to have some sort of assertion for them.
Ah, so we could perhaps assert that the range is invalid on entry and leave a 
comment explaining why we're asserting/what's going on?


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

https://reviews.llvm.org/D137979

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

Reply via email to