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) _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits