diff options
Diffstat (limited to 'clang/lib')
| -rw-r--r-- | clang/lib/AST/ASTImporter.cpp | 1 | ||||
| -rw-r--r-- | clang/lib/Frontend/PCHReaderDecl.cpp | 1 | ||||
| -rw-r--r-- | clang/lib/Frontend/PCHWriterDecl.cpp | 5 | ||||
| -rw-r--r-- | clang/lib/Sema/SemaDeclCXX.cpp | 1 | 
4 files changed, 7 insertions, 1 deletions
| diff --git a/clang/lib/AST/ASTImporter.cpp b/clang/lib/AST/ASTImporter.cpp index d9c0d7b6bed..650bb53236b 100644 --- a/clang/lib/AST/ASTImporter.cpp +++ b/clang/lib/AST/ASTImporter.cpp @@ -2176,6 +2176,7 @@ Decl *ASTNodeImporter::VisitParmVarDecl(ParmVarDecl *D) {                                              Loc, Name.getAsIdentifierInfo(),                                              T, TInfo, D->getStorageClass(),                                              /*FIXME: Default argument*/ 0); +  ToParm->setHasInheritedDefaultArg(D->hasInheritedDefaultArg());    return Importer.Imported(D, ToParm);  } 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);  } diff --git a/clang/lib/Sema/SemaDeclCXX.cpp b/clang/lib/Sema/SemaDeclCXX.cpp index 830d2e5eef9..7693e144ba2 100644 --- a/clang/lib/Sema/SemaDeclCXX.cpp +++ b/clang/lib/Sema/SemaDeclCXX.cpp @@ -298,6 +298,7 @@ bool Sema::MergeCXXFunctionDecl(FunctionDecl *New, FunctionDecl *Old) {        Invalid = true;      } else if (OldParam->hasDefaultArg()) {        // Merge the old default argument into the new parameter +      NewParam->setHasInheritedDefaultArg();        if (OldParam->hasUninstantiatedDefaultArg())          NewParam->setUninstantiatedDefaultArg(                                        OldParam->getUninstantiatedDefaultArg()); | 

