re PR middle-end/33382 (internal compiler error: in get_constraint_for_component_ref, at tree-ssa-structalias.c:2454)
2007-09-12 Richard Guenther <rguenther@suse.de> PR middle-end/33382 * gcc.c-torture/compile/pr33382.c: New testcase. * gcc.c-torture/execute/pr33382.c: Likewise. From-SVN: r128419
This commit is contained in:
parent
3e708b2571
commit
7323b6643e
@ -1,3 +1,9 @@
|
||||
2007-09-12 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR middle-end/33382
|
||||
* gcc.c-torture/compile/pr33382.c: New testcase.
|
||||
* gcc.c-torture/execute/pr33382.c: Likewise.
|
||||
|
||||
2007-09-12 Christopher D. Rickett <crickett@lanl.gov>
|
||||
|
||||
PR fortran/33395
|
||||
|
95
gcc/testsuite/gcc.c-torture/compile/pr33382.c
Normal file
95
gcc/testsuite/gcc.c-torture/compile/pr33382.c
Normal file
@ -0,0 +1,95 @@
|
||||
typedef unsigned int size_t;
|
||||
typedef struct {
|
||||
int disable;
|
||||
char *searchconfig[];
|
||||
} config_t;
|
||||
typedef struct {
|
||||
void *lng;
|
||||
} arglist_t;
|
||||
config_t config = {
|
||||
.searchconfig = {
|
||||
((void *) 0)}
|
||||
};
|
||||
|
||||
arglist_t arglist[] = {
|
||||
{
|
||||
&config.searchconfig[0]}
|
||||
};
|
||||
const int arglistsize = ((int) (sizeof(arglist) / sizeof(arglist_t)));
|
||||
void show_configuration(char *arg)
|
||||
{
|
||||
int i;
|
||||
|
||||
if (!__extension__( {
|
||||
size_t
|
||||
__s1_len,
|
||||
__s2_len; (__builtin_constant_p(arglist[i].lng)
|
||||
&& (__s1_len = (!((size_t)
|
||||
(const void *)
|
||||
1)
|
||||
|| __s2_len >= 4))
|
||||
? : (__builtin_constant_p(arglist[i].lng)
|
||||
&& ((size_t)
|
||||
(const void *)
|
||||
4)
|
||||
? (__builtin_constant_p(arg)
|
||||
&& ((size_t) (const void *) 1) ?
|
||||
: (__extension__( {
|
||||
__const * __s2 =
|
||||
(__const *)
|
||||
(arg);
|
||||
register
|
||||
__result =
|
||||
(((__const
|
||||
*) (arglist
|
||||
[i].
|
||||
lng))[0]
|
||||
- __s2[0]);
|
||||
if (__s1_len ==
|
||||
0) {
|
||||
if (__s1_len ==
|
||||
0) {
|
||||
__result =
|
||||
(((__const
|
||||
unsigned char
|
||||
*) (__const
|
||||
char
|
||||
*)
|
||||
(arglist[i].
|
||||
lng))[3] -
|
||||
__s2[3]);}
|
||||
}
|
||||
__result;}
|
||||
))):
|
||||
(__builtin_constant_p(arg)
|
||||
?
|
||||
(__builtin_constant_p
|
||||
(arglist[i].lng)
|
||||
? : (__extension__( {
|
||||
char
|
||||
__result
|
||||
=
|
||||
((__const
|
||||
unsigned *)
|
||||
(arg))[0];
|
||||
if
|
||||
(__s2_len
|
||||
> 0
|
||||
&& __result ==
|
||||
0) {
|
||||
if (__s2_len >
|
||||
1
|
||||
&& __result
|
||||
== 0) {
|
||||
}
|
||||
}
|
||||
__result;}
|
||||
))):
|
||||
|
||||
|
||||
|
||||
__builtin_strcmp(arglist[i].lng,
|
||||
arg))));}
|
||||
))
|
||||
return;
|
||||
}
|
21
gcc/testsuite/gcc.c-torture/execute/pr33382.c
Normal file
21
gcc/testsuite/gcc.c-torture/execute/pr33382.c
Normal file
@ -0,0 +1,21 @@
|
||||
struct Foo {
|
||||
int i;
|
||||
int j[];
|
||||
};
|
||||
|
||||
struct Foo x = { 1, { 2, 0, 2, 3 } };
|
||||
|
||||
int foo(void)
|
||||
{
|
||||
x.j[0] = 1;
|
||||
return x.j[1];
|
||||
}
|
||||
|
||||
extern void abort(void);
|
||||
|
||||
int main()
|
||||
{
|
||||
if (foo() != 0)
|
||||
abort();
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue
Block a user