tinycc-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Tinycc-devel] Issues with default-initialization of bitfields


From: Christian Jullien
Subject: Re: [Tinycc-devel] Issues with default-initialization of bitfields
Date: Sat, 5 Sep 2020 06:18:31 +0200

Thanks, it seems to be backend dependent.

More feedbacks:

On RPi 32bits (arm), tested with tcc, gcc and clang:
jullien@sims4:~ $ tcc foo.c && ./a.out
50
132
a.out: foo.c:11: main: Assertion `x.bits24==0' failed.
Aborted

jullien@sims4:~ $ gcc foo.c && ./a.out
0
0
jullien@sims4:~ $ clang foo.c && ./a.out
0
0

On RPi 64bits (aarch64):
jullien@sims64:~ $ tcc foo.c && ./a.out
0
0

On Windows x64 (tcc && cl):
c:\usr\jullien\openlisp>tcc -m64 foo.c && foo
124
12234828
Assertion failed: x.bits24==0, file foo.c, line 12

c:\usr\jullien\openlisp>cl -nologo foo.c && foo
foo.c
0
0

On Windows x86:
c:\usr\jullien\openlisp>tcc -m32 foo.c && foo
40
16402
Assertion failed: x.bits24==0, file foo.c, line 12

Btw, you can notice that the error message differs from Linux to Windows.

-----Original Message-----
From: Tinycc-devel [mailto:tinycc-devel-bounces+eligis=orange.fr@nongnu.org] On 
Behalf Of Petr Skocik
Sent: Friday, September 04, 2020 23:07
To: tinycc-devel@nongnu.org
Subject: [Tinycc-devel] Issues with default-initialization of bitfields

Hi.

I don't know if this is known, but tinycc seems to have some issues
zero-initializing bitfields.

Here's an example program:

#include <stdio.h>
#include <assert.h>
#include <stdint.h>
typedef struct TYPE TYPE;
struct TYPE { uint32_t bit:1,bits7:7,bits24:24; int32_t upper; };
int main()
{
    TYPE x = (TYPE){.bit=1};
    fprintf(stderr,"%u\n", x.bits7); //tends to be nonzero!
    fprintf(stderr,"%u\n", x.bits24); //tends to be nonzero!
    assert(x.upper==0); //OK
    assert(x.bits24==0); //tends to fail on tcc
    assert(x.bits7==0); //tends to fail on tcc
}

Regards,
Petr Skocik


_______________________________________________
Tinycc-devel mailing list
Tinycc-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/tinycc-devel




reply via email to

[Prev in Thread] Current Thread [Next in Thread]