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