[cfe-commits] r153243 - /cfe/trunk/test/CodeGenCXX/member-function-pointer-calls.cpp

Chandler Carruth chandlerc at gmail.com
Wed Mar 21 23:22:14 PDT 2012

Author: chandlerc
Date: Thu Mar 22 01:22:13 2012
New Revision: 153243

URL: http://llvm.org/viewvc/llvm-project?rev=153243&view=rev
Relax the FileCheck assertions in this test a touch. Previously the test
relied on an artifact of how the inliner and subsequent passes in
clang's -O3 mode happen to treat basic blocks and the labels for the
basic blocks. In my work on the inliner, and changed this fundamental
assumption, and the label that was being checked on the entry basic
block will no longer appear in opt builds. There was no reason to expect
the label to always be present anyways, much to my regret.

I've changed the test to just ensure that we return an immediate
constant. If there are intervening instructions, that's bad, but not
really that relevant to the test.

I'd love it if others have a better way of checking that a function body
contains only a 'ret' instruction that isn't dependent on whether or not
the entry block receives a label...


Modified: cfe/trunk/test/CodeGenCXX/member-function-pointer-calls.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenCXX/member-function-pointer-calls.cpp?rev=153243&r1=153242&r2=153243&view=diff
--- cfe/trunk/test/CodeGenCXX/member-function-pointer-calls.cpp (original)
+++ cfe/trunk/test/CodeGenCXX/member-function-pointer-calls.cpp Thu Mar 22 01:22:13 2012
@@ -9,16 +9,14 @@
 // CHECK: define i32 @_Z2g1v()
-// CHECK-NEXT: {{.*}}:
-// CHECK-NEXT: ret i32 1
+// CHECK: ret i32 1
 int g1() {
   A a;
   return f(&a, &A::vf1);
 // CHECK: define i32 @_Z2g2v()
-// CHECK-NEXT: {{.*}}:
-// CHECK-NEXT: ret i32 2
+// CHECK: ret i32 2
 int g2() {
   A a;
   return f(&a, &A::vf2);

More information about the cfe-commits mailing list