[cfe-commits] r143699 - in /cfe/trunk: lib/ARCMigrate/TransGCCalls.cpp lib/Sema/SemaOverload.cpp test/ARCMT/GC.m test/ARCMT/GC.m.result
Argyrios Kyrtzidis
akyrtzi at gmail.com
Fri Nov 4 08:58:14 PDT 2011
Author: akirtzidis
Date: Fri Nov 4 10:58:13 2011
New Revision: 143699
URL: http://llvm.org/viewvc/llvm-project?rev=143699&view=rev
Log:
In C++ keep unavailable function calls in the AST, like in C/ObjC.
This allows the migrator to visit and fix them.
Modified:
cfe/trunk/lib/ARCMigrate/TransGCCalls.cpp
cfe/trunk/lib/Sema/SemaOverload.cpp
cfe/trunk/test/ARCMT/GC.m
cfe/trunk/test/ARCMT/GC.m.result
Modified: cfe/trunk/lib/ARCMigrate/TransGCCalls.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/ARCMigrate/TransGCCalls.cpp?rev=143699&r1=143698&r2=143699&view=diff
==============================================================================
--- cfe/trunk/lib/ARCMigrate/TransGCCalls.cpp (original)
+++ cfe/trunk/lib/ARCMigrate/TransGCCalls.cpp Fri Nov 4 10:58:13 2011
@@ -40,6 +40,7 @@
Transaction Trans(TA);
TA.clearDiagnostic(diag::err_unavailable,
diag::err_unavailable_message,
+ diag::err_ovl_deleted_call, // ObjC++
DRE->getSourceRange());
TA.replace(DRE->getSourceRange(), "CFBridgingRelease");
}
Modified: cfe/trunk/lib/Sema/SemaOverload.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaOverload.cpp?rev=143699&r1=143698&r2=143699&view=diff
==============================================================================
--- cfe/trunk/lib/Sema/SemaOverload.cpp (original)
+++ cfe/trunk/lib/Sema/SemaOverload.cpp Fri Nov 4 10:58:13 2011
@@ -8761,6 +8761,13 @@
<< getDeletedOrUnavailableSuffix(Best->Function)
<< Fn->getSourceRange();
CandidateSet.NoteCandidates(*this, OCD_AllCandidates, Args, NumArgs);
+
+ // We emitted an error for the unvailable/deleted function call but keep
+ // the call in the AST.
+ FunctionDecl *FDecl = Best->Function;
+ Fn = FixOverloadedFunctionReference(Fn, Best->FoundDecl, FDecl);
+ return BuildResolvedCallExpr(Fn, FDecl, LParenLoc, Args, NumArgs,
+ RParenLoc, ExecConfig);
}
break;
}
Modified: cfe/trunk/test/ARCMT/GC.m
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/ARCMT/GC.m?rev=143699&r1=143698&r2=143699&view=diff
==============================================================================
--- cfe/trunk/test/ARCMT/GC.m (original)
+++ cfe/trunk/test/ARCMT/GC.m Fri Nov 4 10:58:13 2011
@@ -1,6 +1,8 @@
// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fsyntax-only -fobjc-arc -x objective-c %s.result
// RUN: arcmt-test --args -triple x86_64-apple-darwin10 -fsyntax-only -fobjc-gc-only -x objective-c %s > %t
// RUN: diff %t %s.result
+// RUN: arcmt-test --args -triple x86_64-apple-darwin10 -fsyntax-only -fobjc-gc-only -x objective-c++ %s > %t
+// RUN: diff %t %s.result
#include "Common.h"
Modified: cfe/trunk/test/ARCMT/GC.m.result
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/ARCMT/GC.m.result?rev=143699&r1=143698&r2=143699&view=diff
==============================================================================
--- cfe/trunk/test/ARCMT/GC.m.result (original)
+++ cfe/trunk/test/ARCMT/GC.m.result Fri Nov 4 10:58:13 2011
@@ -1,6 +1,8 @@
// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fsyntax-only -fobjc-arc -x objective-c %s.result
// RUN: arcmt-test --args -triple x86_64-apple-darwin10 -fsyntax-only -fobjc-gc-only -x objective-c %s > %t
// RUN: diff %t %s.result
+// RUN: arcmt-test --args -triple x86_64-apple-darwin10 -fsyntax-only -fobjc-gc-only -x objective-c++ %s > %t
+// RUN: diff %t %s.result
#include "Common.h"
More information about the cfe-commits
mailing list