re PR c++/53505 (bitfield with bool type generated broken object file)
PR tree-optimization/53505 * c-c++-common/torture/pr53505.c: New test. From-SVN: r187931
This commit is contained in:
parent
5d497b05fe
commit
512d321def
2 changed files with 47 additions and 0 deletions
|
@ -1,3 +1,8 @@
|
|||
2012-05-28 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR tree-optimization/53505
|
||||
* c-c++-common/torture/pr53505.c: New test.
|
||||
|
||||
2012-05-27 Nathan Sidwell <nathan@acm.org>
|
||||
|
||||
* gcc.dg/stmt-expr-4.c: New.
|
||||
|
|
42
gcc/testsuite/c-c++-common/torture/pr53505.c
Normal file
42
gcc/testsuite/c-c++-common/torture/pr53505.c
Normal file
|
@ -0,0 +1,42 @@
|
|||
/* PR tree-optimization/53505 */
|
||||
/* { dg-do run } */
|
||||
|
||||
#include <stdbool.h>
|
||||
|
||||
struct A
|
||||
{
|
||||
unsigned int a;
|
||||
unsigned char c1, c2;
|
||||
bool b1 : 1;
|
||||
bool b2 : 1;
|
||||
bool b3 : 1;
|
||||
};
|
||||
|
||||
void
|
||||
foo (const struct A *x, int y)
|
||||
{
|
||||
int s = 0, i;
|
||||
for (i = 0; i < y; ++i)
|
||||
{
|
||||
const struct A a = x[i];
|
||||
s += a.b1 ? 1 : 0;
|
||||
}
|
||||
if (s != 0)
|
||||
__builtin_abort ();
|
||||
}
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
struct A x[100];
|
||||
int i;
|
||||
__builtin_memset (x, -1, sizeof (x));
|
||||
for (i = 0; i < 100; i++)
|
||||
{
|
||||
x[i].b1 = false;
|
||||
x[i].b2 = false;
|
||||
x[i].b3 = false;
|
||||
}
|
||||
foo (x, 100);
|
||||
return 0;
|
||||
}
|
Loading…
Add table
Reference in a new issue