Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/gcc.dg/Wconversion-pr34389.c @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
/* PR 34389 */ /* { dg-do compile } */ /* { dg-options "-Wconversion -Wsign-conversion" } */ /* { dg-require-effective-target int32plus } */ short mask1(short x) { short y = 0x7fff; return x & y; } short mask2(short ssx) { short ssy; short ssz; ssz = ((int)ssx) & 0x7fff; ssy = ((int)ssx) | 0x7fff; ssz = ((int)ssx) ^ 0x7fff; return ssx & 0x7fff; } short mask3(int si, unsigned int ui) { short ss; unsigned short us; ss = si & 0x7fff; ss = si & 0xAAAA; /* { dg-warning "conversion" } */ ss = ui & 0x7fff; ss = ui & 0xAAAA; /* { dg-warning "conversion" } */ us = si & 0x7fff; us = si & 0xAAAA; /* { dg-warning "conversion" } */ us = ui & 0x7fff; us = ui & 0xAAAA; /* 0xAAAA is zero-extended, thus it masks the upper bits of 'ui' making it fit in 'us'. */ return ss; } short mask4(int x, int y) { return x & y; /* { dg-warning "conversion" } */ } short mask5(int x) { return x & -1; /* { dg-warning "conversion" } */ } short mask6(short x) { return x & -1; }