Author: akirtzidis
Date: Sat Aug 16 04:55:52 2008
New Revision: 54839
URL: http://llvm.org/viewvc/llvm-project?rev=54839&view=rev
Log:
Declarator class considers DeclSpec as immutable;
Declarator::getMutableDeclSpec should be used rarely and with care.
Have Declarator accept and use a 'const DeclSpec &', instead of 'DeclSpec &',
to make DeclSpec's immutability more explicit.
No functionality change.
Modified:
cfe/trunk/include/clang/Parse/DeclSpec.h
Modified: cfe/trunk/include/clang/Parse/DeclSpec.h
URL:
http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Parse/DeclSpec.h?rev=54839&r1=54838&r2=54839&view=diff
==============================================================================
--- cfe/trunk/include/clang/Parse/DeclSpec.h (original)
+++ cfe/trunk/include/clang/Parse/DeclSpec.h Sat Aug 16 04:55:52 2008
@@ -549,7 +549,7 @@
/// 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 @@
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 @@
/// 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; }
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits