[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