[clang] [clang-tools-extra] [flang] [lld] [llvm] [flang][clang] Add Visibility specific help text for options (PR #81869)

Leandro Lupori via llvm-commits llvm-commits at lists.llvm.org
Thu Mar 14 08:47:42 PDT 2024


================
@@ -3382,10 +3382,18 @@ def fopenmp : Flag<["-"], "fopenmp">, Group<f_Group>,
   HelpText<"Parse OpenMP pragmas and generate parallel code.">;
 def fno_openmp : Flag<["-"], "fno-openmp">, Group<f_Group>,
   Flags<[NoArgumentUnused]>;
+class OpenMPVersionHelp<string program, string default> {
+  string str = !strconcat(
+    "Set OpenMP version (e.g. 45 for OpenMP 4.5, 51 for OpenMP 5.1). Default value is ",
+    default, " for ", program);
+}
 def fopenmp_version_EQ : Joined<["-"], "fopenmp-version=">, Group<f_Group>,
   Flags<[NoArgumentUnused]>,
   Visibility<[ClangOption, CC1Option, FlangOption, FC1Option]>,
-  HelpText<"Set OpenMP version (e.g. 45 for OpenMP 4.5, 51 for OpenMP 5.1). Default value is 51 for Clang">;
+  HelpText<OpenMPVersionHelp<"Clang", "51">.str>,
+  HelpTextsForVariants<[
+    HelpTextVariant<[FlangOption, FC1Option], OpenMPVersionHelp<"Flang", "11">.str>
+  ]>;
----------------
luporl wrote:

This looks good and allows alternative texts for as many variants as needed.

But for the simple case of having only one alternative text, do you think it would be too confusing to add `HelpTextForVariants`?

Then this part would become:
`HelpTextForVariants<[FlangOption, FC1Option], OpenMPVersionHelp<"Flang", "11">.str>;`

The implementation in llvm/include/llvm/Option/OptParser.td could be:
```
class HelpTextForVariants<list<OptionVisibility> visibilities, string text>
  : HelpTextsForVariants<[HelpTextVariant<visibilities, text>]>;
```

https://github.com/llvm/llvm-project/pull/81869


More information about the llvm-commits mailing list