public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug jit/95498] New: unhandled conversion
@ 2020-06-03 13:14 bouanto at zoho dot com
2020-06-06 12:42 ` [Bug jit/95498] " bouanto at zoho dot com
` (7 more replies)
0 siblings, 8 replies; 9+ messages in thread
From: bouanto at zoho dot com @ 2020-06-03 13:14 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95498
Bug ID: 95498
Summary: unhandled conversion
Product: gcc
Version: 10.1.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: jit
Assignee: dmalcolm at gcc dot gnu.org
Reporter: bouanto at zoho dot com
Target Milestone: ---
Created attachment 48667
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=48667&action=edit
Reproducer for the bug
Hi.
The attached reproducer fails with the following error:
libgccjit.so: error: unhandled conversion
input expression:
<integer_cst 0x7fd8f5909f60 type <integer_type 0x7fd8f591e5e8> constant
visited 1>
requested type:
<integer_type 0x7fd8f5a56d20 SI
size <integer_cst 0x7fd8f5909df8 type <integer_type 0x7fd8f591e0a8
bitsizetype> constant 32>
unit-size <integer_cst 0x7fd8f5909e10 type <integer_type 0x7fd8f591e000
sizetype> constant 4>
align:32 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type
0x7fd8f5a56d20 precision:32 min <integer_cst 0x7fd8f5a48468 -2147483648> max
<integer_cst 0x7fd8f5a61c18 2147483647>>
libgccjit.so: error: unhandled conversion
input expression:
<rshift_expr 0x7fd8f5a58eb0
type <integer_type 0x7fd8f591e888 public DI
size <integer_cst 0x7fd8f5909bb8 constant 64>
unit-size <integer_cst 0x7fd8f5909bd0 constant 8>
align:64 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type
0x7fd8f591e888 precision:64 min <integer_cst 0x7fd8f5909e70
-9223372036854775808> max <integer_cst 0x7fd8f5909ea0 9223372036854775807>
pointer_to_this <pointer_type 0x7fd8f592edc8>>
visited
arg:0 <nop_expr 0x7fd8f5a41ca0 type <integer_type 0x7fd8f591e888>
visited
arg:0 <var_decl 0x7fd8f5a5c2d0 returnValue type <integer_type
0x7fd8f591e930>
visited unsigned DI (null):0:0 size <integer_cst 0x7fd8f5909bb8 64>
unit-size <integer_cst 0x7fd8f5909bd0 8>
align:64 warn_if_not_align:0 context <function_decl 0x7fd8f5947500
_ZN17compiler_builtins3int4udiv12__udivmoddi417h85654ff61d7f0603E> chain
<var_decl 0x7fd8f5a5c240 undefined>>>
arg:1 <bit_and_expr 0x7fd8f5a58e88 type <integer_type 0x7fd8f591e888>
readonly constant visited
arg:0 <integer_cst 0x7fd8f5a5b6c0 constant visited 63> arg:1
<integer_cst 0x7fd8f5a5b6c0 63>>>
requested type:
<integer_type 0x7fd8f5a56d20 SI
size <integer_cst 0x7fd8f5909df8 type <integer_type 0x7fd8f591e0a8
bitsizetype> constant 32>
unit-size <integer_cst 0x7fd8f5909e10 type <integer_type 0x7fd8f591e000
sizetype> constant 4>
align:32 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type
0x7fd8f5a56d20 precision:32 min <integer_cst 0x7fd8f5a48468 -2147483648> max
<integer_cst 0x7fd8f5a61c18 2147483647>>
libgccjit.so: error: unhandled conversion
input expression:
<error_mark 0x7fd8f5909ba0>
requested type:
<integer_type 0x7fd8f591e690 public unsigned SI
size <integer_cst 0x7fd8f5909df8 type <integer_type 0x7fd8f591e0a8
bitsizetype> constant 32>
unit-size <integer_cst 0x7fd8f5909e10 type <integer_type 0x7fd8f591e000
sizetype> constant 4>
align:32 warn_if_not_align:0 symtab:0 alias-set -1 canonical-type
0x7fd8f591e690 precision:32 min <integer_cst 0x7fd8f5909e28 0> max <integer_cst
0x7fd8f5909de0 4294967295>
pointer_to_this <pointer_type 0x7fd8f59347e0>>
gcc_jit_result_release: NULL result
Sorry for the size of the reproducer. If you need to, I can try making it
smaller.
Thanks to fix this bug.
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug jit/95498] unhandled conversion
2020-06-03 13:14 [Bug jit/95498] New: unhandled conversion bouanto at zoho dot com
@ 2020-06-06 12:42 ` bouanto at zoho dot com
2020-06-06 17:49 ` dmalcolm at gcc dot gnu.org
` (6 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: bouanto at zoho dot com @ 2020-06-06 12:42 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95498
--- Comment #1 from bouanto at zoho dot com ---
I'm trying to create a smaller reproducer by calling
gcc_jit_context_dump_to_file, but I don't know where to stop in gdb in order to
get the source info.
How did you do it in https://gcc.gnu.org/bugzilla//show_bug.cgi?id=95521 ?
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug jit/95498] unhandled conversion
2020-06-03 13:14 [Bug jit/95498] New: unhandled conversion bouanto at zoho dot com
2020-06-06 12:42 ` [Bug jit/95498] " bouanto at zoho dot com
@ 2020-06-06 17:49 ` dmalcolm at gcc dot gnu.org
2020-06-06 18:07 ` bouanto at zoho dot com
` (5 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: dmalcolm at gcc dot gnu.org @ 2020-06-06 17:49 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95498
--- Comment #2 from David Malcolm <dmalcolm at gcc dot gnu.org> ---
Try putting a breakpoint on add_error (there are a few classes with add_error
methods; a sufficiently smart gdb ought to put the breakpoint on all of them).
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug jit/95498] unhandled conversion
2020-06-03 13:14 [Bug jit/95498] New: unhandled conversion bouanto at zoho dot com
2020-06-06 12:42 ` [Bug jit/95498] " bouanto at zoho dot com
2020-06-06 17:49 ` dmalcolm at gcc dot gnu.org
@ 2020-06-06 18:07 ` bouanto at zoho dot com
2020-07-03 0:58 ` bouanto at zoho dot com
` (4 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: bouanto at zoho dot com @ 2020-06-06 18:07 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95498
--- Comment #3 from bouanto at zoho dot com ---
(In reply to David Malcolm from comment #2)
> Try putting a breakpoint on add_error (there are a few classes with
> add_error methods; a sufficiently smart gdb ought to put the breakpoint on
> all of them).
I added the call to gcc_jit_context_dump_to_file (ctxt, "/tmp/something.c", 1
/* update_locations */); right after create_code(ctxt) but the parameter loc is
NULL when I reach add_error in gdb so that I cannot print the line number.
It was also null when I tried with the reproducer of this issue:
https://gcc.gnu.org/bugzilla//show_bug.cgi?id=95521
Is there anything else to change in the reproducer so that it updates the
locations accordingly?
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug jit/95498] unhandled conversion
2020-06-03 13:14 [Bug jit/95498] New: unhandled conversion bouanto at zoho dot com
` (2 preceding siblings ...)
2020-06-06 18:07 ` bouanto at zoho dot com
@ 2020-07-03 0:58 ` bouanto at zoho dot com
2020-07-13 9:42 ` acoplan at gcc dot gnu.org
` (3 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: bouanto at zoho dot com @ 2020-07-03 0:58 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95498
--- Comment #4 from Antoni <bouanto at zoho dot com> ---
Created attachment 48829
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=48829&action=edit
Smaller reproducer for the bug
I was able to reduce the size of the reproducer. I attached it.
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug jit/95498] unhandled conversion
2020-06-03 13:14 [Bug jit/95498] New: unhandled conversion bouanto at zoho dot com
` (3 preceding siblings ...)
2020-07-03 0:58 ` bouanto at zoho dot com
@ 2020-07-13 9:42 ` acoplan at gcc dot gnu.org
2020-07-13 10:39 ` bouanto at zoho dot com
` (2 subsequent siblings)
7 siblings, 0 replies; 9+ messages in thread
From: acoplan at gcc dot gnu.org @ 2020-07-13 9:42 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95498
--- Comment #5 from Alex Coplan <acoplan at gcc dot gnu.org> ---
Created attachment 48867
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=48867&action=edit
Minimal reproducer
I've done some exhaustive testing of which combinations of casts are allowed.
It seems that any program of the following form is rejected with "unhandled
conversion":
T f(T x)
{
return (T)(U)x;
}
where T and U are integral types with U being strictly wider than T.
I've attached a minimal handwritten testcase that reproduces the issue. You
should be able to substitute the values passed to t_outer and t_inner for other
types and still reproduce the issue, provided that t_outer is a strictly
narrower type than t_inner.
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug jit/95498] unhandled conversion
2020-06-03 13:14 [Bug jit/95498] New: unhandled conversion bouanto at zoho dot com
` (4 preceding siblings ...)
2020-07-13 9:42 ` acoplan at gcc dot gnu.org
@ 2020-07-13 10:39 ` bouanto at zoho dot com
2021-07-18 14:10 ` cvs-commit at gcc dot gnu.org
2021-07-18 14:11 ` bouanto at zoho dot com
7 siblings, 0 replies; 9+ messages in thread
From: bouanto at zoho dot com @ 2020-07-13 10:39 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95498
--- Comment #6 from Antoni <bouanto at zoho dot com> ---
(In reply to Alex Coplan from comment #5)
> Created attachment 48867 [details]
> Minimal reproducer
>
> I've done some exhaustive testing of which combinations of casts are
> allowed. It seems that any program of the following form is rejected with
> "unhandled conversion":
>
> T f(T x)
> {
> return (T)(U)x;
> }
>
> where T and U are integral types with U being strictly wider than T.
>
> I've attached a minimal handwritten testcase that reproduces the issue. You
> should be able to substitute the values passed to t_outer and t_inner for
> other types and still reproduce the issue, provided that t_outer is a
> strictly narrower type than t_inner.
Yeah, that's what I figured out.
I sent a patch:
https://gcc.gnu.org/pipermail/jit/2020q3/001228.html
I'd like to have a review of it.
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug jit/95498] unhandled conversion
2020-06-03 13:14 [Bug jit/95498] New: unhandled conversion bouanto at zoho dot com
` (5 preceding siblings ...)
2020-07-13 10:39 ` bouanto at zoho dot com
@ 2021-07-18 14:10 ` cvs-commit at gcc dot gnu.org
2021-07-18 14:11 ` bouanto at zoho dot com
7 siblings, 0 replies; 9+ messages in thread
From: cvs-commit at gcc dot gnu.org @ 2021-07-18 14:10 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95498
--- Comment #7 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Antoni Boucher <antoyo@gcc.gnu.org>:
https://gcc.gnu.org/g:5cca4131e4aabf70a18e362620ad65a3cebf227a
commit r12-2384-g5cca4131e4aabf70a18e362620ad65a3cebf227a
Author: Antoni Boucher <bouanto@zoho.com>
Date: Sun Jul 5 19:07:30 2020 -0400
libgccjit: Handle truncation and extension for casts [PR95498]
2021-07-18 Antoni Boucher <bouanto@zoho.com>
gcc/jit/
PR target/95498
* jit-playback.c (convert): Add support to handle truncation and
extension in the convert function.
gcc/testsuite/
PR target/95498
* jit.dg/all-non-failing-tests.h: New test.
* jit.dg/test-cast.c: New test.
Signed-off-by: Antoni Boucher <bouanto@zoho.com>
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Bug jit/95498] unhandled conversion
2020-06-03 13:14 [Bug jit/95498] New: unhandled conversion bouanto at zoho dot com
` (6 preceding siblings ...)
2021-07-18 14:10 ` cvs-commit at gcc dot gnu.org
@ 2021-07-18 14:11 ` bouanto at zoho dot com
7 siblings, 0 replies; 9+ messages in thread
From: bouanto at zoho dot com @ 2021-07-18 14:11 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95498
Antoni <bouanto at zoho dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Resolution|--- |FIXED
Status|UNCONFIRMED |RESOLVED
--- Comment #8 from Antoni <bouanto at zoho dot com> ---
Fixed in master.
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2021-07-18 14:11 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-06-03 13:14 [Bug jit/95498] New: unhandled conversion bouanto at zoho dot com
2020-06-06 12:42 ` [Bug jit/95498] " bouanto at zoho dot com
2020-06-06 17:49 ` dmalcolm at gcc dot gnu.org
2020-06-06 18:07 ` bouanto at zoho dot com
2020-07-03 0:58 ` bouanto at zoho dot com
2020-07-13 9:42 ` acoplan at gcc dot gnu.org
2020-07-13 10:39 ` bouanto at zoho dot com
2021-07-18 14:10 ` cvs-commit at gcc dot gnu.org
2021-07-18 14:11 ` bouanto at zoho dot com
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).