This revision was automatically updated to reflect the committed changes. Closed by commit rC327892: [CodeGen] Add funclet token to ARC marker (authored by smeenai, committed by ).
Changed prior to commit: https://reviews.llvm.org/D44640?vs=138973&id=138983#toc Repository: rL LLVM https://reviews.llvm.org/D44640 Files: lib/CodeGen/CGObjC.cpp test/CodeGenObjCXX/arc-marker-funclet.mm Index: lib/CodeGen/CGObjC.cpp =================================================================== --- lib/CodeGen/CGObjC.cpp +++ lib/CodeGen/CGObjC.cpp @@ -2034,7 +2034,7 @@ // Call the marker asm if we made one, which we do only at -O0. if (marker) - CGF.Builder.CreateCall(marker); + CGF.Builder.CreateCall(marker, None, CGF.getBundlesForFunclet(marker)); } /// Retain the given object which is the result of a function call. Index: test/CodeGenObjCXX/arc-marker-funclet.mm =================================================================== --- test/CodeGenObjCXX/arc-marker-funclet.mm +++ test/CodeGenObjCXX/arc-marker-funclet.mm @@ -0,0 +1,17 @@ +// RUN: %clang_cc1 -triple i686-unknown-windows-msvc -fobjc-runtime=ios-6.0 -fobjc-arc \ +// RUN: -fexceptions -fcxx-exceptions -emit-llvm -o - %s | FileCheck %s + +id f(); +void g() { + try { + f(); + } catch (...) { + f(); + } +} + +// CHECK: call i8* @"?f@@YAPAUobjc_object@@XZ"() [ "funclet"(token %1) ] +// CHECK-NEXT: call void asm sideeffect "movl{{.*}}%ebp, %ebp{{.*}}", ""() [ "funclet"(token %1) ] + +// The corresponding f() call was invoked from the entry basic block. +// CHECK: call void asm sideeffect "movl{{.*}}%ebp, %ebp{{.*}}", ""(){{$}}
Index: lib/CodeGen/CGObjC.cpp =================================================================== --- lib/CodeGen/CGObjC.cpp +++ lib/CodeGen/CGObjC.cpp @@ -2034,7 +2034,7 @@ // Call the marker asm if we made one, which we do only at -O0. if (marker) - CGF.Builder.CreateCall(marker); + CGF.Builder.CreateCall(marker, None, CGF.getBundlesForFunclet(marker)); } /// Retain the given object which is the result of a function call. Index: test/CodeGenObjCXX/arc-marker-funclet.mm =================================================================== --- test/CodeGenObjCXX/arc-marker-funclet.mm +++ test/CodeGenObjCXX/arc-marker-funclet.mm @@ -0,0 +1,17 @@ +// RUN: %clang_cc1 -triple i686-unknown-windows-msvc -fobjc-runtime=ios-6.0 -fobjc-arc \ +// RUN: -fexceptions -fcxx-exceptions -emit-llvm -o - %s | FileCheck %s + +id f(); +void g() { + try { + f(); + } catch (...) { + f(); + } +} + +// CHECK: call i8* @"?f@@YAPAUobjc_object@@XZ"() [ "funclet"(token %1) ] +// CHECK-NEXT: call void asm sideeffect "movl{{.*}}%ebp, %ebp{{.*}}", ""() [ "funclet"(token %1) ] + +// The corresponding f() call was invoked from the entry basic block. +// CHECK: call void asm sideeffect "movl{{.*}}%ebp, %ebp{{.*}}", ""(){{$}}
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits