c-typeck.c (set_init_index): If first is equal to last, assume as if it was not a range at all.
* c-typeck.c (set_init_index): If first is equal to last, assume as if it was not a range at all. * gcc.dg/gnu99-init-1.c: Add test for [0 ... 0] range. From-SVN: r39380
This commit is contained in:
parent
4673dd2cc1
commit
ce662d4c92
@ -1,3 +1,8 @@
|
|||||||
|
2001-01-31 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
* c-typeck.c (set_init_index): If first is equal to last, assume as
|
||||||
|
if it was not a range at all.
|
||||||
|
|
||||||
2001-01-31 Alexandre Oliva <aoliva@redhat.com>
|
2001-01-31 Alexandre Oliva <aoliva@redhat.com>
|
||||||
|
|
||||||
* config/fp-bit.c: Include tm.h.
|
* config/fp-bit.c: Include tm.h.
|
||||||
|
@ -5688,21 +5688,27 @@ set_init_index (first, last)
|
|||||||
{
|
{
|
||||||
constructor_index = convert (bitsizetype, first);
|
constructor_index = convert (bitsizetype, first);
|
||||||
|
|
||||||
if (last != 0 && tree_int_cst_lt (last, first))
|
if (last)
|
||||||
{
|
{
|
||||||
error_init ("empty index range in initializer");
|
if (tree_int_cst_equal (first, last))
|
||||||
last = 0;
|
last = 0;
|
||||||
}
|
else if (tree_int_cst_lt (last, first))
|
||||||
else if (last)
|
|
||||||
{
|
|
||||||
last = convert (bitsizetype, last);
|
|
||||||
if (constructor_max_index != 0
|
|
||||||
&& tree_int_cst_lt (constructor_max_index, last))
|
|
||||||
{
|
{
|
||||||
error_init ("array index range in initializer exceeds array bounds");
|
error_init ("empty index range in initializer");
|
||||||
last = 0;
|
last = 0;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
last = convert (bitsizetype, last);
|
||||||
|
if (constructor_max_index != 0
|
||||||
|
&& tree_int_cst_lt (constructor_max_index, last))
|
||||||
|
{
|
||||||
|
error_init ("array index range in initializer exceeds array bounds");
|
||||||
|
last = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
designator_depth++;
|
designator_depth++;
|
||||||
designator_errorneous = 0;
|
designator_errorneous = 0;
|
||||||
if (constructor_range_stack || last)
|
if (constructor_range_stack || last)
|
||||||
|
@ -1,3 +1,7 @@
|
|||||||
|
2001-01-31 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
|
* gcc.dg/gnu99-init-1.c: Add test for [0 ... 0] range.
|
||||||
|
|
||||||
2001-01-31 Jeffrey Oldham <oldham@codesourcery.com>
|
2001-01-31 Jeffrey Oldham <oldham@codesourcery.com>
|
||||||
|
|
||||||
* gcc.dg/c99-float-1.c: Back out "XFAIL FLT_EVAL_METHOD and
|
* gcc.dg/c99-float-1.c: Back out "XFAIL FLT_EVAL_METHOD and
|
||||||
|
@ -24,6 +24,7 @@ struct M o[] = { [0 ... 5].O = { [1 ... 2].K[0 ... 1] = 4 },
|
|||||||
struct M p[] = { [0 ... 5].O[1 ... 2].K = { [0 ... 1] = 4 },
|
struct M p[] = { [0 ... 5].O[1 ... 2].K = { [0 ... 1] = 4 },
|
||||||
[5].O[2].K[2] = 5, 6, 7 };
|
[5].O[2].K[2] = 5, 6, 7 };
|
||||||
int q[3][3] = { [0 ... 1] = { [1 ... 2] = 23 }, [1][2] = 24 };
|
int q[3][3] = { [0 ... 1] = { [1 ... 2] = 23 }, [1][2] = 24 };
|
||||||
|
int r[1] = { [0 ... 1 - 1] = 27 };
|
||||||
|
|
||||||
int main (void)
|
int main (void)
|
||||||
{
|
{
|
||||||
@ -73,5 +74,7 @@ int main (void)
|
|||||||
abort ();
|
abort ();
|
||||||
if (q[2][0] || q[2][1] || q[2][2])
|
if (q[2][0] || q[2][1] || q[2][2])
|
||||||
abort ();
|
abort ();
|
||||||
|
if (r[0] != 27)
|
||||||
|
abort ();
|
||||||
exit (0);
|
exit (0);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user