Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.dg/warn/Wconversion-pr34389.C @ 158:494b0b89df80 default tip
...
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 25 May 2020 18:13:55 +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; /* { dg-bogus "conversion" "bogus warning" } */ } 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; }