diff options
| author | Fariborz Jahanian <fjahanian@apple.com> | 2010-02-10 00:32:12 +0000 |
|---|---|---|
| committer | Fariborz Jahanian <fjahanian@apple.com> | 2010-02-10 00:32:12 +0000 |
| commit | 113b8ad7cfd570eb26ce107c626e224254965f94 (patch) | |
| tree | 13a793ef46426c9ecfd1f5d26c18e110c10a5734 /clang/lib/AST/ASTContext.cpp | |
| parent | 811663eb1151f7a209160f2b071a79bf43daf85f (diff) | |
| download | bcm5719-llvm-113b8ad7cfd570eb26ce107c626e224254965f94.tar.gz bcm5719-llvm-113b8ad7cfd570eb26ce107c626e224254965f94.zip | |
Reverse a partial fix patch for radar 7214820. It broke some code and
I don't have time to refix it for now.
llvm-svn: 95733
Diffstat (limited to 'clang/lib/AST/ASTContext.cpp')
| -rw-r--r-- | clang/lib/AST/ASTContext.cpp | 19 |
1 files changed, 3 insertions, 16 deletions
diff --git a/clang/lib/AST/ASTContext.cpp b/clang/lib/AST/ASTContext.cpp index c9d85c84f96..7912a93421f 100644 --- a/clang/lib/AST/ASTContext.cpp +++ b/clang/lib/AST/ASTContext.cpp @@ -4311,24 +4311,11 @@ QualType ASTContext::mergeFunctionTypes(QualType lhs, QualType rhs) { bool allRTypes = true; // Check return type - QualType LRES = lbase->getResultType(); - QualType RRES = rbase->getResultType(); - Qualifiers::GC GC_L = LRES.getObjCGCAttr(); - Qualifiers::GC GC_R = RRES.getObjCGCAttr(); - // __weak/__strong attribute on one function/block return type but - // not the other is OK. - if (GC_L != GC_R) { - if (GC_R == Qualifiers::GCNone) - RRES = getObjCGCQualType(RRES, GC_L); - else if (GC_L == Qualifiers::GCNone) - LRES = getObjCGCQualType(LRES, GC_R); - } - - QualType retType = mergeTypes(LRES, RRES); + QualType retType = mergeTypes(lbase->getResultType(), rbase->getResultType()); if (retType.isNull()) return QualType(); - if (getCanonicalType(retType) != getCanonicalType(LRES)) + if (getCanonicalType(retType) != getCanonicalType(lbase->getResultType())) allLTypes = false; - if (getCanonicalType(retType) != getCanonicalType(RRES)) + if (getCanonicalType(retType) != getCanonicalType(rbase->getResultType())) allRTypes = false; // FIXME: double check this bool NoReturn = lbase->getNoReturnAttr() || rbase->getNoReturnAttr(); |

