[cfe-commits] r165988 - in /cfe/trunk: include/clang/Basic/ObjCRuntime.h lib/CodeGen/CGObjC.cpp lib/Driver/ToolChains.cpp lib/Driver/Tools.cpp lib/Sema/SemaExpr.cpp runtime/compiler-rt/Makefile test/CodeGenObjC/optimized-setter-ios-device.m test/

Bob Wilson bob.wilson at apple.com
Tue Oct 16 21:05:38 PDT 2012


On Oct 16, 2012, at 4:48 PM, Nico Weber <thakis at chromium.org> wrote:

> On Mon, Oct 15, 2012 at 4:45 PM, Nico Weber <thakis at chromium.org> wrote:
>> On Mon, Oct 15, 2012 at 4:33 PM, Daniel Dunbar <daniel.dunbar at gmail.com> wrote:
>>> On Mon, Oct 15, 2012 at 4:21 PM, Nico Weber <thakis at chromium.org> wrote:
>>>> On Mon, Oct 15, 2012 at 3:45 PM, Daniel Dunbar <daniel.dunbar at gmail.com> wrote:
>>>>> There is a fix, in 165986. Just separated it into a different commit.
>>>> 
>>>> Ah, I didn't see that. Thanks!
>>>> 
>>>> (ps: This seems to work for me, but I need to build a few times for it
>>>> to work. I get intermittent failures while building compiler-rt the
>>>> first few tries. Repro: `make clean && make -j16` in the llvm root
>>>> directory.)
>>> 
>>> That's bad. Can you give me more information on what the intermittent
>>> failures look like?
>> 
>> It just dies, without much output (last time I looked at the
>> compiler-rt build, I think it redirected error output of some commands
>> to /dev/null):
>> 
>>  ARCHIVE:   clang_darwin/cc_kext_ios5/armv7:
>> /Volumes/MacintoshHD2/src/llvm-svn/tools/clang/runtime/compiler-rt/clang_darwin/cc_kext_ios5/armv7/libcompiler_rt.a
>>  ARCHIVE:   clang_darwin/profile_osx/x86_64:
>> /Volumes/MacintoshHD2/src/llvm-svn/tools/clang/runtime/compiler-rt/clang_darwin/profile_osx/x86_64/libcompiler_rt.a
>>  ARCHIVE:   clang_darwin/profile_osx/i386:
>> /Volumes/MacintoshHD2/src/llvm-svn/tools/clang/runtime/compiler-rt/clang_darwin/profile_osx/i386/libcompiler_rt.a
>> make[3]: *** [/Volumes/MacintoshHD2/src/llvm-svn/tools/clang/runtime/compiler-rt/clang_darwin/cc_kext/armv7/libcompiler_rt.a]
>> Error 1
>> make[3]: *** Waiting for unfinished jobs....
>> make[3]: *** [/Volumes/MacintoshHD2/src/llvm-svn/tools/clang/runtime/compiler-rt/clang_darwin/cc_kext_ios5/armv7/libcompiler_rt.a]
>> Error 1
>> make[2]: *** [BuildRuntimeLibraries] Error 2
>> rm /Volumes/MacintoshHD2/src/llvm-svn/Release+Asserts/lib/clang/3.2/lib/darwin/.dir
>> make[1]: *** [compiler-rt/.makeall] Error 2
>> 
>> Where it dies varies a bit, I think it's different when running `make`
>> in llvm/ or llvm/tools/clang (but always somewhere towards the end of
>> comipler-rt). Sometimes it needs more than one build after that, this
>> time it just needed one more. Full log at http://pastebin.com/KRC64Vkz
> 
> Any progress? I just tried with a clean checkout, and hit this there
> too. I filed PR14102 -- can this be reverted in the mean time?

It's pretty disruptive to keep reverting all those changes.  Can you provide some more information about what exactly is failing?

> 
>> 
>>> 
>>> I'll try to repro locally as well.
>>> 
>>> - Daniel
>>> 
>>>> 
>>>>> 
>>>>> - Daniel
>>>>> 
>>>>> 
>>>>> On Oct 15, 2012, at 15:42, Nico Weber <thakis at chromium.org> wrote:
>>>>> 
>>>>>> Why reland this without a build fix?
>>>>>> 
>>>>>> On Mon, Oct 15, 2012 at 3:23 PM, Daniel Dunbar <daniel at zuster.org> wrote:
>>>>>>> Author: ddunbar
>>>>>>> Date: Mon Oct 15 17:23:53 2012
>>>>>>> New Revision: 165988
>>>>>>> 
>>>>>>> URL: http://llvm.org/viewvc/llvm-project?rev=165988&view=rev
>>>>>>> Log:
>>>>>>> Un-revert r164907 and r164902 (+ follow-ups), 10.6 build fix to follow.
>>>>>>> 
>>>>>>> Added:
>>>>>>>   cfe/trunk/test/CodeGenObjC/optimized-setter-ios-device.m
>>>>>>>     - copied, changed from r165977, cfe/trunk/test/CodeGenObjC/optimized-setter.m
>>>>>>>   cfe/trunk/test/CodeGenObjC/unoptimized-setter.m
>>>>>>>     - copied, changed from r165977, cfe/trunk/test/CodeGenObjC/optimized-setter.m
>>>>>>> Modified:
>>>>>>>   cfe/trunk/include/clang/Basic/ObjCRuntime.h
>>>>>>>   cfe/trunk/lib/CodeGen/CGObjC.cpp
>>>>>>>   cfe/trunk/lib/Driver/ToolChains.cpp
>>>>>>>   cfe/trunk/lib/Driver/Tools.cpp
>>>>>>>   cfe/trunk/lib/Sema/SemaExpr.cpp
>>>>>>>   cfe/trunk/runtime/compiler-rt/Makefile
>>>>>>>   cfe/trunk/test/CodeGenObjC/optimized-setter.m
>>>>>>>   cfe/trunk/test/Driver/darwin-ld.c
>>>>>>>   cfe/trunk/test/Driver/pic.c
>>>>>>> 
>>>>>>> Modified: cfe/trunk/include/clang/Basic/ObjCRuntime.h
>>>>>>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/ObjCRuntime.h?rev=165988&r1=165987&r2=165988&view=diff
>>>>>>> ==============================================================================
>>>>>>> --- cfe/trunk/include/clang/Basic/ObjCRuntime.h (original)
>>>>>>> +++ cfe/trunk/include/clang/Basic/ObjCRuntime.h Mon Oct 15 17:23:53 2012
>>>>>>> @@ -157,6 +157,19 @@
>>>>>>>    llvm_unreachable("bad kind");
>>>>>>>  }
>>>>>>> 
>>>>>>> +  /// \brief Does this runtime supports optimized setter entrypoints?
>>>>>>> +  bool hasOptimizedSetter() const {
>>>>>>> +    switch (getKind()) {
>>>>>>> +      case MacOSX:
>>>>>>> +        return getVersion() >= VersionTuple(10, 8);
>>>>>>> +      case iOS:
>>>>>>> +        return (getVersion() >= VersionTuple(6));
>>>>>>> +
>>>>>>> +      default:
>>>>>>> +      return false;
>>>>>>> +    }
>>>>>>> +  }
>>>>>>> +
>>>>>>>  /// Does this runtime allow the use of __weak?
>>>>>>>  bool allowsWeak() const {
>>>>>>>    return hasNativeWeak();
>>>>>>> @@ -177,7 +190,7 @@
>>>>>>>    switch (getKind()) {
>>>>>>>    case FragileMacOSX: return false;
>>>>>>>    case MacOSX: return getVersion() >= VersionTuple(10, 8);
>>>>>>> -    case iOS: return false;
>>>>>>> +    case iOS: return getVersion() >= VersionTuple(6);
>>>>>>> 
>>>>>>>    // This is really a lie, because some implementations and versions
>>>>>>>    // of the runtime do not support ARC.  Probably -fgnu-runtime
>>>>>>> 
>>>>>>> Modified: cfe/trunk/lib/CodeGen/CGObjC.cpp
>>>>>>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGObjC.cpp?rev=165988&r1=165987&r2=165988&view=diff
>>>>>>> ==============================================================================
>>>>>>> --- cfe/trunk/lib/CodeGen/CGObjC.cpp (original)
>>>>>>> +++ cfe/trunk/lib/CodeGen/CGObjC.cpp Mon Oct 15 17:23:53 2012
>>>>>>> @@ -1041,12 +1041,7 @@
>>>>>>> static bool UseOptimizedSetter(CodeGenModule &CGM) {
>>>>>>>  if (CGM.getLangOpts().getGC() != LangOptions::NonGC)
>>>>>>>    return false;
>>>>>>> -  const TargetInfo &Target = CGM.getContext().getTargetInfo();
>>>>>>> -
>>>>>>> -  if (Target.getPlatformName() != "macosx")
>>>>>>> -    return false;
>>>>>>> -
>>>>>>> -  return Target.getPlatformMinVersion() >= VersionTuple(10, 8);
>>>>>>> +  return CGM.getLangOpts().ObjCRuntime.hasOptimizedSetter();
>>>>>>> }
>>>>>>> 
>>>>>>> void
>>>>>>> @@ -1106,7 +1101,7 @@
>>>>>>>    llvm::Value *setOptimizedPropertyFn = 0;
>>>>>>>    llvm::Value *setPropertyFn = 0;
>>>>>>>    if (UseOptimizedSetter(CGM)) {
>>>>>>> -      // 10.8 code and GC is off
>>>>>>> +      // 10.8 and iOS 6.0 code and GC is off
>>>>>>>      setOptimizedPropertyFn =
>>>>>>>        CGM.getObjCRuntime()
>>>>>>>           .GetOptimizedPropertySetFunction(strategy.isAtomic(),
>>>>>>> 
>>>>>>> Modified: cfe/trunk/lib/Driver/ToolChains.cpp
>>>>>>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/ToolChains.cpp?rev=165988&r1=165987&r2=165988&view=diff
>>>>>>> ==============================================================================
>>>>>>> --- cfe/trunk/lib/Driver/ToolChains.cpp (original)
>>>>>>> +++ cfe/trunk/lib/Driver/ToolChains.cpp Mon Oct 15 17:23:53 2012
>>>>>>> @@ -332,7 +332,9 @@
>>>>>>> 
>>>>>>>  // Darwin doesn't support real static executables, don't link any runtime
>>>>>>>  // libraries with -static.
>>>>>>> -  if (Args.hasArg(options::OPT_static))
>>>>>>> +  if (Args.hasArg(options::OPT_static) ||
>>>>>>> +      Args.hasArg(options::OPT_fapple_kext) ||
>>>>>>> +      Args.hasArg(options::OPT_mkernel))
>>>>>>>    return;
>>>>>>> 
>>>>>>>  // Reject -static-libgcc for now, we can deal with this when and if someone
>>>>>>> @@ -676,7 +678,14 @@
>>>>>>>  llvm::sys::Path P(getDriver().ResourceDir);
>>>>>>>  P.appendComponent("lib");
>>>>>>>  P.appendComponent("darwin");
>>>>>>> -  P.appendComponent("libclang_rt.cc_kext.a");
>>>>>>> +
>>>>>>> +  // Use the newer cc_kext for iOS ARM after 6.0.
>>>>>>> +  if (!isTargetIPhoneOS() || isTargetIOSSimulator() ||
>>>>>>> +      !isIPhoneOSVersionLT(6, 0)) {
>>>>>>> +    P.appendComponent("libclang_rt.cc_kext.a");
>>>>>>> +  } else {
>>>>>>> +    P.appendComponent("libclang_rt.cc_kext_ios5.a");
>>>>>>> +  }
>>>>>>> 
>>>>>>>  // For now, allow missing resource libraries to support developers who may
>>>>>>>  // not have compiler-rt checked out or integrated into their build.
>>>>>>> @@ -902,6 +911,25 @@
>>>>>>>  if (BoundArch)
>>>>>>>    AddDeploymentTarget(*DAL);
>>>>>>> 
>>>>>>> +  // For iOS 6, undo the translation to add -static for -mkernel/-fapple-kext.
>>>>>>> +  // FIXME: It would be far better to avoid inserting those -static arguments,
>>>>>>> +  // but we can't check the deployment target in the translation code until
>>>>>>> +  // it is set here.
>>>>>>> +  if (isTargetIPhoneOS() && !isIPhoneOSVersionLT(6, 0)) {
>>>>>>> +    for (ArgList::iterator it = DAL->begin(), ie = DAL->end(); it != ie; ) {
>>>>>>> +      Arg *A = *it;
>>>>>>> +      ++it;
>>>>>>> +      if (A->getOption().getID() != options::OPT_mkernel &&
>>>>>>> +          A->getOption().getID() != options::OPT_fapple_kext)
>>>>>>> +        continue;
>>>>>>> +      assert(it != ie && "unexpected argument translation");
>>>>>>> +      A = *it;
>>>>>>> +      assert(A->getOption().getID() == options::OPT_static &&
>>>>>>> +             "missing expected -static argument");
>>>>>>> +      it = DAL->getArgs().erase(it);
>>>>>>> +    }
>>>>>>> +  }
>>>>>>> +
>>>>>>>  // Validate the C++ standard library choice.
>>>>>>>  CXXStdlibType Type = GetCXXStdlibType(*DAL);
>>>>>>>  if (Type == ToolChain::CST_Libcxx) {
>>>>>>> 
>>>>>>> Modified: cfe/trunk/lib/Driver/Tools.cpp
>>>>>>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Tools.cpp?rev=165988&r1=165987&r2=165988&view=diff
>>>>>>> ==============================================================================
>>>>>>> --- cfe/trunk/lib/Driver/Tools.cpp (original)
>>>>>>> +++ cfe/trunk/lib/Driver/Tools.cpp Mon Oct 15 17:23:53 2012
>>>>>>> @@ -674,7 +674,9 @@
>>>>>>>                             ArgStringList &CmdArgs,
>>>>>>>                             bool KernelOrKext) const {
>>>>>>>  const Driver &D = getToolChain().getDriver();
>>>>>>> -  llvm::Triple Triple = getToolChain().getTriple();
>>>>>>> +  // Get the effective triple, which takes into account the deployment target.
>>>>>>> +  std::string TripleStr = getToolChain().ComputeEffectiveClangTriple(Args);
>>>>>>> +  llvm::Triple Triple(TripleStr);
>>>>>>> 
>>>>>>>  // Select the ABI to use.
>>>>>>>  //
>>>>>>> @@ -759,8 +761,10 @@
>>>>>>> 
>>>>>>>  // Kernel code has more strict alignment requirements.
>>>>>>>  if (KernelOrKext) {
>>>>>>> -    CmdArgs.push_back("-backend-option");
>>>>>>> -    CmdArgs.push_back("-arm-long-calls");
>>>>>>> +    if (Triple.getOS() != llvm::Triple::IOS || Triple.isOSVersionLT(6)) {
>>>>>>> +      CmdArgs.push_back("-backend-option");
>>>>>>> +      CmdArgs.push_back("-arm-long-calls");
>>>>>>> +    }
>>>>>>> 
>>>>>>>    CmdArgs.push_back("-backend-option");
>>>>>>>    CmdArgs.push_back("-arm-strict-align");
>>>>>>> @@ -1697,7 +1701,11 @@
>>>>>>>  }
>>>>>>>  // Note that these flags are trump-cards. Regardless of the order w.r.t. the
>>>>>>>  // PIC or PIE options above, if these show up, PIC is disabled.
>>>>>>> -  if (Args.hasArg(options::OPT_mkernel))
>>>>>>> +  llvm::Triple Triple(TripleStr);
>>>>>>> +  if ((Args.hasArg(options::OPT_mkernel) ||
>>>>>>> +       Args.hasArg(options::OPT_fapple_kext)) &&
>>>>>>> +      (Triple.getOS() != llvm::Triple::IOS ||
>>>>>>> +       Triple.isOSVersionLT(6)))
>>>>>>>    PICDisabled = true;
>>>>>>>  if (Args.hasArg(options::OPT_static))
>>>>>>>    PICDisabled = true;
>>>>>>> @@ -3690,7 +3698,10 @@
>>>>>>>  CheckCodeGenerationOptions(D, Args);
>>>>>>> 
>>>>>>>  // Derived from cc1 spec.
>>>>>>> -  if (!Args.hasArg(options::OPT_mkernel) && !Args.hasArg(options::OPT_static) &&
>>>>>>> +  if ((!Args.hasArg(options::OPT_mkernel) ||
>>>>>>> +       (getDarwinToolChain().isTargetIPhoneOS() &&
>>>>>>> +        !getDarwinToolChain().isIPhoneOSVersionLT(6, 0))) &&
>>>>>>> +      !Args.hasArg(options::OPT_static) &&
>>>>>>>      !Args.hasArg(options::OPT_mdynamic_no_pic))
>>>>>>>    CmdArgs.push_back("-fPIC");
>>>>>>> 
>>>>>>> @@ -4144,9 +4155,11 @@
>>>>>>>    CmdArgs.push_back("-force_cpusubtype_ALL");
>>>>>>> 
>>>>>>>  if (getToolChain().getTriple().getArch() != llvm::Triple::x86_64 &&
>>>>>>> -      (Args.hasArg(options::OPT_mkernel) ||
>>>>>>> -       Args.hasArg(options::OPT_static) ||
>>>>>>> -       Args.hasArg(options::OPT_fapple_kext)))
>>>>>>> +      (((Args.hasArg(options::OPT_mkernel) ||
>>>>>>> +         Args.hasArg(options::OPT_fapple_kext)) &&
>>>>>>> +        (!getDarwinToolChain().isTargetIPhoneOS() ||
>>>>>>> +         getDarwinToolChain().isIPhoneOSVersionLT(6, 0))) ||
>>>>>>> +       Args.hasArg(options::OPT_static)))
>>>>>>>    CmdArgs.push_back("-static");
>>>>>>> 
>>>>>>>  Args.AddAllArgValues(CmdArgs, options::OPT_Wa_COMMA,
>>>>>>> @@ -4507,7 +4520,7 @@
>>>>>>>            } else if (getDarwinToolChain().isTargetIPhoneOS()) {
>>>>>>>              if (getDarwinToolChain().isIPhoneOSVersionLT(3, 1))
>>>>>>>                CmdArgs.push_back("-lcrt1.o");
>>>>>>> -              else
>>>>>>> +              else if (getDarwinToolChain().isIPhoneOSVersionLT(6, 0))
>>>>>>>                CmdArgs.push_back("-lcrt1.3.1.o");
>>>>>>>            } else {
>>>>>>>              if (getDarwinToolChain().isMacosxVersionLT(10, 5))
>>>>>>> 
>>>>>>> Modified: cfe/trunk/lib/Sema/SemaExpr.cpp
>>>>>>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaExpr.cpp?rev=165988&r1=165987&r2=165988&view=diff
>>>>>>> ==============================================================================
>>>>>>> --- cfe/trunk/lib/Sema/SemaExpr.cpp (original)
>>>>>>> +++ cfe/trunk/lib/Sema/SemaExpr.cpp Mon Oct 15 17:23:53 2012
>>>>>>> @@ -9770,11 +9770,8 @@
>>>>>>> 
>>>>>>>  switch (ConvTy) {
>>>>>>>  case Compatible:
>>>>>>> -    DiagnoseAssignmentEnum(DstType, SrcType, SrcExpr);
>>>>>>> -
>>>>>>> -    // XXX here with forced compatible cast
>>>>>>> -
>>>>>>> -    return false;
>>>>>>> +      DiagnoseAssignmentEnum(DstType, SrcType, SrcExpr);
>>>>>>> +      return false;
>>>>>>> 
>>>>>>>  case PointerToInt:
>>>>>>>    DiagKind = diag::ext_typecheck_convert_pointer_int;
>>>>>>> @@ -9857,7 +9854,6 @@
>>>>>>>    DiagKind = diag::err_arc_weak_unavailable_assign;
>>>>>>>    break;
>>>>>>>  case Incompatible:
>>>>>>> -    // XXX here
>>>>>>>    DiagKind = diag::err_typecheck_convert_incompatible;
>>>>>>>    ConvHints.tryToFixConversion(SrcExpr, SrcType, DstType, *this);
>>>>>>>    MayHaveConvFixit = true;
>>>>>>> 
>>>>>>> Modified: cfe/trunk/runtime/compiler-rt/Makefile
>>>>>>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/runtime/compiler-rt/Makefile?rev=165988&r1=165987&r2=165988&view=diff
>>>>>>> ==============================================================================
>>>>>>> --- cfe/trunk/runtime/compiler-rt/Makefile (original)
>>>>>>> +++ cfe/trunk/runtime/compiler-rt/Makefile Mon Oct 15 17:23:53 2012
>>>>>>> @@ -74,9 +74,9 @@
>>>>>>> ifeq ($(OS),Darwin)
>>>>>>> RuntimeDirs += darwin
>>>>>>> RuntimeLibrary.darwin.Configs := \
>>>>>>> -       eprintf.a 10.4.a osx.a cc_kext.a \
>>>>>>> +       eprintf.a 10.4.a osx.a ios.a cc_kext.a cc_kext_ios5.a \
>>>>>>>       asan_osx.a asan_osx_dynamic.dylib \
>>>>>>> -       profile_osx.a
>>>>>>> +       profile_osx.a profile_ios.a
>>>>>>> endif
>>>>>>> 
>>>>>>> # On Linux, include a library which has all the runtime functions.
>>>>>>> 
>>>>>>> Copied: cfe/trunk/test/CodeGenObjC/optimized-setter-ios-device.m (from r165977, cfe/trunk/test/CodeGenObjC/optimized-setter.m)
>>>>>>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/optimized-setter-ios-device.m?p2=cfe/trunk/test/CodeGenObjC/optimized-setter-ios-device.m&p1=cfe/trunk/test/CodeGenObjC/optimized-setter.m&r1=165977&r2=165988&rev=165988&view=diff
>>>>>>> ==============================================================================
>>>>>>> --- cfe/trunk/test/CodeGenObjC/optimized-setter.m (original)
>>>>>>> +++ cfe/trunk/test/CodeGenObjC/optimized-setter-ios-device.m Mon Oct 15 17:23:53 2012
>>>>>>> @@ -1,5 +1,5 @@
>>>>>>> -// RUN: %clang_cc1 %s -emit-llvm -triple x86_64-apple-macosx10.8.0 -o - | FileCheck %s
>>>>>>> -// rdar://10179974
>>>>>>> +// RUN: %clang_cc1 %s -emit-llvm -fobjc-runtime=ios-6.0.0 -triple thumbv7-apple-ios6.0.0 -o - | FileCheck %s
>>>>>>> +// rdar://11915017
>>>>>>> 
>>>>>>> @interface I
>>>>>>> // void objc_setProperty_nonatomic(id self, SEL _cmd, id newValue, ptrdiff_t offset);
>>>>>>> @@ -26,8 +26,8 @@
>>>>>>> @synthesize atomicPropertyCopy;
>>>>>>> @end
>>>>>>> 
>>>>>>> -// CHECK: call void @objc_setProperty_nonatomic
>>>>>>> -// CHECK: call void @objc_setProperty_nonatomic_copy
>>>>>>> -// CHECK: call void @objc_setProperty_atomic
>>>>>>> -// CHECK: call void @objc_setProperty_atomic_copy
>>>>>>> +// CHECK: call arm_aapcscc void @objc_setProperty_nonatomic
>>>>>>> +// CHECK: call arm_aapcscc void @objc_setProperty_nonatomic_copy
>>>>>>> +// CHECK: call arm_aapcscc void @objc_setProperty_atomic
>>>>>>> +// CHECK: call arm_aapcscc void @objc_setProperty_atomic_copy
>>>>>>> 
>>>>>>> 
>>>>>>> Modified: cfe/trunk/test/CodeGenObjC/optimized-setter.m
>>>>>>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/optimized-setter.m?rev=165988&r1=165987&r2=165988&view=diff
>>>>>>> ==============================================================================
>>>>>>> --- cfe/trunk/test/CodeGenObjC/optimized-setter.m (original)
>>>>>>> +++ cfe/trunk/test/CodeGenObjC/optimized-setter.m Mon Oct 15 17:23:53 2012
>>>>>>> @@ -1,4 +1,5 @@
>>>>>>> -// RUN: %clang_cc1 %s -emit-llvm -triple x86_64-apple-macosx10.8.0 -o - | FileCheck %s
>>>>>>> +// RUN: %clang_cc1 %s -emit-llvm -fobjc-runtime=macosx-10.8 -triple x86_64-apple-macosx10.8.0 -o - | FileCheck %s
>>>>>>> +// RUN: %clang_cc1 %s -emit-llvm -fobjc-runtime=ios-6.0.0  -triple x86_64-apple-ios6.0.0 -o - | FileCheck %s
>>>>>>> // rdar://10179974
>>>>>>> 
>>>>>>> @interface I
>>>>>>> 
>>>>>>> Copied: cfe/trunk/test/CodeGenObjC/unoptimized-setter.m (from r165977, cfe/trunk/test/CodeGenObjC/optimized-setter.m)
>>>>>>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenObjC/unoptimized-setter.m?p2=cfe/trunk/test/CodeGenObjC/unoptimized-setter.m&p1=cfe/trunk/test/CodeGenObjC/optimized-setter.m&r1=165977&r2=165988&rev=165988&view=diff
>>>>>>> ==============================================================================
>>>>>>> --- cfe/trunk/test/CodeGenObjC/optimized-setter.m (original)
>>>>>>> +++ cfe/trunk/test/CodeGenObjC/unoptimized-setter.m Mon Oct 15 17:23:53 2012
>>>>>>> @@ -1,5 +1,5 @@
>>>>>>> -// RUN: %clang_cc1 %s -emit-llvm -triple x86_64-apple-macosx10.8.0 -o - | FileCheck %s
>>>>>>> -// rdar://10179974
>>>>>>> +// RUN: %clang_cc1 %s -emit-llvm -fobjc-runtime=macosx-10.6.0 -triple x86_64-apple-macosx10.6.0 -o - | FileCheck %s
>>>>>>> +// rdar://11858187
>>>>>>> 
>>>>>>> @interface I
>>>>>>> // void objc_setProperty_nonatomic(id self, SEL _cmd, id newValue, ptrdiff_t offset);
>>>>>>> @@ -26,8 +26,7 @@
>>>>>>> @synthesize atomicPropertyCopy;
>>>>>>> @end
>>>>>>> 
>>>>>>> -// CHECK: call void @objc_setProperty_nonatomic
>>>>>>> -// CHECK: call void @objc_setProperty_nonatomic_copy
>>>>>>> -// CHECK: call void @objc_setProperty_atomic
>>>>>>> -// CHECK: call void @objc_setProperty_atomic_copy
>>>>>>> -
>>>>>>> +// CHECK-NOT: call void @objc_setProperty_nonatomic
>>>>>>> +// CHECK-NOT: call void @objc_setProperty_nonatomic_copy
>>>>>>> +// CHECK-NOT: call void @objc_setProperty_atomic
>>>>>>> +// CHECK-NOT: call void @objc_setProperty_atomic_copy
>>>>>>> 
>>>>>>> Modified: cfe/trunk/test/Driver/darwin-ld.c
>>>>>>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/darwin-ld.c?rev=165988&r1=165987&r2=165988&view=diff
>>>>>>> ==============================================================================
>>>>>>> --- cfe/trunk/test/Driver/darwin-ld.c (original)
>>>>>>> +++ cfe/trunk/test/Driver/darwin-ld.c Mon Oct 15 17:23:53 2012
>>>>>>> @@ -122,6 +122,10 @@
>>>>>>> // RUN: FileCheck -check-prefix=LINK_NO_CRT1 %s < %t.log
>>>>>>> // LINK_NO_CRT1-NOT: crt
>>>>>>> 
>>>>>>> +// RUN: %clang -target armv7-apple-ios6.0 -miphoneos-version-min=6.0 -### %t.o 2> %t.log
>>>>>>> +// RUN: FileCheck -check-prefix=LINK_NO_IOS_CRT1 %s < %t.log
>>>>>>> +// LINK_NO_IOS_CRT1-NOT: crt
>>>>>>> +
>>>>>>> // RUN: %clang -target i386-apple-darwin12 -pg -### %t.o 2> %t.log
>>>>>>> // RUN: FileCheck -check-prefix=LINK_PG %s < %t.log
>>>>>>> // LINK_PG: -lgcrt1.o
>>>>>>> 
>>>>>>> Modified: cfe/trunk/test/Driver/pic.c
>>>>>>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/pic.c?rev=165988&r1=165987&r2=165988&view=diff
>>>>>>> ==============================================================================
>>>>>>> --- cfe/trunk/test/Driver/pic.c (original)
>>>>>>> +++ cfe/trunk/test/Driver/pic.c Mon Oct 15 17:23:53 2012
>>>>>>> @@ -93,3 +93,13 @@
>>>>>>> // RUN:   | FileCheck %s --check-prefix=CHECK-DYNAMIC-NO-PIC1
>>>>>>> // RUN: %clang -c %s -target i386-apple-darwin -mdynamic-no-pic -fPIC -### 2>&1 \
>>>>>>> // RUN:   | FileCheck %s --check-prefix=CHECK-DYNAMIC-NO-PIC2
>>>>>>> +
>>>>>>> +// Checks for ARM
>>>>>>> +// RUN: %clang -c %s -target armv7-apple-ios -fapple-kext -miphoneos-version-min=6.0.0 -### 2>&1 \
>>>>>>> +// RUN:   | FileCheck %s --check-prefix=CHECK-PIC2
>>>>>>> +// RUN: %clang -c %s -target armv7-apple-ios -mkernel -miphoneos-version-min=6.0.0 -### 2>&1 \
>>>>>>> +// RUN:   | FileCheck %s --check-prefix=CHECK-PIC2
>>>>>>> +// RUN: %clang -c %s -target armv7-apple-ios -fapple-kext -miphoneos-version-min=5.0.0 -### 2>&1 \
>>>>>>> +// RUN:   | FileCheck %s --check-prefix=CHECK-NO-PIC
>>>>>>> +// RUN: %clang -c %s -target armv7-apple-ios -fapple-kext -miphoneos-version-min=6.0.0 -static -### 2>&1 \
>>>>>>> +// RUN:   | FileCheck %s --check-prefix=CHECK-NO-PIC
>>>>>>> 
>>>>>>> 
>>>>>>> _______________________________________________
>>>>>>> cfe-commits mailing list
>>>>>>> cfe-commits at cs.uiuc.edu
>>>>>>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits




More information about the cfe-commits mailing list