Re: [PATCH] libgccjit: Add ability to get the alignment of a type
David Malcolm 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", | ~~~ | 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). Rainer -- - Rainer Orth, Center for Biotechnology, Bielefeld University
Re: [PATCH] libgccjit: Add ability to get the alignment of a type
Hi Folks, > On 28 Jun 2024, at 12:50, Rainer Orth wrote: > > David Malcolm 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", > | > ~~~ > | 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
Re: [PATCH] libgccjit: Add ability to get the alignment of a type
Hi Folks, As noted, it seems to me that the fail here is false positives, but it still needs handling. > On 29 Jun 2024, at 02:28, Iain Sandoe wrote: >> On 28 Jun 2024, at 12:50, Rainer Orth wrote: > … I am going to fix this with the obvious (provide a default init for the > vars) - later today. Fixed as attached, Iain 0001-jit-Fix-Darwin-bootstrap-after-r15-1699.patch Description: Binary data