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