forked from OSchip/llvm-project
parent
e89f310952
commit
c9b5f35ec1
|
@ -771,6 +771,8 @@ def fshort_enums : Flag<["-"], "fshort-enums">, Group<f_Group>, Flags<[CC1Option
|
|||
def : Flag<["-"], "freorder-blocks">, Group<clang_ignored_f_Group>;
|
||||
def fshort_wchar : Flag<["-"], "fshort-wchar">, Group<f_Group>, Flags<[CC1Option]>,
|
||||
HelpText<"Force wchar_t to be a short unsigned int">;
|
||||
def fno_short_wchar : Flag<["-"], "fno-short-wchar">, Group<f_Group>, Flags<[CC1Option]>,
|
||||
HelpText<"Force wchar_t to be an unsigned int">;
|
||||
def fshow_overloads_EQ : Joined<["-"], "fshow-overloads=">, Group<f_Group>, Flags<[CC1Option]>,
|
||||
HelpText<"Which overload candidates to show when overload resolution fails: "
|
||||
"best|all; defaults to all">;
|
||||
|
|
|
@ -3575,7 +3575,8 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
|
|||
|
||||
// -fshort-wchar default varies depending on platform; only
|
||||
// pass if specified.
|
||||
if (Arg *A = Args.getLastArg(options::OPT_fshort_wchar))
|
||||
if (Arg *A = Args.getLastArg(options::OPT_fshort_wchar,
|
||||
options::OPT_fno_short_wchar))
|
||||
A->render(Args, CmdArgs);
|
||||
|
||||
// -fno-pascal-strings is default, only pass non-default.
|
||||
|
|
|
@ -1333,7 +1333,7 @@ static void ParseLangArgs(LangOptions &Opts, ArgList &Args, InputKind IK,
|
|||
Opts.ModulesDeclUse = Args.hasArg(OPT_fmodules_decluse);
|
||||
Opts.CharIsSigned = Opts.OpenCL || !Args.hasArg(OPT_fno_signed_char);
|
||||
Opts.WChar = Opts.CPlusPlus && !Args.hasArg(OPT_fno_wchar);
|
||||
Opts.ShortWChar = Args.hasArg(OPT_fshort_wchar);
|
||||
Opts.ShortWChar = Args.hasFlag(OPT_fshort_wchar, OPT_fno_short_wchar, false);
|
||||
Opts.ShortEnums = Args.hasArg(OPT_fshort_enums);
|
||||
Opts.Freestanding = Args.hasArg(OPT_ffreestanding);
|
||||
Opts.NoBuiltin = Args.hasArg(OPT_fno_builtin) || Opts.Freestanding;
|
||||
|
|
|
@ -148,3 +148,10 @@
|
|||
// RUN: -fstrength-reduce -fno-strength-reduce \
|
||||
// RUN: %s 2>&1 | FileCheck --check-prefix=IGNORE %s
|
||||
// IGNORE-NOT: error: unknown argument
|
||||
|
||||
// RUN: %clang -### -fshort-wchar -fno-short-wchar %s 2>&1 | FileCheck -check-prefix=CHECK-WCHAR1 %s
|
||||
// RUN: %clang -### -fno-short-wchar -fshort-wchar %s 2>&1 | FileCheck -check-prefix=CHECK-WCHAR2 %s
|
||||
// CHECK-WCHAR1: -fno-short-wchar
|
||||
// CHECK-WCHAR1-NOT: -fshort-wchar
|
||||
// CHECK-WCHAR2: -fshort-wchar
|
||||
// CHECK-WCHAR2-NOT: -fno-short-wchar
|
||||
|
|
|
@ -202,6 +202,12 @@
|
|||
// SHORTWCHAR: #define __WCHAR_TYPE__ unsigned short
|
||||
// SHORTWCHAR: #define __WCHAR_WIDTH__ 16
|
||||
//
|
||||
// RUN: %clang_cc1 -E -dM -fno-short-wchar < /dev/null | FileCheck -check-prefix SHORTWCHAR2 %s
|
||||
//
|
||||
// SHORTWCHAR2: #define __SIZEOF_WCHAR_T__ 4
|
||||
// SHORTWCHAR2: #define __WCHAR_WIDTH__ 32
|
||||
// Other definitions vary from platform to platform
|
||||
//
|
||||
// RUN: %clang_cc1 -E -dM -ffreestanding -triple=aarch64-none-none < /dev/null | FileCheck -check-prefix AARCH64 %s
|
||||
//
|
||||
// AARCH64:#define _LP64 1
|
||||
|
|
Loading…
Reference in New Issue