[cfe-dev] Transparent union

Chris Lattner clattner at apple.com
Tue Dec 18 20:55:43 PST 2007


On Dec 18, 2007, at 3:41 AM, Sanghyeon Seo wrote:

> In GNU C Library, /usr/include/sys/wait.h defines __WAIT_STATUS as
> __attribute__((__transparent_union__)) if __GNUC__ is defined.
> (Otherwise it's void *.) As a result, if a program calls wait, clang
> currently errors with "incompatible types".

Ok, this means we need to capture the transparent union attribute in  
the AST.  There is going to be some work (probably after the holidays)  
to restructure how we represent attributes in the AST.  I think it's  
reasonable to wait until this happens.

Once we have the attribute in the AST, we'll need to change the type  
checker and the code generator to handle this properly  
(__transparent_union__ is an ugly hack!).

Can you please file a bugzilla for this one to track it?

> Other than this and too verbose format string warnings, All of Tcl 6.4
> (very old version, but build system is simple Makefile without any
> automagics) compiles, including -emit-llvm. Whether the result is
> correct is unknown, but Tcl has a complete test suite.

Woo, excellent!

-Chris



More information about the cfe-dev mailing list