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();