Author: Michael Kruse Date: 2024-05-06T14:04:12+02:00 New Revision: 6e31a49931b8b057868a64e89838e3c9b40f9198
URL: https://github.com/llvm/llvm-project/commit/6e31a49931b8b057868a64e89838e3c9b40f9198 DIFF: https://github.com/llvm/llvm-project/commit/6e31a49931b8b057868a64e89838e3c9b40f9198.diff LOG: [driver] Do not warn about unused plugin flags. (#88948) Plugins are not loaded without the -cc1 phase. Do not report them when running on an assembly file or when linking. Many build tools add these options to all driver invocations, including LLVM's build system. Fixes #88173 Added: Modified: clang/include/clang/Driver/Options.td clang/test/Driver/plugin-driver-args.cpp Removed: ################################################################################ diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td index 938d5358eeda6b..c9f7c4e5f718b4 100644 --- a/clang/include/clang/Driver/Options.td +++ b/clang/include/clang/Driver/Options.td @@ -3663,14 +3663,14 @@ defm rwpi : BoolFOption<"rwpi", "Generate read-write position independent code (ARM only)">, NegFlag<SetFalse, [], [ClangOption, FlangOption, CC1Option]>>; def fplugin_EQ : Joined<["-"], "fplugin=">, Group<f_Group>, - Flags<[NoXarchOption]>, MetaVarName<"<dsopath>">, + Flags<[NoXarchOption, NoArgumentUnused]>, MetaVarName<"<dsopath>">, HelpText<"Load the named plugin (dynamic shared object)">; def fplugin_arg : Joined<["-"], "fplugin-arg-">, - MetaVarName<"<name>-<arg>">, + MetaVarName<"<name>-<arg>">, Flags<[NoArgumentUnused]>, HelpText<"Pass <arg> to plugin <name>">; def fpass_plugin_EQ : Joined<["-"], "fpass-plugin=">, Group<f_Group>, Visibility<[ClangOption, CC1Option, FlangOption, FC1Option]>, - MetaVarName<"<dsopath>">, + MetaVarName<"<dsopath>">, Flags<[NoArgumentUnused]>, HelpText<"Load pass plugin from a dynamic shared object file (only with new pass manager).">, MarshallingInfoStringVector<CodeGenOpts<"PassPlugins">>; defm tocdata : BoolOption<"m","tocdata", diff --git a/clang/test/Driver/plugin-driver-args.cpp b/clang/test/Driver/plugin-driver-args.cpp index d6475b4b3d733a..6f0e6e2ba75251 100644 --- a/clang/test/Driver/plugin-driver-args.cpp +++ b/clang/test/Driver/plugin-driver-args.cpp @@ -20,3 +20,8 @@ // RUN: %clang -fplugin=%llvmshlibdir/CallSuperAttr%pluginext -fplugin-arg-testname- -fsyntax-only %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-NO-PLUGIN-ARG2 // CHECK-NO-PLUGIN-ARG2: missing plugin argument for plugin testname in -fplugin-arg-testname- + +// Plugins are only relevant for the -cc1 phase. No warning should be raised +// when only using the assembler. See GH #88173. +// RUN: %clang -c -fpass-plugin=bar.so -fplugin=bar.so -fplugin-arg-bar-option -Werror -x assembler %s -### 2>&1 | FileCheck %s --check-prefix=CHECK-PLUGIN-ASM +// CHECK-PLUGIN-ASM-NOT: argument unused during compilation _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits