[llvm-commits] [llvm-gcc-4.2] r71287 - in /llvm-gcc-4.2/trunk: build_gcc gcc/ChangeLog.apple gcc/config/arm/arm.c gcc/cp/mangle.c gcc/objc/ChangeLog.apple gcc/objc/objc-act.c gcc/testsuite/ChangeLog.apple gcc/testsuite/g++.apple/anon-1.C gcc/testsuite/gcc.apple/weak.c gcc/testsuite/objc.dg/property-16.m gcc/tree-eh.c gcc/version.c
Bill Wendling
isanbard at gmail.com
Fri May 8 16:16:06 PDT 2009
Author: void
Date: Fri May 8 18:16:04 2009
New Revision: 71287
URL: http://llvm.org/viewvc/llvm-project?rev=71287&view=rev
Log:
Merge to Apple gcc 5646.
Added:
llvm-gcc-4.2/trunk/gcc/testsuite/g++.apple/anon-1.C
llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/weak.c
llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/property-16.m
Modified:
llvm-gcc-4.2/trunk/build_gcc
llvm-gcc-4.2/trunk/gcc/ChangeLog.apple
llvm-gcc-4.2/trunk/gcc/config/arm/arm.c
llvm-gcc-4.2/trunk/gcc/cp/mangle.c
llvm-gcc-4.2/trunk/gcc/objc/ChangeLog.apple
llvm-gcc-4.2/trunk/gcc/objc/objc-act.c
llvm-gcc-4.2/trunk/gcc/testsuite/ChangeLog.apple
llvm-gcc-4.2/trunk/gcc/tree-eh.c
llvm-gcc-4.2/trunk/gcc/version.c
Modified: llvm-gcc-4.2/trunk/build_gcc
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/build_gcc?rev=71287&r1=71286&r2=71287&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/build_gcc (original)
+++ llvm-gcc-4.2/trunk/build_gcc Fri May 8 18:16:04 2009
@@ -334,25 +334,25 @@
# Build the cross-compilers, using the compiler we just built.
for t in $CROSS_TARGETS ; do
- if [ $t != $BUILD ] ; then
- mkdir -p $DIR/obj-$BUILD-$t $DIR/dst-$BUILD-$t || exit 1
- cd $DIR/obj-$BUILD-$t || exit 1
- if [ \! -f Makefile ]; then
- # APPLE LOCAL begin ARM ARM_CONFIGFLAGS
- $SRC_DIR/configure $CONFIGFLAGS --enable-werror-always \
- `if [ $t = 'arm' ] ; then echo $ARM_CONFIGFLAGS ; else echo $NON_ARM_CONFIGFLAGS ; fi` \
- --program-prefix=$t-apple-darwin$DARWIN_VERS- \
- --host=$BUILD-apple-darwin$DARWIN_VERS --target=$t-apple-darwin$DARWIN_VERS || exit 1
- # APPLE LOCAL end ARM ARM_CONFIGFLAGS
- fi
- make $MAKEFLAGS all CFLAGS="$CFLAGS" CXXFLAGS="$CFLAGS" || exit 1
- make $MAKEFLAGS DESTDIR=$DIR/dst-$BUILD-$t install-gcc install-target \
- CFLAGS="$CFLAGS" CXXFLAGS="$CFLAGS" || exit 1
-
- # Add the compiler we just built to the path.
- # LLVM LOCAL Support for non /usr $DEST_ROOT
- PATH=$DIR/dst-$BUILD-$t/$DEST_ROOT/bin:$PATH
- fi
+ if [ $t != $BUILD ] ; then
+ mkdir -p $DIR/obj-$BUILD-$t $DIR/dst-$BUILD-$t || exit 1
+ cd $DIR/obj-$BUILD-$t || exit 1
+ if [ \! -f Makefile ]; then
+ # APPLE LOCAL begin ARM ARM_CONFIGFLAGS
+ $SRC_DIR/configure $CONFIGFLAGS --enable-werror-always \
+ `if [ $t = 'arm' ] ; then echo $ARM_CONFIGFLAGS ; else echo $NON_ARM_CONFIGFLAGS ; fi` \
+ --program-prefix=$t-apple-darwin$DARWIN_VERS- \
+ --host=$BUILD-apple-darwin$DARWIN_VERS --target=$t-apple-darwin$DARWIN_VERS || exit 1
+ # APPLE LOCAL end ARM ARM_CONFIGFLAGS
+ fi
+ make $MAKEFLAGS all CFLAGS="$CFLAGS" CXXFLAGS="$CFLAGS" || exit 1
+ make $MAKEFLAGS DESTDIR=$DIR/dst-$BUILD-$t install-gcc install-target \
+ CFLAGS="$CFLAGS" CXXFLAGS="$CFLAGS" || exit 1
+
+ # Add the compiler we just built to the path.
+ # LLVM LOCAL Support for non /usr $DEST_ROOT
+ PATH=$DIR/dst-$BUILD-$t/$DEST_ROOT/bin:$PATH
+ fi
done
# Rearrange various libraries, for no really good reason.
@@ -373,7 +373,17 @@
# Build the cross-hosted compilers.
for h in $HOSTS ; do
- if [ $h != $BUILD ] ; then
+ # LLVM LOCAL begin - Don't build for PowerPC on > 10.5 systems.
+ if [ $MACOSX_DEPLOYMENT_MAJOR -gt 10 -o \
+ \( $MACOSX_DEPLOYMENT_MAJOR -eq 10 -a \
+ $MACOSX_DEPLOYMENT_MINOR -gt 5 \) ]; then
+ if [ $h = "powerpc" ]; then
+ continue
+ fi
+ fi
+ # LLVM LOCAL end - Don't build for PowerPC on > 10.5 systems.
+
+ if [ $h != $BUILD ]; then
for t in $TARGETS ; do
mkdir -p $DIR/obj-$h-$t $DIR/dst-$h-$t || exit 1
cd $DIR/obj-$h-$t || exit 1
Modified: llvm-gcc-4.2/trunk/gcc/ChangeLog.apple
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/ChangeLog.apple?rev=71287&r1=71286&r2=71287&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/ChangeLog.apple (original)
+++ llvm-gcc-4.2/trunk/gcc/ChangeLog.apple Fri May 8 18:16:04 2009
@@ -1,3 +1,9 @@
+2009-04-08 Jim Grosbach <grosbach at apple.com>
+
+ Radar 6738583
+ * config/arm/arm.c (arm_init_cumulative_args): Always short call local
+ functions.
+
2009-04-06 Stuart Hastings <stuart at apple.com>
Radar 6755006
Modified: llvm-gcc-4.2/trunk/gcc/config/arm/arm.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/arm/arm.c?rev=71287&r1=71286&r2=71287&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/arm/arm.c (original)
+++ llvm-gcc-4.2/trunk/gcc/config/arm/arm.c Fri May 8 18:16:04 2009
@@ -3055,7 +3055,8 @@
void
arm_init_cumulative_args (CUMULATIVE_ARGS *pcum, tree fntype,
rtx libname ATTRIBUTE_UNUSED,
- tree fndecl ATTRIBUTE_UNUSED)
+/* APPLE LOCAL 6738583 -mlong-calls PIC static functions */
+ tree fndecl)
{
/* On the ARM, the offset starts at 0. */
pcum->nregs = 0;
@@ -3075,6 +3076,10 @@
pcum->call_cookie = CALL_SHORT;
else if (lookup_attribute ("long_call", TYPE_ATTRIBUTES (fntype)))
pcum->call_cookie = CALL_LONG;
+ /* APPLE LOCAL begin 6738583 -mlong-calls PIC static functions */
+ else if (fndecl && ! TREE_PUBLIC (fndecl))
+ pcum->call_cookie = CALL_SHORT;
+ /* APPLE LOCAL end 6738583 -mlong-calls PIC static functions */
}
/* Varargs vectors are treated the same as long long.
Modified: llvm-gcc-4.2/trunk/gcc/cp/mangle.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/cp/mangle.c?rev=71287&r1=71286&r2=71287&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/cp/mangle.c (original)
+++ llvm-gcc-4.2/trunk/gcc/cp/mangle.c Fri May 8 18:16:04 2009
@@ -1468,6 +1468,10 @@
tree type = VEC_index (tree, local_classes, ix);
if (type == entity)
break;
+ /* APPLE LOCAL begin anon types 6822746 */
+ if (TYPE_MAIN_DECL (type) == TYPE_MAIN_DECL (entity))
+ break;
+ /* APPLE LOCAL end anon types 6822746 */
if (TYPE_IDENTIFIER (type) == TYPE_IDENTIFIER (entity)
&& TYPE_CONTEXT (type) == TYPE_CONTEXT (entity))
++discriminator;
Modified: llvm-gcc-4.2/trunk/gcc/objc/ChangeLog.apple
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/objc/ChangeLog.apple?rev=71287&r1=71286&r2=71287&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/objc/ChangeLog.apple (original)
+++ llvm-gcc-4.2/trunk/gcc/objc/ChangeLog.apple Fri May 8 18:16:04 2009
@@ -1,3 +1,20 @@
+2009-05-06 Fariborz Jahanian <fjahanian at apple.com>
+
+ Radar 6083666
+ * objc-act.c (objc_build_property_reference_expr): Never
+ issue diagnostics on use of an 'ivar' with property type
+ mismatch. Issue warning in all other cases and only in
+ legitimate property/user declared type mismatches.
+ (objc_build_property_reference_expr): Do not issue any
+ warning or error when property is more specialized than
+ its user declared accessor.
+
+2009-04-24 Fariborz Jahanian <fjahanian at apple.com>
+
+ Radar 6825962
+ * objc-act.c (objc_declare_property_impl): Issue property in
+ super class diagnostic even if explicitly asked for.
+
2009-04-20 Fariborz Jahanian <fjahanian at apple.com>
Radar 6803342
* objc-act.c (generate_objc_image_info): Set the imfo_info
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=71287&r1=71286&r2=71287&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/objc/objc-act.c (original)
+++ llvm-gcc-4.2/trunk/gcc/objc/objc-act.c Fri May 8 18:16:04 2009
@@ -1689,6 +1689,8 @@
tree rtype;
tree prop, prop_type, res;
bool receiver_is_class;
+ /* APPLE LOCAL radar 6083666 */
+ tree ivar;
if (component == error_mark_node || component == NULL_TREE
|| TREE_CODE (component) != IDENTIFIER_NODE)
@@ -1703,14 +1705,16 @@
if (res == NULL_TREE || res == error_mark_node)
return res;
- prop_type = NULL_TREE;
+ /* APPLE LOCAL radar 6083666 */
+ prop_type = ivar = NULL_TREE;
/* APPLE LOCAL begin objc2 5512183 */
if (interface_type && !receiver_is_class)
/* APPLE LOCAL end objc2 5512183 */
{
/* type of the expression is either the property type or, if no property declared,
then ivar type used in receiver.ivar expression. */
- tree ivar = nested_ivar_lookup (interface_type, component);
+ /* APPLE LOCAL radar 6083666 */
+ ivar = nested_ivar_lookup (interface_type, component);
if (ivar)
prop_type = TREE_TYPE (ivar);
else
@@ -1767,11 +1771,14 @@
#endif
comparison_result = comptypes (prop_type, property_type) != 1;
}
- if (prop_type && comparison_result)
- error ("type of accessor does not match the type of property %qs",
- IDENTIFIER_POINTER (PROPERTY_NAME (prop)));
+ /* APPLE LOCAL begin radar 6083666 */
+ if (!ivar && prop_type && comparison_result
+ && !objc_compare_types(property_type, prop_type, -6, NULL_TREE, NULL))
+ warning (0, "type of accessor does not match the type of property %qs",
+ IDENTIFIER_POINTER (PROPERTY_NAME (prop)));
else
- prop_type = property_type;
+ prop_type = property_type;
+ /* APPLE LOCAL end radar 6083666 */
/* APPLE LOCAL end radar 6029577 */
}
/* APPLE LOCAL end objc2 5512183 */
@@ -17082,10 +17089,14 @@
getter_decl = lookup_method (CLASS_NST_METHODS (class), prop_name);
if (getter_decl)
{
- if (comptypes (type, TREE_VALUE (TREE_TYPE (getter_decl))) != 1)
+ /* APPLE LOCAL begin radar 6083666 */
+ tree getter_type = TREE_VALUE (TREE_TYPE (getter_decl));
+ if ((comptypes (type, getter_type) != 1)
+ && !objc_compare_types (type, getter_type, -6, NULL_TREE, NULL))
/* APPLE LOCAL radar 4815054 */
- error ("type of accessor does not match the type of property %qs",
- IDENTIFIER_POINTER (prop_name));
+ warning (0, "type of accessor does not match the type of property %qs",
+ IDENTIFIER_POINTER (prop_name));
+ /* APPLE LOCAL end radar 6083666 */
if (METHOD_SEL_ARGS (getter_decl) != NULL_TREE)
error ("accessor %<%c%s%> cannot have any argument",
'-', IDENTIFIER_POINTER (prop_name));
@@ -20275,20 +20286,19 @@
/* APPLE LOCAL begin radar 6029624 */
tree property_type = TREE_TYPE (property_decl);
bool comparison_result;
- /* APPLE LOCAL begin radar 5435299 */
- if (flag_new_property_ivar_synthesis && flag_objc_abi == 2 &&
- !TREE_PURPOSE (chain)) {
+ /* APPLE LOCAL begin radar 5435299 - radar 6825962 */
+ if (flag_new_property_ivar_synthesis && flag_objc_abi == 2) {
/* In ObjC2 abi, it is illegal when a @synthesize with no named ivar
does not have a matching ivar in its class but some superclass ivar
already has the desired name */
tree record = CLASS_STATIC_TEMPLATE (class);
if (record && record != DECL_CONTEXT (ivar_decl))
- error ("property %qs attempting to use ivar %qs in super class %qs",
+ error ("property %qs attempting to use ivar %qs declared in super class of %qs",
IDENTIFIER_POINTER (property_name),
IDENTIFIER_POINTER (ivar_name),
IDENTIFIER_POINTER (OBJC_TYPE_NAME (record)));
}
- /* APPLE LOCAL end radar 5435299 */
+ /* APPLE LOCAL end radar 5435299 - radar 6825962 */
/* APPLE LOCAL begin radar 5389292 */
#ifdef OBJCPLUS
if (TREE_CODE (property_type) == REFERENCE_TYPE)
Modified: llvm-gcc-4.2/trunk/gcc/testsuite/ChangeLog.apple
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/ChangeLog.apple?rev=71287&r1=71286&r2=71287&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/testsuite/ChangeLog.apple (original)
+++ llvm-gcc-4.2/trunk/gcc/testsuite/ChangeLog.apple Fri May 8 18:16:04 2009
@@ -1,3 +1,15 @@
+2009-05-06 Fariborz Jahanian <fjahanian at apple.com>
+
+ Radar 6083666
+ * objc.dg/property-15.m: Modified
+ * objc.dg/property-16.m: New
+
+2009-04-24 Fariborz Jahanian <fjahanian at apple.com>
+
+ Radar 6825962
+ * property-synthesize-ivar-6.m : Modified.
+ * optional-property.m: Modified.
+
2009-04-20 Fariborz Jahanian <fjahanian at apple.com>
Radar 6803242
Added: llvm-gcc-4.2/trunk/gcc/testsuite/g++.apple/anon-1.C
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/g%2B%2B.apple/anon-1.C?rev=71287&view=auto
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/testsuite/g++.apple/anon-1.C (added)
+++ llvm-gcc-4.2/trunk/gcc/testsuite/g++.apple/anon-1.C Fri May 8 18:16:04 2009
@@ -0,0 +1,15 @@
+/* APPLE LOCAL file anon types 6822746 */
+/* dg-do compile */
+
+class C {
+public:
+ C();
+ C(const C& o);
+};
+
+void foo() {
+ typedef struct {
+ C m;
+ } T;
+ T l[4];
+}
Added: llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/weak.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/weak.c?rev=71287&view=auto
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/weak.c (added)
+++ llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/weak.c Fri May 8 18:16:04 2009
@@ -0,0 +1,31 @@
+/* APPLE LOCAL file weak variables 6822086 */
+/* { dg-do run { target "i?86-*-darwin*" } } */
+/* { dg-options "-O2 -m32" } */
+extern int i __attribute__((weak));
+
+double sin(double);
+
+int j;
+
+void foo(int j);
+double ed;
+
+main() {
+ int l;
+ double d;
+ for (l=0; l < 100; ++l) {
+ if (&i)
+ j = i;
+ else
+ j = 0;
+ d += sin(j);
+ }
+ ed = d;
+ return 0;
+}
+
+/* Hide: void foo(int j) { } from the optimizer. */
+asm(".globl _foo");
+asm("_foo: ret");
+asm(".globl _i");
+asm(".set _i, 0");
Added: llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/property-16.m
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/property-16.m?rev=71287&view=auto
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/property-16.m (added)
+++ llvm-gcc-4.2/trunk/gcc/testsuite/objc.dg/property-16.m Fri May 8 18:16:04 2009
@@ -0,0 +1,39 @@
+/* APPLE LOCAL file radar 6083666 */
+/* Test to check that 1) no warning/error is issued when an 'ivar' which has
+ a matching name with property has a type mismatch with that property. */
+/* { dg-options "-mmacosx-version-min=10.5" { target powerpc*-*-darwin* i?86*-*-darwin* } } */
+/* { dg-do compile } */
+
+ at interface NSArray @end
+
+ at interface NSMutableArray : NSArray
+ at end
+
+ at interface Class1
+{
+ NSMutableArray* pieces;
+ double* unrelated;
+}
+
+ at property (readonly) NSArray* pieces;
+ at property (readonly) NSArray* unrelated;
+ at property (readonly) NSMutableArray* prop_user_getter;
+
+ at end
+
+ at interface Class2 {
+ Class1* container;
+}
+
+ at end
+
+ at implementation Class2
+
+- (void) lastPiece
+{
+ container.pieces;
+ container.unrelated;
+ container.prop_user_getter;
+}
+
+ at end
Modified: llvm-gcc-4.2/trunk/gcc/tree-eh.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/tree-eh.c?rev=71287&r1=71286&r2=71287&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/tree-eh.c (original)
+++ llvm-gcc-4.2/trunk/gcc/tree-eh.c Fri May 8 18:16:04 2009
@@ -2015,6 +2015,14 @@
return true;
return false;
+ /* APPLE LOCAL begin weak variables 6822086 */
+ case VAR_DECL:
+ /* Assume that weak variables may trap. */
+ if (DECL_WEAK (expr))
+ return true;
+ return false;
+ /* APPLE LOCAL end weak variables 6822086 */
+
default:
/* Any floating arithmetic may trap. */
if (fp_operation && flag_trapping_math)
Modified: llvm-gcc-4.2/trunk/gcc/version.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/version.c?rev=71287&r1=71286&r2=71287&view=diff
==============================================================================
--- llvm-gcc-4.2/trunk/gcc/version.c (original)
+++ llvm-gcc-4.2/trunk/gcc/version.c Fri May 8 18:16:04 2009
@@ -11,12 +11,12 @@
/* APPLE LOCAL begin Apple version */
#ifdef ENABLE_LLVM
#ifdef LLVM_VERSION_INFO
-#define VERSUFFIX " (Based on Apple Inc. build 5645) (LLVM build " LLVM_VERSION_INFO ")"
+#define VERSUFFIX " (Based on Apple Inc. build 5646) (LLVM build " LLVM_VERSION_INFO ")"
#else
-#define VERSUFFIX " (Based on Apple Inc. build 5645) (LLVM build)"
+#define VERSUFFIX " (Based on Apple Inc. build 5646) (LLVM build)"
#endif
#else
-#define VERSUFFIX " (Based on Apple Inc. build 5645)"
+#define VERSUFFIX " (Based on Apple Inc. build 5646)"
#endif
/* APPLE LOCAL end Apple version */
More information about the llvm-commits
mailing list