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, C] Mixed pointer types in call to streamer_tree_cache_lookup() in gcc/lto-streamer-out.c


On Mon, Sep 3, 2012 at 6:10 PM, Andris Pavenis <andris.pavenis@iki.fi> wrote:
> On 09/03/2012 03:27 PM, Richard Guenther wrote:
>>
>> On Sat, Sep 1, 2012 at 2:21 PM, Andris Pavenis <andris.pavenis@iki.fi>
>> wrote:
>>>
>>> uint32_t * is used as a 3rd parameter in call to
>>> streamer_tree_cache_lookup()
>>> in 2 places in gcc/lto-streamer-out.c when the procedure prototype have
>>> unsigned *. They are not guaranteed to be the same for all targets
>>> (I got error when building for DJGPP)
>>
>>
>> Ok.
>
>
> I do not have SVN write access, so I cannot commit myself

Hmm, OTOH your patch looks wrong as

@@ -1131,7 +1131,7 @@ lto_output_decl_state_refs (struct output_block *ob,
                            struct lto_out_decl_state *state)
 {
   unsigned i;
-  uint32_t ref;
+  unsigned ref;
   tree decl;

   /* Write reference to FUNCTION_DECL.  If there is not function,

conflicts with

  streamer_tree_cache_lookup (ob->writer_cache, decl, &ref);
  gcc_assert (ref != (unsigned)-1);
  lto_output_data_stream (out_stream, &ref, sizeof (uint32_t));

where the on-disk format expects uint32_t layout.  Thus I think
streamer_tree_cache_lookup should instead use uint32_t consistently.

Richard.

> Andris
>
>
>>
>> Thanks,
>> Richard.
>>
>>> Andris
>>>
>>> ChangeLog entry
>>>
>>> 2012-09-01  Andris Pavenis <andris.pavenis@iki.fi>
>>>
>>>          * lto-streamer-out.c (write_global_references,
>>> lto_output_decl_state_refs):
>>>          Fix parameter type in call to streamer_tree_cache_lookup
>>
>>
>


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