From: Chris Lattner Date: Fri, 10 Aug 2007 17:18:58 +0000 (+0000) Subject: fix this test to pass. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=cff944ba2616e00b8753c0630ff727889802c061;p=clang fix this test to pass. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@40996 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/test/Parser/builtin_types_compatible.c b/test/Parser/builtin_types_compatible.c index c9a6df4991..ed7ea2cc5d 100644 --- a/test/Parser/builtin_types_compatible.c +++ b/test/Parser/builtin_types_compatible.c @@ -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;