[cfe-commits] r132919 - in /cfe/trunk: include/clang/Basic/ include/clang/Driver/ lib/Driver/ lib/Frontend/ lib/Sema/ lib/Serialization/ test/Analysis/ test/Driver/ test/SemaObjC/ test/SemaObjCXX/

Eli Friedman eli.friedman at gmail.com
Mon Jun 13 13:21:47 PDT 2011


On Mon, Jun 13, 2011 at 9:42 AM, Douglas Gregor <dgregor at apple.com> wrote:
> Author: dgregor
> Date: Mon Jun 13 11:42:53 2011
> New Revision: 132919
>
> URL: http://llvm.org/viewvc/llvm-project?rev=132919&view=rev
> Log:
> Eliminate the -f[no]objc-infer-related-result-type flags; there's no
> reason to allow the user to control these semantics through a flag.

This appears to have broken
http://smooshlab.apple.com:8013/builders/rewriter_i386-pc-win32 .

-Eli

> Modified:
>    cfe/trunk/include/clang/Basic/LangOptions.h
>    cfe/trunk/include/clang/Driver/CC1Options.td
>    cfe/trunk/include/clang/Driver/Options.td
>    cfe/trunk/lib/Driver/Tools.cpp
>    cfe/trunk/lib/Frontend/CompilerInvocation.cpp
>    cfe/trunk/lib/Sema/SemaDeclObjC.cpp
>    cfe/trunk/lib/Serialization/ASTReader.cpp
>    cfe/trunk/lib/Serialization/ASTWriter.cpp
>    cfe/trunk/test/Analysis/misc-ps-eager-assume.m
>    cfe/trunk/test/Analysis/retain-release-gc-only.m
>    cfe/trunk/test/Analysis/retain-release.m
>    cfe/trunk/test/Analysis/retain-release.mm
>    cfe/trunk/test/Analysis/uninit-ps-rdar6145427.m
>    cfe/trunk/test/Analysis/variadic-method-types.m
>    cfe/trunk/test/Driver/rewrite-objc.m
>    cfe/trunk/test/SemaObjC/related-result-type-inference.m
>    cfe/trunk/test/SemaObjC/typedef-class.m
>    cfe/trunk/test/SemaObjCXX/related-result-type-inference.mm
>
> Modified: cfe/trunk/include/clang/Basic/LangOptions.h
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/LangOptions.h?rev=132919&r1=132918&r2=132919&view=diff
> ==============================================================================
> --- cfe/trunk/include/clang/Basic/LangOptions.h (original)
> +++ cfe/trunk/include/clang/Basic/LangOptions.h Mon Jun 13 11:42:53 2011
> @@ -46,8 +46,7 @@
>   unsigned ObjCNonFragileABI : 1;  // Objective-C modern abi enabled
>   unsigned ObjCNonFragileABI2 : 1;  // Objective-C enhanced modern abi enabled
>   unsigned ObjCDefaultSynthProperties : 1; // Objective-C auto-synthesized properties.
> -  unsigned ObjCInferRelatedResultType : 1; // Infer Objective-C related return
> -                                           // types
> +
>   unsigned AppleKext         : 1;  // Allow apple kext features.
>
>   unsigned PascalStrings     : 1;  // Allow Pascal strings
> @@ -175,7 +174,6 @@
>     GC = ObjC1 = ObjC2 = ObjCNonFragileABI = ObjCNonFragileABI2 = 0;
>     AppleKext = 0;
>     ObjCDefaultSynthProperties = 0;
> -    ObjCInferRelatedResultType = 0;
>     NoConstantCFStrings = 0; InlineVisibilityHidden = 0;
>     C99 = C1X = Microsoft = Borland = CPlusPlus = CPlusPlus0x = 0;
>     CXXOperatorNames = PascalStrings = WritableStrings = ConstStrings = 0;
>
> Modified: cfe/trunk/include/clang/Driver/CC1Options.td
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Driver/CC1Options.td?rev=132919&r1=132918&r2=132919&view=diff
> ==============================================================================
> --- cfe/trunk/include/clang/Driver/CC1Options.td (original)
> +++ cfe/trunk/include/clang/Driver/CC1Options.td Mon Jun 13 11:42:53 2011
> @@ -493,8 +493,6 @@
>   HelpText<"Enable Objective-C Ivar layout bitmap print trace">;
>  def fobjc_nonfragile_abi : Flag<"-fobjc-nonfragile-abi">,
>   HelpText<"enable objective-c's nonfragile abi">;
> -def fobjc_infer_related_result_type : Flag<"-fobjc-infer-related-result-type">,
> -  HelpText<"infer Objective-C related result type based on method family">;
>  def ftrapv : Flag<"-ftrapv">,
>   HelpText<"Trap on integer overflow">;
>  def ftrapv_handler : Separate<"-ftrapv-handler">,
>
> Modified: cfe/trunk/include/clang/Driver/Options.td
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Driver/Options.td?rev=132919&r1=132918&r2=132919&view=diff
> ==============================================================================
> --- cfe/trunk/include/clang/Driver/Options.td (original)
> +++ cfe/trunk/include/clang/Driver/Options.td Mon Jun 13 11:42:53 2011
> @@ -392,10 +392,6 @@
>  def fobjc_gc : Flag<"-fobjc-gc">, Group<f_Group>;
>  def fobjc_legacy_dispatch : Flag<"-fobjc-legacy-dispatch">, Group<f_Group>;
>  def fobjc_new_property : Flag<"-fobjc-new-property">, Group<clang_ignored_f_Group>;
> -def fobjc_infer_related_result_type : Flag<"-fobjc-infer-related-result-type">,
> -                                      Group<f_Group>;
> -def fno_objc_infer_related_result_type : Flag<
> -  "-fno-objc-infer-related-result-type">, Group<f_Group>;
>
>  // Objective-C ABI options.
>  def fobjc_abi_version_EQ : Joined<"-fobjc-abi-version=">, Group<f_Group>;
>
> Modified: cfe/trunk/lib/Driver/Tools.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Tools.cpp?rev=132919&r1=132918&r2=132919&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Driver/Tools.cpp (original)
> +++ cfe/trunk/lib/Driver/Tools.cpp Mon Jun 13 11:42:53 2011
> @@ -1542,12 +1542,6 @@
>                     options::OPT_fno_lax_vector_conversions))
>     CmdArgs.push_back("-fno-lax-vector-conversions");
>
> -  // -fobjc-infer-related-result-type is the default.
> -  if (Args.hasFlag(options::OPT_fobjc_infer_related_result_type,
> -                   options::OPT_fno_objc_infer_related_result_type,
> -                   /*Default=*/true))
> -    CmdArgs.push_back("-fobjc-infer-related-result-type");
> -
>   // Handle -fobjc-gc and -fobjc-gc-only. They are exclusive, and -fobjc-gc-only
>   // takes precedence.
>   const Arg *GCArg = Args.getLastArg(options::OPT_fobjc_gc_only);
>
> Modified: cfe/trunk/lib/Frontend/CompilerInvocation.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/CompilerInvocation.cpp?rev=132919&r1=132918&r2=132919&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Frontend/CompilerInvocation.cpp (original)
> +++ cfe/trunk/lib/Frontend/CompilerInvocation.cpp Mon Jun 13 11:42:53 2011
> @@ -670,9 +670,6 @@
>       Res.push_back("-fobjc-gc-only");
>     }
>   }
> -  if (Opts.ObjCInferRelatedResultType)
> -    Res.push_back("-fobjc-infer-related-result-type");
> -
>   if (Opts.AppleKext)
>     Res.push_back("-fapple-kext");
>
> @@ -1488,9 +1485,6 @@
>   else if (Args.hasArg(OPT_fobjc_gc))
>     Opts.setGCMode(LangOptions::HybridGC);
>
> -  if (Args.hasArg(OPT_fobjc_infer_related_result_type))
> -    Opts.ObjCInferRelatedResultType = 1;
> -
>   if (Args.hasArg(OPT_fapple_kext)) {
>     if (!Opts.CPlusPlus)
>       Diags.Report(diag::warn_c_kext);
>
> Modified: cfe/trunk/lib/Sema/SemaDeclObjC.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaDeclObjC.cpp?rev=132919&r1=132918&r2=132919&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Sema/SemaDeclObjC.cpp (original)
> +++ cfe/trunk/lib/Sema/SemaDeclObjC.cpp Mon Jun 13 11:42:53 2011
> @@ -2112,8 +2112,7 @@
>     mergeObjCMethodDecls(ObjCMethod, InterfaceMD);
>   }
>
> -  if (!ObjCMethod->hasRelatedResultType() &&
> -      getLangOptions().ObjCInferRelatedResultType) {
> +  if (!ObjCMethod->hasRelatedResultType()) {
>     bool InferRelatedResultType = false;
>     switch (ObjCMethod->getMethodFamily()) {
>     case OMF_None:
>
> Modified: cfe/trunk/lib/Serialization/ASTReader.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Serialization/ASTReader.cpp?rev=132919&r1=132918&r2=132919&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Serialization/ASTReader.cpp (original)
> +++ cfe/trunk/lib/Serialization/ASTReader.cpp Mon Jun 13 11:42:53 2011
> @@ -92,7 +92,6 @@
>   PARSE_LANGOPT_IMPORTANT(AppleKext, diag::warn_pch_apple_kext);
>   PARSE_LANGOPT_IMPORTANT(ObjCDefaultSynthProperties,
>                           diag::warn_pch_objc_auto_properties);
> -  PARSE_LANGOPT_BENIGN(ObjCInferRelatedResultType)
>   PARSE_LANGOPT_IMPORTANT(NoConstantCFStrings,
>                           diag::warn_pch_no_constant_cfstrings);
>   PARSE_LANGOPT_BENIGN(PascalStrings);
> @@ -2935,7 +2934,6 @@
>     PARSE_LANGOPT(ObjCNonFragileABI2);
>     PARSE_LANGOPT(AppleKext);
>     PARSE_LANGOPT(ObjCDefaultSynthProperties);
> -    PARSE_LANGOPT(ObjCInferRelatedResultType);
>     PARSE_LANGOPT(NoConstantCFStrings);
>     PARSE_LANGOPT(PascalStrings);
>     PARSE_LANGOPT(WritableStrings);
>
> Modified: cfe/trunk/lib/Serialization/ASTWriter.cpp
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Serialization/ASTWriter.cpp?rev=132919&r1=132918&r2=132919&view=diff
> ==============================================================================
> --- cfe/trunk/lib/Serialization/ASTWriter.cpp (original)
> +++ cfe/trunk/lib/Serialization/ASTWriter.cpp Mon Jun 13 11:42:53 2011
> @@ -1050,7 +1050,6 @@
>   Record.push_back(LangOpts.AppleKext);          // Apple's kernel extensions ABI
>   Record.push_back(LangOpts.ObjCDefaultSynthProperties); // Objective-C auto-synthesized
>                                                       // properties enabled.
> -  Record.push_back(LangOpts.ObjCInferRelatedResultType);
>   Record.push_back(LangOpts.NoConstantCFStrings); // non cfstring generation enabled..
>
>   Record.push_back(LangOpts.PascalStrings);  // Allow Pascal strings
>
> Modified: cfe/trunk/test/Analysis/misc-ps-eager-assume.m
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/misc-ps-eager-assume.m?rev=132919&r1=132918&r2=132919&view=diff
> ==============================================================================
> --- cfe/trunk/test/Analysis/misc-ps-eager-assume.m (original)
> +++ cfe/trunk/test/Analysis/misc-ps-eager-assume.m Mon Jun 13 11:42:53 2011
> @@ -12,6 +12,7 @@
>  @end  @protocol NSCoding  - (void)encodeWithCoder:(NSCoder *)aCoder;
>  @end    @interface NSObject <NSObject> {}
>  + (id)alloc;
> +- (id)init;
>  @end  typedef struct {}
>  NSFastEnumerationState;
>  @protocol NSFastEnumeration  - (NSUInteger)countByEnumeratingWithState:(NSFastEnumerationState *)state objects:(id *)stackbuf count:(NSUInteger)len;
>
> Modified: cfe/trunk/test/Analysis/retain-release-gc-only.m
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/retain-release-gc-only.m?rev=132919&r1=132918&r2=132919&view=diff
> ==============================================================================
> --- cfe/trunk/test/Analysis/retain-release-gc-only.m (original)
> +++ cfe/trunk/test/Analysis/retain-release-gc-only.m Mon Jun 13 11:42:53 2011
> @@ -113,6 +113,7 @@
>  @end       @interface NSAutoreleasePool : NSObject {
>  }
>  - (void)drain;
> +- (id)init;
>  @end extern NSString * const NSBundleDidLoadNotification;
>  typedef double NSTimeInterval;
>  @interface NSDate : NSObject <NSCopying, NSCoding>  - (NSTimeInterval)timeIntervalSinceReferenceDate;
>
> Modified: cfe/trunk/test/Analysis/retain-release.m
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/retain-release.m?rev=132919&r1=132918&r2=132919&view=diff
> ==============================================================================
> --- cfe/trunk/test/Analysis/retain-release.m (original)
> +++ cfe/trunk/test/Analysis/retain-release.m Mon Jun 13 11:42:53 2011
> @@ -116,6 +116,7 @@
>  - (id)retain;
>  - (oneway void)release;
>  - (id)autorelease;
> +- (id)init;
>  @end  @protocol NSCopying  - (id)copyWithZone:(NSZone *)zone;
>  @end  @protocol NSMutableCopying  - (id)mutableCopyWithZone:(NSZone *)zone;
>  @end  @protocol NSCoding  - (void)encodeWithCoder:(NSCoder *)aCoder;
> @@ -1445,7 +1446,7 @@
>     while (error_to_dump != ((void*)0)) {
>         CFDictionaryRef info;
>
> -        info = CFErrorCopyUserInfo(error_to_dump); // expected-warning{{Potential leak of an object allocated on line 1448 and stored into 'info'}}
> +        info = CFErrorCopyUserInfo(error_to_dump); // expected-warning{{Potential leak of an object allocated on line 1449 and stored into 'info'}}
>
>         if (info != ((void*)0)) {
>         }
>
> Modified: cfe/trunk/test/Analysis/retain-release.mm
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/retain-release.mm?rev=132919&r1=132918&r2=132919&view=diff
> ==============================================================================
> --- cfe/trunk/test/Analysis/retain-release.mm (original)
> +++ cfe/trunk/test/Analysis/retain-release.mm Mon Jun 13 11:42:53 2011
> @@ -121,6 +121,7 @@
>  + (id)allocWithZone:(NSZone *)zone;
>  + (id)alloc;
>  - (void)dealloc;
> +- (id)init;
>  @end
>  @interface NSObject (NSCoderMethods)
>  - (id)awakeAfterUsingCoder:(NSCoder *)aDecoder;
>
> Modified: cfe/trunk/test/Analysis/uninit-ps-rdar6145427.m
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/uninit-ps-rdar6145427.m?rev=132919&r1=132918&r2=132919&view=diff
> ==============================================================================
> --- cfe/trunk/test/Analysis/uninit-ps-rdar6145427.m (original)
> +++ cfe/trunk/test/Analysis/uninit-ps-rdar6145427.m Mon Jun 13 11:42:53 2011
> @@ -11,7 +11,10 @@
>  @protocol NSObject  - (BOOL)isEqual:(id)object; @end
>  @protocol NSCopying  - (id)copyWithZone:(NSZone *)zone; @end
>  @protocol NSCoding  - (void)encodeWithCoder:(NSCoder *)aCoder; @end
> - at interface NSObject <NSObject> {} + (id)alloc; @end
> + at interface NSObject <NSObject> {}
> ++ (id)alloc;
> +- (id)init;
> + at end
>  extern id NSAllocateObject(Class aClass, NSUInteger extraBytes, NSZone *zone);
>  @interface NSValue : NSObject <NSCopying, NSCoding>  - (void)getValue:(void *)value; @end
>  @class NSString, NSData;
>
> Modified: cfe/trunk/test/Analysis/variadic-method-types.m
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Analysis/variadic-method-types.m?rev=132919&r1=132918&r2=132919&view=diff
> ==============================================================================
> --- cfe/trunk/test/Analysis/variadic-method-types.m (original)
> +++ cfe/trunk/test/Analysis/variadic-method-types.m Mon Jun 13 11:42:53 2011
> @@ -73,13 +73,13 @@
>   [NSDictionary dictionaryWithObjectsAndKeys:@"Foo", "Bar", nil]; // expected-warning {{Argument to 'NSDictionary' method 'dictionaryWithObjectsAndKeys:' should be an Objective-C pointer type, not 'char *'}}
>   [NSSet setWithObjects:@"Foo", "Bar", nil]; // expected-warning {{Argument to 'NSSet' method 'setWithObjects:' should be an Objective-C pointer type, not 'char *'}}
>
> -  [[[NSArray alloc] initWithObjects:@"Foo", "Bar", nil] autorelease]; // expected-warning {{Argument to method 'initWithObjects:' should be an Objective-C pointer type, not 'char *'}}
> -  [[[NSDictionary alloc] initWithObjectsAndKeys:@"Foo", "Bar", nil] autorelease]; // expected-warning {{Argument to method 'initWithObjectsAndKeys:' should be an Objective-C pointer type, not 'char *'}}
> +  [[[NSArray alloc] initWithObjects:@"Foo", "Bar", nil] autorelease]; // expected-warning {{Argument to 'NSArray' method 'initWithObjects:' should be an Objective-C pointer type, not 'char *'}}
> +  [[[NSDictionary alloc] initWithObjectsAndKeys:@"Foo", "Bar", nil] autorelease]; // expected-warning {{Argument to 'NSDictionary' method 'initWithObjectsAndKeys:' should be an Objective-C pointer type, not 'char *'}}
>   [[[NSDictionary alloc] initWithObjectsAndKeys:@"Foo", (void*) 0, nil] autorelease]; // no-warning
>   [[[NSDictionary alloc] initWithObjectsAndKeys:@"Foo", kCGImageSourceShouldCache, nil] autorelease]; // no-warning
>   [[[NSDictionary alloc] initWithObjectsAndKeys:@"Foo", fooType, nil] autorelease]; // no-warning
> -  [[[NSDictionary alloc] initWithObjectsAndKeys:@"Foo", barType, nil] autorelease]; // expected-warning {{Argument to method 'initWithObjectsAndKeys:' should be an Objective-C pointer type, not 'BarType'}}
> -  [[[NSSet alloc] initWithObjects:@"Foo", "Bar", nil] autorelease]; // expected-warning {{Argument to method 'initWithObjects:' should be an Objective-C pointer type, not 'char *'}}
> +  [[[NSDictionary alloc] initWithObjectsAndKeys:@"Foo", barType, nil] autorelease]; // expected-warning {{Argument to 'NSDictionary' method 'initWithObjectsAndKeys:' should be an Objective-C pointer type, not 'BarType'}}
> +  [[[NSSet alloc] initWithObjects:@"Foo", "Bar", nil] autorelease]; // expected-warning {{Argument to 'NSSet' method 'initWithObjects:' should be an Objective-C pointer type, not 'char *'}}
>  }
>
>  // This previously crashed the variadic argument checker.
>
> Modified: cfe/trunk/test/Driver/rewrite-objc.m
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/rewrite-objc.m?rev=132919&r1=132918&r2=132919&view=diff
> ==============================================================================
> --- cfe/trunk/test/Driver/rewrite-objc.m (original)
> +++ cfe/trunk/test/Driver/rewrite-objc.m Mon Jun 13 11:42:53 2011
> @@ -3,7 +3,7 @@
>  // TEST0: clang{{.*}}" "-cc1"
>  // TEST0: "-rewrite-objc"
>  // FIXME: CHECK-NOT is broken somehow, it doesn't work here. Check adjacency instead.
> -// TEST0: "-fmessage-length" "0" "-fobjc-infer-related-result-type" "-fobjc-exceptions" "-fdiagnostics-show-option"
> +// TEST0: "-fmessage-length" "0" "-fobjc-exceptions" "-fdiagnostics-show-option"
>  // TEST0: rewrite-objc.m"
>
>  // RUN: not %clang -ccc-no-clang -ccc-host-triple unknown -rewrite-objc %s -o - -### 2>&1 | \
>
> Modified: cfe/trunk/test/SemaObjC/related-result-type-inference.m
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaObjC/related-result-type-inference.m?rev=132919&r1=132918&r2=132919&view=diff
> ==============================================================================
> --- cfe/trunk/test/SemaObjC/related-result-type-inference.m (original)
> +++ cfe/trunk/test/SemaObjC/related-result-type-inference.m Mon Jun 13 11:42:53 2011
> @@ -1,4 +1,4 @@
> -// RUN: %clang_cc1 -fobjc-infer-related-result-type -verify %s
> +// RUN: %clang_cc1 -verify %s
>
>  @interface Unrelated
>  @end
>
> Modified: cfe/trunk/test/SemaObjC/typedef-class.m
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaObjC/typedef-class.m?rev=132919&r1=132918&r2=132919&view=diff
> ==============================================================================
> --- cfe/trunk/test/SemaObjC/typedef-class.m (original)
> +++ cfe/trunk/test/SemaObjC/typedef-class.m Mon Jun 13 11:42:53 2011
> @@ -5,7 +5,7 @@
>
>  @class NSInvocation, NSMethodSignature, NSCoder, NSString, NSEnumerator;
>
> - at protocol NSObject - (BOOL) isEqual:(id) object; @end
> + at protocol NSObject - (BOOL) isEqual:(id) object; - (id)init; @end
>  @protocol NSCopying - (id) copyWithZone:(NSZone *) zone; @end
>  @protocol NSCoding - (void) encodeWithCoder:(NSCoder *) aCoder; @end
>
>
> Modified: cfe/trunk/test/SemaObjCXX/related-result-type-inference.mm
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaObjCXX/related-result-type-inference.mm?rev=132919&r1=132918&r2=132919&view=diff
> ==============================================================================
> --- cfe/trunk/test/SemaObjCXX/related-result-type-inference.mm (original)
> +++ cfe/trunk/test/SemaObjCXX/related-result-type-inference.mm Mon Jun 13 11:42:53 2011
> @@ -1,4 +1,4 @@
> -// RUN: %clang_cc1 -fobjc-infer-related-result-type -verify %s
> +// RUN: %clang_cc1 -verify %s
>
>  @interface Unrelated
>  @end
>
>
> _______________________________________________
> 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