Re: [PATCH] libgccjit: Add ability to get the alignment of a type

2024-06-28 Thread Rainer Orth
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

2024-06-28 Thread Iain Sandoe
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

2024-06-28 Thread Iain Sandoe
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