This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH][4/N] Introduce new inline functions for GET_MODE_UNIT_SIZE and GET_MODE_UNIT_PRECISION


On 26 Aug 2015, at 23:27, Oleg Endo <oleg.endo@t-online.de> wrote:

> 
> On 19 Aug 2015, at 22:35, Jeff Law <law@redhat.com> 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  <david.sherwood@arm.com>
>>> 
>>> 	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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]