aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorJan Svoboda <jan_svoboda@apple.com>2021-01-22 09:13:34 +0100
committerJan Svoboda <jan_svoboda@apple.com>2021-01-22 09:32:01 +0100
commitff5f42e413386b1b3730879abf7b35756891e1c3 (patch)
treedcb66f2d74c58a48eede1449c38b4dc19d47252d /clang/lib/Frontend/CompilerInvocation.cpp
parentc953a8334707951d172e8061c8dc9054eb0c5c3f (diff)
downloadllvm-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.cpp57
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.