Move the logic for determining the `wchar_t` type information into the
driver. Rather than passing the single bit of information of
`-fshort-wchar` indicate to the frontend the desired type of `wchar_t`
through a new `-cc1` option of `-fwchar-type` and indicate the
signedness through `-f{,no-}signed-wchar`. This replicates the current
logic which was spread throughout Basic into the
`RenderCharacterOptions`.
Most of the changes to the tests are to ensure that the frontend uses
the correct type. Add a new test set under `test/Driver/wchar_t.c` to
ensure that we calculate the proper types for the various cases.
llvm-svn: 315126
13 lines
745 B
C
13 lines
745 B
C
// RUN: %clang_cc1 -triple armv7a-linux-gnueabi -emit-llvm -o - %s | FileCheck -check-prefix=DEFAULT %s
|
|
// RUN: %clang_cc1 -triple armv7a-linux-gnueabi -emit-llvm -o - %s -fshort-enums | FileCheck -check-prefix=SHORT-ENUM %s
|
|
// RUN: %clang_cc1 -triple armv7a-linux-gnueabi -emit-llvm -o - %s -fwchar-type=short -fno-signed-wchar | FileCheck -check-prefix=SHORT-WCHAR %s
|
|
|
|
// DEFAULT: !{{[0-9]+}} = !{i32 1, !"wchar_size", i32 4}
|
|
// DEFAULT: !{{[0-9]+}} = !{i32 1, !"min_enum_size", i32 4}
|
|
|
|
// SHORT-WCHAR: !{{[0-9]+}} = !{i32 1, !"wchar_size", i32 2}
|
|
// SHORT-WCHAR: !{{[0-9]+}} = !{i32 1, !"min_enum_size", i32 4}
|
|
|
|
// SHORT_ENUM: !{{[0-9]+}} = !{i32 1, !"wchar_size", i32 4}
|
|
// SHORT-ENUM: !{{[0-9]+}} = !{i32 1, !"min_enum_size", i32 1}
|