re PR middle-end/33631 (auto structure not initialized correctly)
2008-02-04 Richard Guenther <rguenther@suse.de> PR middle-end/33631 * expr.c (count_type_elements): Give for unions instead of guessing. * gcc.c-torture/execute/pr33631.c: New testcase. From-SVN: r132096
This commit is contained in:
parent
70c7fe74f4
commit
22199fd25d
@ -1,3 +1,9 @@
|
||||
2008-02-04 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR middle-end/33631
|
||||
* expr.c (count_type_elements): Give for unions instead of
|
||||
guessing.
|
||||
|
||||
2008-02-04 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR middle-end/35043
|
||||
|
@ -4975,14 +4975,7 @@ count_type_elements (const_tree type, bool allow_flexarr)
|
||||
|
||||
case UNION_TYPE:
|
||||
case QUAL_UNION_TYPE:
|
||||
{
|
||||
/* Ho hum. How in the world do we guess here? Clearly it isn't
|
||||
right to count the fields. Guess based on the number of words. */
|
||||
HOST_WIDE_INT n = int_size_in_bytes (type);
|
||||
if (n < 0)
|
||||
return -1;
|
||||
return n / UNITS_PER_WORD;
|
||||
}
|
||||
return -1;
|
||||
|
||||
case COMPLEX_TYPE:
|
||||
return 2;
|
||||
|
@ -1,3 +1,8 @@
|
||||
2008-02-04 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR middle-end/33631
|
||||
* gcc.c-torture/execute/pr33631.c: New testcase.
|
||||
|
||||
2008-02-04 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR middle-end/35043
|
||||
|
14
gcc/testsuite/gcc.c-torture/execute/pr33631.c
Normal file
14
gcc/testsuite/gcc.c-torture/execute/pr33631.c
Normal file
@ -0,0 +1,14 @@
|
||||
typedef union
|
||||
{
|
||||
int __lock;
|
||||
} pthread_mutex_t;
|
||||
|
||||
extern void abort (void);
|
||||
|
||||
int main()
|
||||
{
|
||||
struct { int c; pthread_mutex_t m; } r = { .m = 0 };
|
||||
if (r.c != 0)
|
||||
abort ();
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue
Block a user