[llvm-commits] [llvm-gcc-4.2] r56742 - in /llvm-gcc-4.2/trunk/gcc/testsuite: g++.apple/block-no-trampoline.C gcc.apple/block-no-trampoline.c

Bill Wendling isanbard at gmail.com
Fri Sep 26 17:52:08 PDT 2008


Author: void
Date: Fri Sep 26 19:52:08 2008
New Revision: 56742

URL: http://llvm.org/viewvc/llvm-project?rev=56742&view=rev
Log:
Testcases for no trampolines.

Added:
    llvm-gcc-4.2/trunk/gcc/testsuite/g++.apple/block-no-trampoline.C
    llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/block-no-trampoline.c

Added: llvm-gcc-4.2/trunk/gcc/testsuite/g++.apple/block-no-trampoline.C
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/g%2B%2B.apple/block-no-trampoline.C?rev=56742&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/testsuite/g++.apple/block-no-trampoline.C (added)
+++ llvm-gcc-4.2/trunk/gcc/testsuite/g++.apple/block-no-trampoline.C Fri Sep 26 19:52:08 2008
@@ -0,0 +1,55 @@
+/* APPLE LOCAL file radar 6230701 */
+/* Test that no trampoline is generated for this test case. */
+/* { dg-options "-mmacosx-version-min=10.6 -ObjC++ -framework Foundation -O0" { target *-*-darwin* } } */
+/* { dg-do run } */
+
+#import <Foundation/NSObject.h>
+
+#import <stdio.h>
+
+extern "C" void abort(void);
+extern "C" void __enable_execute_stack ()
+{
+	abort();
+}
+
+ at interface A : NSObject
+- (int)bork:(int)i;
+ at end
+
+ at implementation A
+- (int)bork:(int)i {
+  printf("i == %d\n", i);
+  return i + 37;
+}
+ at end
+
+ at interface B : A
+- (id)foo:(id)i;
+ at end
+
+ at implementation B
+- (id)foo:(id)i {
+  printf("Hello world\n");
+}
+
+- (id)bar:(int)i {
+  int  xnew;
+
+  [self foo:
+    ^() {
+      __block int xnew;
+      xnew = [super bork:i];
+    }];
+}
+ at end
+
+int main() {
+  B *b = [[B alloc] init];
+
+  [b foo:0];
+  [b bar:0];
+  [b release];
+  return 0;
+}
+

Added: llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/block-no-trampoline.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/block-no-trampoline.c?rev=56742&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/block-no-trampoline.c (added)
+++ llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/block-no-trampoline.c Fri Sep 26 19:52:08 2008
@@ -0,0 +1,55 @@
+/* APPLE LOCAL file radar 6230701 */
+/* Test that no trampoline is generated for this test case. */
+/* { dg-options "-mmacosx-version-min=10.6 -ObjC -framework Foundation -O0" { target *-*-darwin* } } */
+/* { dg-do run } */
+
+#import <Foundation/NSObject.h>
+
+#import <stdio.h>
+
+extern void abort(void);
+static void __enable_execute_stack ()
+{
+	abort();
+}
+
+ at interface A : NSObject
+- (int)bork:(int)i;
+ at end
+
+ at implementation A
+- (int)bork:(int)i {
+  printf("i == %d\n", i);
+  return i + 37;
+}
+ at end
+
+ at interface B : A
+- (id)foo:(id)i;
+ at end
+
+ at implementation B
+- (id)foo:(id)i {
+  printf("Hello world\n");
+}
+
+- (id)bar:(int)i {
+  int  new;
+
+  [self foo:
+    ^() {
+      __block new;
+      new = [super bork:i];
+    }];
+}
+ at end
+
+int main() {
+  B *b = [[B alloc] init];
+
+  [b foo:0];
+  [b bar:0];
+  [b release];
+  return 0;
+}
+





More information about the llvm-commits mailing list