Testcase:
int a() {
*(0 ? (double *) 0 : (void *) !0.25) = 10;
}
clang rejects this with an error because the left-hand side has type
void; comeau and gcc accept it.
clang's behavior is pretty clearly correct per the standard; however,
the linux (glibc) tgmath.h expects that "(0 ? (double *) 0 : (void *)
!0.25)" has type double*, not void*. Therefore, making tgmath.h work
requires being non-compliant with C99.
Thoughts?
-Eli
_______________________________________________
cfe-dev mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev