[cfe-commits] r83957 - in /cfe/trunk: lib/AST/Expr.cpp lib/CodeGen/CGExprConstant.cpp test/CodeGen/statements.c

Douglas Gregor dgregor at apple.com
Tue Oct 13 14:29:53 PDT 2009


On Oct 13, 2009, at 12:14 AM, Chris Lattner wrote:

> Author: lattner
> Date: Tue Oct 13 02:14:16 2009
> New Revision: 83957
>
> URL: http://llvm.org/viewvc/llvm-project?rev=83957&view=rev
> Log:
> Teach sema and codegen about the difference between address of labels,
> which is a common idiom to improve PIC'ness of code using the addr of
> label extension.  This implementation is a gross hack, but the only  
> other
> alternative would be to teach evalutate about this horrid combination.
> While GCC allows things like "&&foo - &&bar + 1", people don't use  
> this
> in practice.  This implements PR5131.


With this change, the CodeGen/statements.c test is breaking on 32-bit  
x86:

	http://smooshlab.apple.com:8010/builders/clang-i386-darwin9/builds/6428

the failure is:

test/CodeGen/statements.c:23:17: error: initializer element is not a
       compile-time constant
static long x = &&bar - &&baz;
                 ^~~~~~~~~~~~~

	- Doug



More information about the cfe-commits mailing list