diff options
author | Jan Svoboda <jan_svoboda@apple.com> | 2021-01-22 09:13:34 +0100 |
---|---|---|
committer | Jan Svoboda <jan_svoboda@apple.com> | 2021-01-22 09:32:01 +0100 |
commit | ff5f42e413386b1b3730879abf7b35756891e1c3 (patch) | |
tree | dcb66f2d74c58a48eede1449c38b4dc19d47252d /clang/lib/Frontend/CompilerInvocation.cpp | |
parent | c953a8334707951d172e8061c8dc9054eb0c5c3f (diff) | |
download | llvm-ff5f42e413386b1b3730879abf7b35756891e1c3.zip llvm-ff5f42e413386b1b3730879abf7b35756891e1c3.tar.gz llvm-ff5f42e413386b1b3730879abf7b35756891e1c3.tar.bz2 |
[clang][cli] Port visibility LangOptions to marshalling system
This patch introduces Clang-specific MarshallingInfoVisibility TableGen class.
Reviewed By: dexonsmith
Differential Revision: https://reviews.llvm.org/D95147
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
-rw-r--r-- | clang/lib/Frontend/CompilerInvocation.cpp | 57 |
1 files changed, 0 insertions, 57 deletions
diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp index 24b8fd1..d18e6b9 100644 --- a/clang/lib/Frontend/CompilerInvocation.cpp +++ b/clang/lib/Frontend/CompilerInvocation.cpp @@ -2061,24 +2061,6 @@ void CompilerInvocation::setLangDefaults(LangOptions &Opts, InputKind IK, Opts.DoubleSquareBracketAttributes = Opts.CPlusPlus11 || Opts.C2x; } -/// Attempt to parse a visibility value out of the given argument. -static Visibility parseVisibility(Arg *arg, ArgList &args, - DiagnosticsEngine &diags) { - StringRef value = arg->getValue(); - if (value == "default") { - return DefaultVisibility; - } else if (value == "hidden" || value == "internal") { - return HiddenVisibility; - } else if (value == "protected") { - // FIXME: diagnose if target does not support protected visibility - return ProtectedVisibility; - } - - diags.Report(diag::err_drv_invalid_value) - << arg->getAsString(args) << value; - return DefaultVisibility; -} - /// Check if input file kind and language standard are compatible. static bool IsInputCompatibleWithStandard(InputKind IK, const LangStandard &S) { @@ -2366,45 +2348,6 @@ void CompilerInvocation::ParseLangArgs(LangOptions &Opts, ArgList &Args, Opts.GNUInline = 1; } - // The type-visibility mode defaults to the value-visibility mode. - if (Arg *typeVisOpt = Args.getLastArg(OPT_ftype_visibility)) { - Opts.setTypeVisibilityMode(parseVisibility(typeVisOpt, Args, Diags)); - } else { - Opts.setTypeVisibilityMode(Opts.getValueVisibilityMode()); - } - - if (Args.hasArg(OPT_fvisibility_from_dllstorageclass)) { - Opts.VisibilityFromDLLStorageClass = 1; - - // Translate dllexport defintions to default visibility, by default. - if (Arg *O = Args.getLastArg(OPT_fvisibility_dllexport_EQ)) - Opts.setDLLExportVisibility(parseVisibility(O, Args, Diags)); - else - Opts.setDLLExportVisibility(DefaultVisibility); - - // Translate defintions without an explict DLL storage class to hidden - // visibility, by default. - if (Arg *O = Args.getLastArg(OPT_fvisibility_nodllstorageclass_EQ)) - Opts.setNoDLLStorageClassVisibility(parseVisibility(O, Args, Diags)); - else - Opts.setNoDLLStorageClassVisibility(HiddenVisibility); - - // Translate dllimport external declarations to default visibility, by - // default. - if (Arg *O = Args.getLastArg(OPT_fvisibility_externs_dllimport_EQ)) - Opts.setExternDeclDLLImportVisibility(parseVisibility(O, Args, Diags)); - else - Opts.setExternDeclDLLImportVisibility(DefaultVisibility); - - // Translate external declarations without an explicit DLL storage class - // to hidden visibility, by default. - if (Arg *O = Args.getLastArg(OPT_fvisibility_externs_nodllstorageclass_EQ)) - Opts.setExternDeclNoDLLStorageClassVisibility( - parseVisibility(O, Args, Diags)); - else - Opts.setExternDeclNoDLLStorageClassVisibility(HiddenVisibility); - } - if (Args.hasArg(OPT_ftrapv)) { Opts.setSignedOverflowBehavior(LangOptions::SOB_Trapping); // Set the handler, if one is specified. |