[llvm-commits] [llvm-gcc-4.0] r44419 - /llvm-gcc-4.0/trunk/gcc/tree.c
Chris Lattner
sabre at nondot.org
Wed Nov 28 14:44:02 PST 2007
Author: lattner
Date: Wed Nov 28 16:44:01 2007
New Revision: 44419
URL: http://llvm.org/viewvc/llvm-project?rev=44419&view=rev
Log:
Fix PR1744 and test/CFrontend/2007-11-28-GlobalInitializer.c
Modified:
llvm-gcc-4.0/trunk/gcc/tree.c
Modified: llvm-gcc-4.0/trunk/gcc/tree.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.0/trunk/gcc/tree.c?rev=44419&r1=44418&r2=44419&view=diff
==============================================================================
--- llvm-gcc-4.0/trunk/gcc/tree.c (original)
+++ llvm-gcc-4.0/trunk/gcc/tree.c Wed Nov 28 16:44:01 2007
@@ -2492,6 +2492,22 @@
}
else if (CONSTANT_CLASS_P (node))
;
+/* APPLE LOCAL begin LLVM */
+#ifdef ENABLE_LLVM
+ /* Support the "array ref with pointer base" extension. If we have &p[i],
+ treat this like we do a binop.
+ */
+ else if (TREE_CODE(node) == ARRAY_REF &&
+ POINTER_TYPE_P(TREE_TYPE(TREE_OPERAND(node, 0)))) {
+ ti &= TREE_INVARIANT(TREE_OPERAND(node, 0)) &
+ TREE_INVARIANT(TREE_OPERAND(node, 1));
+ tc &= TREE_CONSTANT(TREE_OPERAND(node, 0)) &
+ TREE_CONSTANT(TREE_OPERAND(node, 1));
+ se |= TREE_SIDE_EFFECTS(TREE_OPERAND(node, 0)) |
+ TREE_SIDE_EFFECTS(TREE_OPERAND(node, 1));
+ }
+#endif
+/* APPLE LOCAL end LLVM */
else
{
ti = tc = false;
More information about the llvm-commits
mailing list