From 2ed9e5272e6952e34d5c23242136e37b9f65c630 Mon Sep 17 00:00:00 2001 From: Mark Mitchell Date: Fri, 6 Aug 2004 17:51:45 +0000 Subject: [PATCH] symbian.h (CC1_SPEC): Avoid passing duplicate options to the compiler. * config/arm/symbian.h (CC1_SPEC): Avoid passing duplicate options to the compiler. Use -fshort-wchar by default. * gcc.dg/symbian4.c: Expect a 2-byte wchar_t, not a 4-byte wchar_t. * gcc.dg/symbian5.c: Test -fno-short-wchar. From-SVN: r85648 --- gcc/ChangeLog | 5 +++++ gcc/config/arm/symbian.h | 14 ++++++++++++-- gcc/testsuite/ChangeLog | 6 ++++++ gcc/testsuite/gcc.dg/symbian4.c | 4 ++-- gcc/testsuite/gcc.dg/symbian5.c | 8 ++++++++ 5 files changed, 33 insertions(+), 4 deletions(-) create mode 100644 gcc/testsuite/gcc.dg/symbian5.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1318c7cd2c2..a55a3d92921 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2004-08-06 Mark Mitchell + + * config/arm/symbian.h (CC1_SPEC): Avoid passing duplicate options + to the compiler. Use -fshort-wchar by default. + 2004-08-06 Pat Haugen * params.def (PARAM_MIN_CROSSJUMP_INSNS): New. diff --git a/gcc/config/arm/symbian.h b/gcc/config/arm/symbian.h index 4ad4f46b74a..c03b428e692 100644 --- a/gcc/config/arm/symbian.h +++ b/gcc/config/arm/symbian.h @@ -34,8 +34,18 @@ Make all symbols hidden by default. Symbian OS expects that all exported symbols will be explicitly marked with - "__declspec(dllexport)". */ -#define CC1_SPEC "-fno-builtin -fvisibility=hidden -fno-short-enums" + "__declspec(dllexport)". + + Enumeration types use 4 bytes, even if the enumerals are small, + unless explicitly overridden. + + The wchar_t type is a 2-byte type, unless explicitly + overridden. */ +#define CC1_SPEC \ + "%{!fbuiltin:%{!fno-builtin:-fno-builtin}} " \ + "%{!fvisibility=*:-fvisibility=hidden} " \ + "%{!fshort-enums:%{!fno-short-enums:-fno-short-enums}} " \ + "%{!fshort-wchar:%{!fno-short-wchar:-fshort-wchar}} " #define CC1PLUS_SPEC CC1_SPEC /* Symbian OS does not use crt0.o, unlike the generic unknown-elf diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index f2d9a977be5..63ca7a78c50 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2004-08-06 Mark Mitchell + + * gcc.dg/symbian4.c: Expect a 2-byte wchar_t, not a 4-byte + wchar_t. + * gcc.dg/symbian5.c: Test -fno-short-wchar. + 2004-08-06 Paul Brook * gfortran.dg/ret_array_1.f90: New test. diff --git a/gcc/testsuite/gcc.dg/symbian4.c b/gcc/testsuite/gcc.dg/symbian4.c index 20585a71320..aede7f5c66c 100644 --- a/gcc/testsuite/gcc.dg/symbian4.c +++ b/gcc/testsuite/gcc.dg/symbian4.c @@ -1,5 +1,5 @@ /* { dg-do compile { target arm*-*-symbianelf* } } */ -/* Check that wchar_t is a 4-byte type. */ +/* Check that wchar_t is a 2-byte type. */ extern int i[sizeof (L'a')]; -int i[4]; +int i[2]; diff --git a/gcc/testsuite/gcc.dg/symbian5.c b/gcc/testsuite/gcc.dg/symbian5.c new file mode 100644 index 00000000000..0bde6b0cba3 --- /dev/null +++ b/gcc/testsuite/gcc.dg/symbian5.c @@ -0,0 +1,8 @@ +/* { dg-do compile { target arm*-*-symbianelf* } } */ +/* { dg-options "-fno-short-wchar" } */ +/* Check that wchar_t is a 4-byte type when -fno-short-wchar is + used. */ + +extern int i[sizeof (L'a')]; +int i[4]; + -- 2.30.2