+2004-08-06 Mark Mitchell <mark@codesourcery.com>
+
+ * config/arm/symbian.h (CC1_SPEC): Avoid passing duplicate options
+ to the compiler. Use -fshort-wchar by default.
+
2004-08-06 Pat Haugen <pthaugen@us.ibm.com>
* params.def (PARAM_MIN_CROSSJUMP_INSNS): New.
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
+2004-08-06 Mark Mitchell <mark@codesourcery.com>
+
+ * 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 <paul@codesourcery.com>
* gfortran.dg/ret_array_1.f90: New test.
/* { 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];
--- /dev/null
+/* { 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];
+