summaryrefslogtreecommitdiffstats
path: root/clang/lib/Serialization
diff options
context:
space:
mode:
authorHans Wennborg <hans@hanshq.net>2017-04-12 16:40:26 +0000
committerHans Wennborg <hans@hanshq.net>2017-04-12 16:40:26 +0000
commit227077613a996e00e11a9f20de0692d35c8940fb (patch)
tree615d1e4be17cf76948772f8a660ba30142f8d674 /clang/lib/Serialization
parent5ac9fd64a3fe21210cf17c0517a39feb0063c106 (diff)
downloadbcm5719-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.cpp103
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;
}
}
OpenPOWER on IntegriCloud