[llvm-commits] [llvm-gcc-4.2] r45889 - /llvm-gcc-4.2/trunk/gcc/cp/typeck.c

Chris Lattner sabre at nondot.org
Fri Jan 11 15:05:10 PST 2008


Author: lattner
Date: Fri Jan 11 17:05:10 2008
New Revision: 45889

URL: http://llvm.org/viewvc/llvm-project?rev=45889&view=rev
Log:
Do not emit a warning for code like this:
void** f(void **Buckets, unsigned NumBuckets) {
  return Buckets + NumBuckets;
}

This was already fixed in the C FE, but the C++ FE needed a matching fix.

Testcase here: test/C++Frontend/2008-01-11-BadWarning.cpp

Modified:
    llvm-gcc-4.2/trunk/gcc/cp/typeck.c

Modified: llvm-gcc-4.2/trunk/gcc/cp/typeck.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/cp/typeck.c?rev=45889&r1=45888&r2=45889&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/cp/typeck.c (original)
+++ llvm-gcc-4.2/trunk/gcc/cp/typeck.c Fri Jan 11 17:05:10 2008
@@ -6764,7 +6764,17 @@
 
   while (TREE_CODE (whats_returned) == COMPONENT_REF
 	 || TREE_CODE (whats_returned) == ARRAY_REF)
+  /* LLVM LOCAL begin */
+  {
+#ifdef ENABLE_LLVM
+    if (TREE_CODE (whats_returned) == ARRAY_REF
+        && (TREE_CODE (TREE_TYPE (TREE_OPERAND (whats_returned, 0)))
+            != ARRAY_TYPE))
+      break;    /* Ignore pointer base of array ref extension. */
+#endif
     whats_returned = TREE_OPERAND (whats_returned, 0);
+  }
+  /* LLVM LOCAL end */
 
   if (DECL_P (whats_returned)
       && DECL_NAME (whats_returned)





More information about the llvm-commits mailing list