On 26 Aug 2015, at 23:27, Oleg Endo <[email protected]> wrote:
>
> On 19 Aug 2015, at 22:35, Jeff Law <[email protected]> wrote:
>
>> On 08/19/2015 06:29 AM, David Sherwood wrote:
>>>> I asked Richard S. to give this a once-over which he did. However, he
>>>> technically can't approve due to the way his maintainership position was
>>>> worded.
>>>>
>>>> The one request would be a function comment for emit_mode_unit_size and
>>>> emit_mode_unit_precision. OK with that change.
>>> Thanks. Here's a new patch with the comments added.
>>>
>>> Good to go?
>>> David.
>>>
>>> ChangeLog:
>>>
>>> 2015-08-19 David Sherwood <[email protected]>
>>>
>>> gcc/
>>> * genmodes.c (emit_mode_unit_size_inline): New function.
>>> (emit_mode_unit_precision_inline): New function.
>>> (emit_insn_modes_h): Emit new #define. Emit new functions.
>>> (emit_mode_unit_size): New function.
>>> (emit_mode_unit_precision): New function.
>>> (emit_mode_adjustments): Add mode_unit_size adjustments.
>>> (emit_insn_modes_c): Emit new arrays.
>>> * machmode.h (GET_MODE_UNIT_SIZE, GET_MODE_UNIT_PRECISION): Update to
>>> use new inline methods.
>>
>> Thanks, this is OK for the trunk.
>
> It seems this broke sh-elf, at least when compiling on OSX with its native
> clang.
>
> ../../gcc-trunk/gcc/machmode.h:228:43: error: redefinition of
> 'mode_unit_size' with a different type:
> 'const unsigned char [56]' vs 'unsigned char [56]'
> extern CONST_MODE_UNIT_SIZE unsigned char mode_unit_size[NUM_MACHINE_MODES];
> ^
> ./insn-modes.h:417:24: note: previous definition is here
> extern unsigned char mode_unit_size[NUM_MACHINE_MODES];
> ^
This following fixes the problem for me:
Index: gcc/genmodes.c
===================================================================
--- gcc/genmodes.c (revision 227221)
+++ gcc/genmodes.c (working copy)
@@ -1063,7 +1063,7 @@
unsigned char\n\
mode_unit_size_inline (machine_mode mode)\n\
{\n\
- extern unsigned char mode_unit_size[NUM_MACHINE_MODES];\n\
+ extern CONST_MODE_UNIT_SIZE unsigned char
mode_unit_size[NUM_MACHINE_MODES];\n\
switch (mode)\n\
{");
Cheers,
Oleg