]> granicus.if.org Git - clang/commitdiff
Declarator class considers DeclSpec as immutable; Declarator::getMutableDeclSpec...
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>
Sat, 16 Aug 2008 09:55:52 +0000 (09:55 +0000)
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>
Sat, 16 Aug 2008 09:55:52 +0000 (09:55 +0000)
Have Declarator accept and use a 'const DeclSpec &', instead of 'DeclSpec &', to make DeclSpec's immutability more explicit.
No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@54839 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Parse/DeclSpec.h

index 4f53de9462de48d92b8f67ef5afe41b9f149ae2b..f4690f80128b1f60aa46c47d7e2cf077150c0608 100644 (file)
@@ -549,7 +549,7 @@ struct DeclaratorChunk {
 /// Instances of this class should be a transient object that lives on the
 /// stack, not objects that are allocated in large quantities on the heap.
 class Declarator {
-  DeclSpec &DS;
+  const DeclSpec &DS;
   IdentifierInfo *Identifier;
   SourceLocation IdentifierLoc;
   
@@ -584,7 +584,7 @@ private:
   Action::ExprTy *AsmLabel;
   
 public:
-  Declarator(DeclSpec &ds, TheContext C)
+  Declarator(const DeclSpec &ds, TheContext C)
     : DS(ds), Identifier(0), Context(C), InvalidType(false), AttrList(0),
       AsmLabel(0) {
   }
@@ -602,7 +602,7 @@ public:
   /// multiple declarators, so mutating the DeclSpec affects all of the
   /// Declarators.  This should only be done when the declspec is known to not
   /// be shared or when in error recovery etc.
-  DeclSpec &getMutableDeclSpec() { return DS; }
+  DeclSpec &getMutableDeclSpec() { return const_cast<DeclSpec &>(DS); }
 
   TheContext getContext() const { return Context; }