[llvm-commits] [llvm-gcc-4.2] r50487 - /llvm-gcc-4.2/trunk/gcc/objc/objc-act.c

Chris Lattner sabre at nondot.org
Wed Apr 30 10:00:56 PDT 2008


Author: lattner
Date: Wed Apr 30 12:00:56 2008
New Revision: 50487

URL: http://llvm.org/viewvc/llvm-project?rev=50487&view=rev
Log:
Fix gcc testsuite failures in objc.dg/objc-gc-1.m, introduced in this patch:
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20080421/061374.html


Modified:
    llvm-gcc-4.2/trunk/gcc/objc/objc-act.c

Modified: llvm-gcc-4.2/trunk/gcc/objc/objc-act.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/objc/objc-act.c?rev=50487&r1=50486&r2=50487&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/objc/objc-act.c (original)
+++ llvm-gcc-4.2/trunk/gcc/objc/objc-act.c Wed Apr 30 12:00:56 2008
@@ -6520,24 +6520,16 @@
 
    In both of this cases, expr is preserved as ARRAY_REF. Normally, gcc
    would decomponse first example into a pointer arithmetic expression.
-   So in llvm mode, check expression's field type to ensure that this is really a
-   array reference or not.  */
+   So in llvm mode, check expression's field type to ensure that this is really
+   an array reference or not.  */
 static int objc_is_really_array_ref(tree expr) {
-  tree component = NULL_TREE;
-  tree field = NULL_TREE;
+  tree base = NULL_TREE;
 
   if (TREE_CODE(expr) != ARRAY_REF)
     return 0;
 
-  component = TREE_OPERAND(expr, 0);
-  if (!component || TREE_CODE(component) != COMPONENT_REF)
-    return 0;
-
-  field = TREE_OPERAND(component, 1);
-  if (!field || TREE_CODE(TREE_TYPE(field)) != ARRAY_TYPE)
-    return 0;
-
-  return 1;
+  base = TREE_OPERAND(expr, 0);
+  return base && TREE_CODE(TREE_TYPE(base)) == ARRAY_TYPE;
 }
 /* LLVM LOCAL - end pointer arithmetic */
 





More information about the llvm-commits mailing list