public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "aldyh at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug ipa/109886] UBSAN error: shift exponent 64 is too large for 64-bit type when compiling gcc.c-torture/compile/pr96796.c
Date: Mon, 22 May 2023 18:04:41 +0000	[thread overview]
Message-ID: <bug-109886-4-k80ESnnurD@http.gcc.gnu.org/bugzilla/> (raw)
In-Reply-To: <bug-109886-4@http.gcc.gnu.org/bugzilla/>

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109886

--- Comment #2 from Aldy Hernandez <aldyh at gcc dot gnu.org> ---
(In reply to Andrew Pinski from comment #1)
> Breakpoint 6, range_cast (r=..., type=<record_type 0x7ffff73eda80 S0>) at
> /home/apinski/src/upstream-gcc/gcc/gcc/range-op.cc:4853
> 4853      Value_Range tmp (r);
> 
> 
> Confirmed.
> The code looks like:
> ```
> int g_5, func_1_l_32, func_50___trans_tmp_31;
> ...
> int func_1() { func_50(g_3_4, g_5, func_1_l_32, 8, 3); }
> ...
> struct S0 *func_50(int p_51, struct S0 p_52, struct S1 p_53, int p_54,
>                    int p_55) {
> ...
> }
> ```
> 
> Code in gcc:
>           if (TREE_CODE (arg) == SSA_NAME
>               && param_type
>               /* Limit the ranger query to integral types as the rest
>                  of this file uses value_range's, which only hold
>                  integers and pointers.  */
>               && irange::supports_p (TREE_TYPE (arg))
>               && get_range_query (cfun)->range_of_expr (vr, arg)
>               && !vr.undefined_p ())
>             {
>               value_range resvr = vr;
>               range_cast (resvr, param_type);
>               if (!resvr.undefined_p () && !resvr.varying_p ())
>                 ipa_set_jfunc_vr (jfunc, &resvr);
>               else
>                 gcc_assert (!jfunc->m_vr);
>             }
>           else
>             gcc_assert (!jfunc->m_vr);
> 
> 
> Maybe there should be an extra check for `irange::supports_p (param_type)`
> too to catch the case where param_type type is not supported at all.

If irange::supports_p (TREE_TYPE (arg)) is true, we're talking about an
integer/pointer, but if range_cast is being called on a parm_type of
RECORD_TYPE, someone's trying to cast a structure to an integer.  Is that the
intent here, because that will not work with ranges??

  parent reply	other threads:[~2023-05-22 18:04 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-17  8:55 [Bug ipa/109886] New: " jamborm at gcc dot gnu.org
2023-05-17 19:07 ` [Bug ipa/109886] " pinskia at gcc dot gnu.org
2023-05-22 18:04 ` aldyh at gcc dot gnu.org [this message]
2023-05-22 18:07 ` pinskia at gcc dot gnu.org
2023-05-22 18:13 ` aldyh at gcc dot gnu.org
2023-05-23 16:14 ` jamborm at gcc dot gnu.org
2023-06-07 20:57 ` amacleod at redhat dot com
2023-06-08 12:27 ` jamborm at gcc dot gnu.org
2023-06-08 19:00 ` amacleod at redhat dot com
2023-06-09  9:00 ` jamborm at gcc dot gnu.org
2023-06-09 13:14 ` amacleod at redhat dot com
2023-06-09 13:58 ` amacleod at redhat dot com
2023-06-09 16:37 ` cvs-commit at gcc dot gnu.org
2023-06-10  1:44 ` amacleod at redhat dot com
2023-06-13  9:16 ` jamborm at gcc dot gnu.org

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=bug-109886-4-k80ESnnurD@http.gcc.gnu.org/bugzilla/ \
    --to=gcc-bugzilla@gcc.gnu.org \
    --cc=gcc-bugs@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).