diff options
| author | John McCall <rjmccall@apple.com> | 2010-03-12 18:31:32 +0000 |
|---|---|---|
| committer | John McCall <rjmccall@apple.com> | 2010-03-12 18:31:32 +0000 |
| commit | f3cd665d5af66e336c542f04972fafb21865357b (patch) | |
| tree | 97e931178b2d855999f9345536e2a6758017459d /clang/lib/Frontend | |
| parent | ac77bf5d1e1d7293083faed4538b597e084e6d83 (diff) | |
| download | bcm5719-llvm-f3cd665d5af66e336c542f04972fafb21865357b.tar.gz bcm5719-llvm-f3cd665d5af66e336c542f04972fafb21865357b.zip | |
Remember whether a ParmVarDecl was spelled with a default argument or
whether it inherited one from a previous declaration.
Patch by Enea Zaffanella!
llvm-svn: 98362
Diffstat (limited to 'clang/lib/Frontend')
| -rw-r--r-- | clang/lib/Frontend/PCHReaderDecl.cpp | 1 | ||||
| -rw-r--r-- | clang/lib/Frontend/PCHWriterDecl.cpp | 5 |
2 files changed, 5 insertions, 1 deletions
diff --git a/clang/lib/Frontend/PCHReaderDecl.cpp b/clang/lib/Frontend/PCHReaderDecl.cpp index a3f5eac480c..70aa0dd3c9f 100644 --- a/clang/lib/Frontend/PCHReaderDecl.cpp +++ b/clang/lib/Frontend/PCHReaderDecl.cpp @@ -411,6 +411,7 @@ void PCHDeclReader::VisitImplicitParamDecl(ImplicitParamDecl *PD) { void PCHDeclReader::VisitParmVarDecl(ParmVarDecl *PD) { VisitVarDecl(PD); PD->setObjCDeclQualifier((Decl::ObjCDeclQualifier)Record[Idx++]); + PD->setHasInheritedDefaultArg(Record[Idx++]); } void PCHDeclReader::VisitFileScopeAsmDecl(FileScopeAsmDecl *AD) { diff --git a/clang/lib/Frontend/PCHWriterDecl.cpp b/clang/lib/Frontend/PCHWriterDecl.cpp index 0774797463e..d40658c3f9b 100644 --- a/clang/lib/Frontend/PCHWriterDecl.cpp +++ b/clang/lib/Frontend/PCHWriterDecl.cpp @@ -398,6 +398,7 @@ void PCHDeclWriter::VisitImplicitParamDecl(ImplicitParamDecl *D) { void PCHDeclWriter::VisitParmVarDecl(ParmVarDecl *D) { VisitVarDecl(D); Record.push_back(D->getObjCDeclQualifier()); // FIXME: stable encoding + Record.push_back(D->hasInheritedDefaultArg()); Code = pch::DECL_PARM_VAR; @@ -412,7 +413,8 @@ void PCHDeclWriter::VisitParmVarDecl(ParmVarDecl *D) { D->getPCHLevel() == 0 && D->getStorageClass() == 0 && !D->hasCXXDirectInitializer() && // Can params have this ever? - D->getObjCDeclQualifier() == 0) + D->getObjCDeclQualifier() == 0 && + !D->hasInheritedDefaultArg()) AbbrevToUse = Writer.getParmVarDeclAbbrev(); // Check things we know are true of *every* PARM_VAR_DECL, which is more than @@ -496,6 +498,7 @@ void PCHWriter::WriteDeclsBlockAbbrevs() { Abv->Add(BitCodeAbbrevOp(0)); // HasInit // ParmVarDecl Abv->Add(BitCodeAbbrevOp(0)); // ObjCDeclQualifier + Abv->Add(BitCodeAbbrevOp(0)); // HasInheritedDefaultArg ParmVarDeclAbbrev = Stream.EmitAbbrev(Abv); } |

