On Fri, Mar 29, 2013 at 1:51 PM, YunZhong Gao <span dir="ltr"><<a href="mailto:gaoyunzhong@gmail.com" target="_blank">gaoyunzhong@gmail.com</a>></span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
gaoyunzhong added you to the CC list for the revision "Small fix for tgmath.h".<br>
<br>
Hi,<br>
<br>
This patch attempts to fix the return types of the complex creal functions. They should return non-complex types according to C99 section 7.22c6 and 7.3.9.5. The fix is to remove the extra _Complex keywords from the prototypes of the creal functions in a similar manner as Kristof Beyls did to fabs a few weeks ago.<br>
</blockquote><div><br></div><div>Yes, I agree this looks wrong.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I am not sure where I can add a regression test for a header change like this.</blockquote><div><br></div><div>Somewhere in test/Headers would be best.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
With the small test case below, GCC 4.4.3 returns 4 at run-time while Clang trunk r176911 returns 8.<br>
<br>
``` /* test.c */<br>
#include <stdio.h><br>
#include <tgmath.h><br>
<br>
float f;<br>
<br>
int main() {<br>
  printf("%lu\n", sizeof(creal(f)));<br>
  return 0;<br>
}<br>
/* end of file */```<br>
<br>
Could someone review and commit the patch for me?<br>
<br>
Thanks, Gao.<br>
<br>
<a href="http://llvm-reviews.chandlerc.com/D595" target="_blank">http://llvm-reviews.chandlerc.com/D595</a><br>
<br>
Files:<br>
  lib/Headers/tgmath.h<br>
<br>
Index: lib/Headers/tgmath.h<br>
===================================================================<br>
--- lib/Headers/tgmath.h<br>
+++ lib/Headers/tgmath.h<br>
@@ -1340,15 +1340,15 @@<br>
<br>
 // creal<br>
<br>
-static float _Complex<br>
+static float<br>
     _TG_ATTRS<br>
     __tg_creal(float __x) {return __x;}<br>
<br>
-static double _Complex<br>
+static double<br>
     _TG_ATTRS<br>
     __tg_creal(double __x) {return __x;}<br>
<br>
-static long double _Complex<br>
+static long double<br>
     _TG_ATTRS<br>
     __tg_creal(long double __x) {return __x;}<br>
<br>_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@cs.uiuc.edu">cfe-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br>
<br></blockquote></div><br>