Author: dexonsmith Date: Tue Dec 6 18:31:10 2016 New Revision: 288872 URL: http://llvm.org/viewvc/llvm-project?rev=288872&view=rev Log: Driver: Remove support for -fobjc-gc*
As a first step toward removing Objective-C garbage collection from Clang, remove support from the driver. I'm hoping this will flush out any expected bots/configurations/whatever that might rely on it. I've left the options behind temporarily in -cc1 to keep tests passing. I'll kill them off entirely in a follow up when I've had a chance to update/delete the rest of Clang. Removed: cfe/trunk/test/Driver/darwin-objc-gc.m Modified: cfe/trunk/docs/CommandGuide/clang.rst cfe/trunk/include/clang/Basic/DiagnosticDriverKinds.td cfe/trunk/include/clang/Driver/CC1Options.td cfe/trunk/include/clang/Driver/Options.td cfe/trunk/lib/Driver/Tools.cpp cfe/trunk/test/Misc/warning-flags.c Modified: cfe/trunk/docs/CommandGuide/clang.rst URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/docs/CommandGuide/clang.rst?rev=288872&r1=288871&r2=288872&view=diff ============================================================================== --- cfe/trunk/docs/CommandGuide/clang.rst (original) +++ cfe/trunk/docs/CommandGuide/clang.rst Tue Dec 6 18:31:10 2016 @@ -167,16 +167,6 @@ Language Selection and Mode Options Enable the "Blocks" language feature. -.. option:: -fobjc-gc-only - - Indicate that Objective-C code should be compiled in GC-only mode, which only - works when Objective-C Garbage Collection is enabled. - -.. option:: -fobjc-gc - - Indicate that Objective-C code should be compiled in hybrid-GC mode, which - works with both GC and non-GC mode. - .. option:: -fobjc-abi-version=version Select the Objective-C ABI version to use. Available versions are 1 (legacy Modified: cfe/trunk/include/clang/Basic/DiagnosticDriverKinds.td URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticDriverKinds.td?rev=288872&r1=288871&r2=288872&view=diff ============================================================================== --- cfe/trunk/include/clang/Basic/DiagnosticDriverKinds.td (original) +++ cfe/trunk/include/clang/Basic/DiagnosticDriverKinds.td Tue Dec 6 18:31:10 2016 @@ -137,8 +137,6 @@ def err_drv_preamble_format : Error< "incorrect format for -preamble-bytes=N,END">; def err_drv_conflicting_deployment_targets : Error< "conflicting deployment targets, both '%0' and '%1' are present in environment">; -def err_drv_objc_gc_arr : Error< - "cannot specify both '-fobjc-arc' and '%0'">; def err_arc_unsupported_on_runtime : Error< "-fobjc-arc is not supported on platforms using the legacy runtime">; def err_arc_unsupported_on_toolchain : Error< // feel free to generalize this @@ -211,8 +209,6 @@ def warn_drv_overriding_flag_option : Wa def warn_drv_treating_input_as_cxx : Warning< "treating '%0' input as '%1' when in C++ mode, this behavior is deprecated">, InGroup<Deprecated>; -def warn_drv_objc_gc_unsupported : Warning< - "Objective-C garbage collection is not supported on this platform, ignoring '%0'">; def warn_drv_pch_not_first_include : Warning< "precompiled header '%0' was ignored because '%1' is not first '-include'">; def warn_missing_sysroot : Warning<"no such sysroot directory: '%0'">, Modified: cfe/trunk/include/clang/Driver/CC1Options.td URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Driver/CC1Options.td?rev=288872&r1=288871&r2=288872&view=diff ============================================================================== --- cfe/trunk/include/clang/Driver/CC1Options.td (original) +++ cfe/trunk/include/clang/Driver/CC1Options.td Tue Dec 6 18:31:10 2016 @@ -641,6 +641,12 @@ def fdefault_calling_conv_EQ : Joined<[" def finclude_default_header : Flag<["-"], "finclude-default-header">, HelpText<"Include the default header file for OpenCL">; +// FIXME: Remove these entirely once functionality/tests have been excised. +def fobjc_gc_only : Flag<["-"], "fobjc-gc-only">, Group<f_Group>, + HelpText<"Use GC exclusively for Objective-C related memory management">; +def fobjc_gc : Flag<["-"], "fobjc-gc">, Group<f_Group>, + HelpText<"Enable Objective-C garbage collection">; + //===----------------------------------------------------------------------===// // Header Search Options //===----------------------------------------------------------------------===// Modified: cfe/trunk/include/clang/Driver/Options.td URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Driver/Options.td?rev=288872&r1=288871&r2=288872&view=diff ============================================================================== --- cfe/trunk/include/clang/Driver/Options.td (original) +++ cfe/trunk/include/clang/Driver/Options.td Tue Dec 6 18:31:10 2016 @@ -1092,10 +1092,6 @@ def : Flag<["-"], "faligned-new">, Alias def : Flag<["-"], "fno-aligned-new">, Alias<fno_aligned_allocation>; def faligned_new_EQ : Joined<["-"], "faligned-new=">; -def fobjc_gc_only : Flag<["-"], "fobjc-gc-only">, Group<f_Group>, Flags<[CC1Option]>, - HelpText<"Use GC exclusively for Objective-C related memory management">; -def fobjc_gc : Flag<["-"], "fobjc-gc">, Group<f_Group>, Flags<[CC1Option]>, - HelpText<"Enable Objective-C garbage collection">; 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">, Modified: cfe/trunk/lib/Driver/Tools.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Driver/Tools.cpp?rev=288872&r1=288871&r2=288872&view=diff ============================================================================== --- cfe/trunk/lib/Driver/Tools.cpp (original) +++ cfe/trunk/lib/Driver/Tools.cpp Tue Dec 6 18:31:10 2016 @@ -6005,31 +6005,12 @@ void Clang::ConstructJob(Compilation &C, if (rewriteKind != RK_None) CmdArgs.push_back("-fno-objc-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); - if (!GCArg) - GCArg = Args.getLastArg(options::OPT_fobjc_gc); - if (GCArg) { - if (ARC) { - D.Diag(diag::err_drv_objc_gc_arr) << GCArg->getAsString(Args); - } else if (getToolChain().SupportsObjCGC()) { - GCArg->render(Args, CmdArgs); - } else { - // FIXME: We should move this to a hard error. - D.Diag(diag::warn_drv_objc_gc_unsupported) << GCArg->getAsString(Args); - } - } - // Pass down -fobjc-weak or -fno-objc-weak if present. if (types::isObjC(InputType)) { auto WeakArg = Args.getLastArg(options::OPT_fobjc_weak, options::OPT_fno_objc_weak); if (!WeakArg) { // nothing to do - } else if (GCArg) { - if (WeakArg->getOption().matches(options::OPT_fobjc_weak)) - D.Diag(diag::err_objc_weak_with_gc); } else if (!objcRuntime.allowsWeak()) { if (WeakArg->getOption().matches(options::OPT_fobjc_weak)) D.Diag(diag::err_objc_weak_unsupported); Removed: cfe/trunk/test/Driver/darwin-objc-gc.m URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/darwin-objc-gc.m?rev=288871&view=auto ============================================================================== --- cfe/trunk/test/Driver/darwin-objc-gc.m (original) +++ cfe/trunk/test/Driver/darwin-objc-gc.m (removed) @@ -1,19 +0,0 @@ -// Check that we warn, but accept, -fobjc-gc for iPhone OS. - -// RUN: %clang -target i386-apple-darwin9 -miphoneos-version-min=3.0 -stdlib=platform -fobjc-gc -flto -S -o %t %s 2> %t.err -// RUN: FileCheck --check-prefix=IPHONE_OBJC_GC_LL %s < %t -// RUN: FileCheck --check-prefix=IPHONE_OBJC_GC_STDERR %s < %t.err - -// IPHONE_OBJC_GC_LL: define void @f0 -// IPHONE_OBJC_GC_LL-NOT: objc_assign_ivar -// IPHONE_OBJC_GC_LL: } - -// IPHONE_OBJC_GC_STDERR: warning: Objective-C garbage collection is not supported on this platform, ignoring '-fobjc-gc' - -@interface A { -@public - id x; -} -@end - -void f0(A *a, id x) { a->x = x; } Modified: cfe/trunk/test/Misc/warning-flags.c URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Misc/warning-flags.c?rev=288872&r1=288871&r2=288872&view=diff ============================================================================== --- cfe/trunk/test/Misc/warning-flags.c (original) +++ cfe/trunk/test/Misc/warning-flags.c Tue Dec 6 18:31:10 2016 @@ -18,7 +18,7 @@ This test serves two purposes: The list of warnings below should NEVER grow. It should gradually shrink to 0. -CHECK: Warnings without flags (80): +CHECK: Warnings without flags (79): CHECK-NEXT: ext_excess_initializers CHECK-NEXT: ext_excess_initializers_in_char_array_initializer CHECK-NEXT: ext_expected_semi_decl_list @@ -54,7 +54,6 @@ CHECK-NEXT: warn_delete_array_type CHECK-NEXT: warn_double_const_requires_fp64 CHECK-NEXT: warn_drv_assuming_mfloat_abi_is CHECK-NEXT: warn_drv_clang_unsupported -CHECK-NEXT: warn_drv_objc_gc_unsupported CHECK-NEXT: warn_drv_pch_not_first_include CHECK-NEXT: warn_dup_category_def CHECK-NEXT: warn_enum_value_overflow _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits