Hi Folks,

> On 28 Jun 2024, at 12:50, Rainer Orth <r...@cebitec.uni-bielefeld.de> wrote:
> 
> David Malcolm <dmalc...@redhat.com> writes:
> 
>> On Thu, 2024-04-04 at 18:59 -0400, Antoni Boucher wrote:
>>> Hi.
>>> This patch adds a new API to produce an rvalue representing the 
>>> alignment of a type.
>>> Thanks for the review.
>> 
>> Patch looks good to me (but may need the usual ABI version updates when
>> merging).
> 
> This patch broke macOS bootstrap:
> 
> /vol/gcc/src/hg/master/darwin/gcc/jit/jit-recording.cc: In member function 
> 'virtual gcc::jit::recording::string* 
> gcc::jit::recording::memento_of_typeinfo::make_debug_string()': 
> /vol/gcc/src/hg/master/darwin/gcc/jit/jit-recording.cc:5529:30: error: 
> 'ident' may be used uninitialized [-Werror=maybe-uninitialized]
> 5529 |   return string::from_printf (m_ctxt,
>      |          ~~~~~~~~~~~~~~~~~~~~^~~~~~~~
> 5530 |                               "%s (%s)",
>      |                               ~~~~~~~~~~
> 5531 |                               ident,
>      |                               ~~~~~~
> 5532 |                               m_type->get_debug_string ());
>      |                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> /vol/gcc/src/hg/master/darwin/gcc/jit/jit-recording.cc:5519:15: note: 'ident' 
> was declared here
> 5519 |   const char* ident;
>      |               ^~~~~
> 
> /vol/gcc/src/hg/master/darwin/gcc/jit/jit-recording.cc: In member function 
> 'virtual void 
> gcc::jit::recording::memento_of_typeinfo::write_reproducer(gcc::jit::reproducer&)':
>           
> /vol/gcc/src/hg/master/darwin/gcc/jit/jit-recording.cc:5552:11: error: 'type' 
> may be used uninitialized [-Werror=maybe-uninitialized]
> 5552 |   r.write ("  gcc_jit_rvalue *%s =\n"
>      |   ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
> 5553 |     "    gcc_jit_context_new_%sof (%s, /* gcc_jit_context *ctxt */\n"
>      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 5554 |     "                                (gcc_jit_type *) %s); /* 
> gcc_jit_type *type */\n",
>      |     
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 5555 |     id,
>      |     ~~~
> 5556 |     type,
>      |     ~~~~~
> 5557 |     r.get_identifier (get_context ()),
>      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 5558 |     r.get_identifier (m_type));
>      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~
> /vol/gcc/src/hg/master/darwin/gcc/jit/jit-recording.cc:5541:15: note: 'type' 
> was declared here
> 5541 |   const char* type;
>      |               ^~~~
> 
> I wonder how this can have worked anywhere (apart from jit not being
> enabled by default on non-Darwin targets).

Well, in principle, all values of the m_info_type enum are covered (there are 
only 2) - and therefore the two vars should be seen as initialized on some 
path.   It is quite disappointing that we cannot track this in a 12 line 
function with such a small enumeration… 

… I am going to fix this with the obvious (provide a default init for the vars) 
- later today.

Iain


Reply via email to