diff options
| author | Hans Wennborg <hans@hanshq.net> | 2017-04-12 16:40:26 +0000 |
|---|---|---|
| committer | Hans Wennborg <hans@hanshq.net> | 2017-04-12 16:40:26 +0000 |
| commit | 227077613a996e00e11a9f20de0692d35c8940fb (patch) | |
| tree | 615d1e4be17cf76948772f8a660ba30142f8d674 /clang/lib/Serialization | |
| parent | 5ac9fd64a3fe21210cf17c0517a39feb0063c106 (diff) | |
| download | bcm5719-llvm-227077613a996e00e11a9f20de0692d35c8940fb.tar.gz bcm5719-llvm-227077613a996e00e11a9f20de0692d35c8940fb.zip | |
Revert r300001 "Revert r298824 & r298816, recommit r298742 & r298754"
It caused PR32640.
llvm-svn: 300074
Diffstat (limited to 'clang/lib/Serialization')
| -rw-r--r-- | clang/lib/Serialization/ASTReader.cpp | 103 |
1 files changed, 0 insertions, 103 deletions
diff --git a/clang/lib/Serialization/ASTReader.cpp b/clang/lib/Serialization/ASTReader.cpp index d6bacfe3e09..78f71b3efeb 100644 --- a/clang/lib/Serialization/ASTReader.cpp +++ b/clang/lib/Serialization/ASTReader.cpp @@ -9327,11 +9327,6 @@ void ASTReader::diagnoseOdrViolations() { MethodVolatile, MethodConst, MethodInline, - MethodNumberParameters, - MethodParameterType, - MethodParameterName, - MethodParameterSingleDefaultArgument, - MethodParameterDifferentDefaultArguments, }; // These lambdas have the common portions of the ODR diagnostics. This @@ -9656,104 +9651,6 @@ void ASTReader::diagnoseOdrViolations() { break; } - const unsigned FirstNumParameters = FirstMethod->param_size(); - const unsigned SecondNumParameters = SecondMethod->param_size(); - if (FirstNumParameters != SecondNumParameters) { - ODRDiagError(FirstMethod->getLocation(), - FirstMethod->getSourceRange(), MethodNumberParameters) - << FirstName << FirstNumParameters; - ODRDiagNote(SecondMethod->getLocation(), - SecondMethod->getSourceRange(), MethodNumberParameters) - << SecondName << SecondNumParameters; - Diagnosed = true; - break; - } - - // Need this status boolean to know when break out of the switch. - bool ParameterMismatch = false; - for (unsigned I = 0; I < FirstNumParameters; ++I) { - const ParmVarDecl *FirstParam = FirstMethod->getParamDecl(I); - const ParmVarDecl *SecondParam = SecondMethod->getParamDecl(I); - - QualType FirstParamType = FirstParam->getType(); - QualType SecondParamType = SecondParam->getType(); - if (FirstParamType != SecondParamType) { - if (const DecayedType *ParamDecayedType = - FirstParamType->getAs<DecayedType>()) { - ODRDiagError(FirstMethod->getLocation(), - FirstMethod->getSourceRange(), MethodParameterType) - << FirstName << (I + 1) << FirstParamType << true - << ParamDecayedType->getOriginalType(); - } else { - ODRDiagError(FirstMethod->getLocation(), - FirstMethod->getSourceRange(), MethodParameterType) - << FirstName << (I + 1) << FirstParamType << false; - } - - if (const DecayedType *ParamDecayedType = - SecondParamType->getAs<DecayedType>()) { - ODRDiagNote(SecondMethod->getLocation(), - SecondMethod->getSourceRange(), MethodParameterType) - << SecondName << (I + 1) << SecondParamType << true - << ParamDecayedType->getOriginalType(); - } else { - ODRDiagNote(SecondMethod->getLocation(), - SecondMethod->getSourceRange(), MethodParameterType) - << SecondName << (I + 1) << SecondParamType << false; - } - ParameterMismatch = true; - break; - } - - DeclarationName FirstParamName = FirstParam->getDeclName(); - DeclarationName SecondParamName = SecondParam->getDeclName(); - if (FirstParamName != SecondParamName) { - ODRDiagError(FirstMethod->getLocation(), - FirstMethod->getSourceRange(), MethodParameterName) - << FirstName << (I + 1) << FirstParamName; - ODRDiagNote(SecondMethod->getLocation(), - SecondMethod->getSourceRange(), MethodParameterName) - << SecondName << (I + 1) << SecondParamName; - ParameterMismatch = true; - break; - } - - const Expr* FirstDefaultArg = FirstParam->getDefaultArg(); - const Expr* SecondDefaultArg = SecondParam->getDefaultArg(); - if ((!FirstDefaultArg && SecondDefaultArg) || - (FirstDefaultArg && !SecondDefaultArg)) { - ODRDiagError(FirstMethod->getLocation(), - FirstMethod->getSourceRange(), - MethodParameterSingleDefaultArgument) - << FirstName << (I + 1) << (FirstDefaultArg != nullptr); - ODRDiagNote(SecondMethod->getLocation(), - SecondMethod->getSourceRange(), - MethodParameterSingleDefaultArgument) - << SecondName << (I + 1) << (SecondDefaultArg != nullptr); - ParameterMismatch = true; - break; - } - - if (ComputeODRHash(FirstDefaultArg) != - ComputeODRHash(SecondDefaultArg)) { - ODRDiagError(FirstMethod->getLocation(), - FirstMethod->getSourceRange(), - MethodParameterDifferentDefaultArguments) - << FirstName << (I + 1); - ODRDiagNote(SecondMethod->getLocation(), - SecondMethod->getSourceRange(), - MethodParameterDifferentDefaultArguments) - << SecondName << (I + 1); - ParameterMismatch = true; - break; - } - } - - if (ParameterMismatch) { - Diagnosed = true; - break; - } - break; } } |

