Message ID | 54905559.5070602@arm.com |
---|---|
State | New |
Headers | show |
On Tue, 16 Dec 2014, Renlin Li wrote: > Hi all, > > According to ACLE 2.0, the value of __ARM_SIZEOF_WCHAR_T should be defined in > terms of byte, which means it should be 2 or 4. This patch corrects the error > in arm backend. What error? builtin_define_type_sizeof does define a size in bytes (it uses TYPE_SIZE_UNIT). WCHAR_TYPE_SIZE should die, as all the relevant information can be deduced from WCHAR_TYPE (and should be deduced via MODIFIED_WCHAR_TYPE being used to set wchar_type_node, so that -fshort-wchar is handled correctly).
On 17/12/14 00:29, Joseph Myers wrote: > On Tue, 16 Dec 2014, Renlin Li wrote: > >> Hi all, >> >> According to ACLE 2.0, the value of __ARM_SIZEOF_WCHAR_T should be defined in >> terms of byte, which means it should be 2 or 4. This patch corrects the error >> in arm backend. > What error? builtin_define_type_sizeof does define a size in bytes (it > uses TYPE_SIZE_UNIT). WCHAR_TYPE_SIZE should die, as all the relevant > information can be deduced from WCHAR_TYPE (and should be deduced via > MODIFIED_WCHAR_TYPE being used to set wchar_type_node, so that > -fshort-wchar is handled correctly). > Hi Joseph, Yes, I have checked the code, and you are right. Thank you for explaining it. Please ignore this patch. Regards, Renlin Li
diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h index d850982..2c57182 100644 --- a/gcc/config/arm/arm.h +++ b/gcc/config/arm/arm.h @@ -74,8 +74,8 @@ extern char arm_arch_name[]; builtin_define_with_int_value ( \ "__ARM_SIZEOF_MINIMAL_ENUM", \ flag_short_enums ? 1 : 4); \ - builtin_define_type_sizeof ("__ARM_SIZEOF_WCHAR_T", \ - wchar_type_node); \ + builtin_define_with_int_value ("__ARM_SIZEOF_WCHAR_T", \ + WCHAR_TYPE_SIZE / 8); \ if (TARGET_ARM_ARCH_PROFILE) \ builtin_define_with_int_value ( \ "__ARM_ARCH_PROFILE", TARGET_ARM_ARCH_PROFILE); \