[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Tinycc-devel] Floating/Double issue on arm64 in mob
From: |
Shachaf Ben-Kiki |
Subject: |
Re: [Tinycc-devel] Floating/Double issue on arm64 in mob |
Date: |
Mon, 4 Nov 2019 23:14:54 -0800 |
On Mon, Nov 4, 2019 at 10:52 PM Charles Lohr <address@hidden> wrote:
>
> Using default settings, in hash 96f1fb1, current mob head, I am having an
> internal compiler assert on arm64. The following program causes an assert.
> There are other cases but the assert remains the same.
>
> float fd;
> int main()
> {
> if( fd < 5.5 ) return 1;
> return 0;
> }
>
> root@omitted:~/apps/cnovr/lib/tinycc# ./tcc failtest.c -Iinclude
> tcc: arm64-gen.c:1781: gen_cvt_ftof: Assertion `f == VT_FLOAT || f ==
> VT_DOUBLE || f == VT_LDOUBLE' failed.
> Aborted
>
> Digging a little further, turns out f is of type 4104. I'm not sure what the
> best path forward here is. Any clues?
> _______________________________________________
> Tinycc-devel mailing list
> address@hidden
> https://lists.nongnu.org/mailman/listinfo/tinycc-devel
4104 is 0x1008, i.e. VT_FLOAT|VT_EXTERN. It looks like most of the
other backends mask VT_BTYPE (the basic type, without storage
modifiers) from t and vtop[0].type.t, so that would probably be the
simplest fix here.
(What's the process for sending patches?)
Shachaf