]> granicus.if.org Git - clang/commitdiff
fix this test to pass.
authorChris Lattner <sabre@nondot.org>
Fri, 10 Aug 2007 17:18:58 +0000 (17:18 +0000)
committerChris Lattner <sabre@nondot.org>
Fri, 10 Aug 2007 17:18:58 +0000 (17:18 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@40996 91177308-0d34-0410-b5e6-96231b3b80d8

test/Parser/builtin_types_compatible.c

index c9a6df4991608071a5d6d1bcfeb679ab855c733e..ed7ea2cc5d762891da2c9e71e3896f98744a80e1 100644 (file)
@@ -1,23 +1,22 @@
 // RUN: clang -parse-ast-check %s
 
-extern void funcInt(int);
-extern void funcFloat(float);
-extern void funcDouble(double);
+extern int funcInt(int);
+extern float funcFloat(float);
+extern double funcDouble(double);
 // figure out why "char *" doesn't work (with gcc, nothing to do with clang)
 //extern void funcCharPtr(char *);
 
 #define func(expr) \
-  ({ \
+  do { \
     typeof(expr) tmp; \
     if (__builtin_types_compatible_p(typeof(expr), int)) funcInt(tmp); \
     else if (__builtin_types_compatible_p(typeof(expr), float)) funcFloat(tmp); \
     else if (__builtin_types_compatible_p(typeof(expr), double)) funcDouble(tmp); \
-  })
+  } while (0)
 #define func_choose(expr) \
   __builtin_choose_expr(__builtin_types_compatible_p(typeof(expr), int), funcInt(expr), \
     __builtin_choose_expr(__builtin_types_compatible_p(typeof(expr), float), funcFloat(expr), \
-      __builtin_choose_expr(__builtin_types_compatible_p(typeof(expr), double), funcDouble(expr), \
-  (void)0)))
+      __builtin_choose_expr(__builtin_types_compatible_p(typeof(expr), double), funcDouble(expr), (void)0)))
 
 static void test()
 {
@@ -28,9 +27,9 @@ static void test()
   func(a);
   func(b);
   func(d);
-  func_choose(a);
-  func_choose(b);
-  func_choose(d);
+  a = func_choose(a);
+  b = func_choose(b);
+  d = func_choose(d);
 
   int c; 
   struct xx { int a; } x, y;