re PR c/33726 (Type checking error with address-of and volatile and arrays)
2007-10-11 Richard Guenther <rguenther@suse.de> PR c/33726 * c-typeck.c (build_array_ref): Do not strip qualifiers from the array element type. * gcc.dg/pr33726.c: New testcase. From-SVN: r129227
This commit is contained in:
parent
50f0f3665b
commit
31b52b5a21
4 changed files with 28 additions and 2 deletions
|
@ -1,3 +1,9 @@
|
|||
2007-10-11 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR c/33726
|
||||
* c-typeck.c (build_array_ref): Do not strip qualifiers from
|
||||
the array element type.
|
||||
|
||||
2007-10-11 Eric Botcazou <ebotcazou@libertysurf.fr>
|
||||
|
||||
PR rtl-optimization/33638
|
||||
|
|
|
@ -2113,8 +2113,6 @@ build_array_ref (tree array, tree index)
|
|||
}
|
||||
|
||||
type = TREE_TYPE (TREE_TYPE (array));
|
||||
if (TREE_CODE (type) != ARRAY_TYPE)
|
||||
type = TYPE_MAIN_VARIANT (type);
|
||||
rval = build4 (ARRAY_REF, type, array, index, NULL_TREE, NULL_TREE);
|
||||
/* Array ref is const/volatile if the array elements are
|
||||
or if the array is. */
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2007-10-11 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR c/33726
|
||||
* gcc.dg/pr33726.c: New testcase.
|
||||
|
||||
2007-10-11 Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
PR fortran/33500
|
||||
|
|
17
gcc/testsuite/gcc.dg/pr33726.c
Normal file
17
gcc/testsuite/gcc.dg/pr33726.c
Normal file
|
@ -0,0 +1,17 @@
|
|||
/* { dg-do compile } */
|
||||
|
||||
/* We used to ICE here with type-checking enabled. */
|
||||
|
||||
typedef unsigned int U032;
|
||||
typedef volatile struct X {
|
||||
U032 Monochrome[1];
|
||||
struct {
|
||||
U032 WidthHeight;
|
||||
} UnclippedRectangle[1];
|
||||
} RivaBitmap;
|
||||
void writel(void *);
|
||||
void rivafb_fillrect(RivaBitmap *bm)
|
||||
{
|
||||
writel((void *)&bm->UnclippedRectangle[0].WidthHeight);
|
||||
}
|
||||
|
Loading…
Add table
Reference in a new issue