Make Token::setLength assert that the token is not an annotation token.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61791 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/clang/Lex/Token.h b/include/clang/Lex/Token.h
index a661ba8..c0dd2b7 100644
--- a/include/clang/Lex/Token.h
+++ b/include/clang/Lex/Token.h
@@ -87,12 +87,15 @@
/// offset in the current file.
SourceLocation getLocation() const { return Loc; }
unsigned getLength() const {
- assert(!isAnnotationToken() && "Used Length on annotation token");
+ assert(!isAnnotationToken() && "Annotation tokens have no length field");
return UintData;
}
void setLocation(SourceLocation L) { Loc = L; }
- void setLength(unsigned Len) { UintData = Len; }
+ void setLength(unsigned Len) {
+ assert(!isAnnotationToken() && "Annotation tokens have no length field");
+ UintData = Len;
+ }
SourceLocation getAnnotationEndLoc() const {
assert(isAnnotationToken() && "Used AnnotEndLocID on non-annotation token");
@@ -120,6 +123,7 @@
/// startToken - Reset all flags to cleared.
///
void startToken() {
+ Kind = tok::unknown;
Flags = 0;
PtrData = 0;
Loc = SourceLocation();