On Sun, Jul 25, 2021 at 1:58 PM Uecker, Martin
<martin.uec...@med.uni-goettingen.de> wrote:
>
>
>
> Hi Richard,
>
> here is another case where it seems that TBAA goes
> wrong. Since this is not in a loop, it seems this
> is something else than what we discussed. Is
> this a known issue?
>
> Best,
> Martin
>
>
> #include <stdio.h>
> #include <stdlib.h>
>
> union u {
> long x;
> long long y;
> };
>
> __attribute__((noinline,noclone))
> long test(long *px, long long *py, union u *pu)
> {
> *px = 0;
> *py = 1;
>
> long xy = pu->y;
> pu->x = xy;
>
> return *px;
> }
>
> int main(void)
> {
> union u u;
> printf("%ld\n", test(&u.x, &u.y, &u));
> }
>
> https://godbolt.org/z/a9drezEza
>