re PR tree-optimization/39204 (ICE in compute_antic)
2009-02-17 Richard Guenther <rguenther@suse.de> PR tree-optimization/39204 * tree-ssa-pre.c (phi_translate_1): Lookup the value-number of the PHI arg. * gcc.dg/torture/pr39204.c: New testcase. From-SVN: r144233
This commit is contained in:
parent
1f2f555a97
commit
73a63870d5
4 changed files with 145 additions and 0 deletions
|
@ -1,3 +1,9 @@
|
|||
2009-02-17 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/39204
|
||||
* tree-ssa-pre.c (phi_translate_1): Lookup the value-number
|
||||
of the PHI arg.
|
||||
|
||||
2009-02-17 Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
* config/soft-fp/double.h: Update from glibc CVS.
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2009-02-17 Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/39204
|
||||
* gcc.dg/torture/pr39204.c: New testcase.
|
||||
|
||||
2009-02-17 Bingfeng Mei <bmei@broadcom.com>
|
||||
|
||||
* gcc.dg/vect/vect-outer-5.c: Require vect_float support.
|
||||
|
|
131
gcc/testsuite/gcc.dg/torture/pr39204.c
Normal file
131
gcc/testsuite/gcc.dg/torture/pr39204.c
Normal file
|
@ -0,0 +1,131 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-w" } */
|
||||
|
||||
typedef unsigned int size_t;
|
||||
typedef unsigned char __u_char;
|
||||
typedef unsigned short int __u_short;
|
||||
typedef unsigned int __u_int;
|
||||
typedef unsigned long int __u_long;
|
||||
typedef signed char __int8_t;
|
||||
typedef unsigned char __uint8_t;
|
||||
typedef signed short int __int16_t;
|
||||
typedef unsigned short int __uint16_t;
|
||||
typedef signed int __int32_t;
|
||||
typedef unsigned int __uint32_t;
|
||||
__extension__ typedef signed long long int __int64_t;
|
||||
__extension__ typedef unsigned long long int __uint64_t;
|
||||
__extension__ typedef long long int __quad_t;
|
||||
__extension__ typedef unsigned long long int __u_quad_t;
|
||||
__extension__ typedef __u_quad_t __dev_t;
|
||||
__extension__ typedef unsigned int __uid_t;
|
||||
__extension__ typedef unsigned int __gid_t;
|
||||
__extension__ typedef unsigned long int __ino_t;
|
||||
__extension__ typedef __u_quad_t __ino64_t;
|
||||
__extension__ typedef unsigned int __mode_t;
|
||||
__extension__ typedef unsigned int __nlink_t;
|
||||
__extension__ typedef long int __off_t;
|
||||
__extension__ typedef __quad_t __off64_t;
|
||||
__extension__ typedef int __pid_t;
|
||||
__extension__ typedef struct {
|
||||
int __val[2];
|
||||
} __fsid_t;
|
||||
__extension__ typedef long int __clock_t;
|
||||
__extension__ typedef unsigned int __id_t;
|
||||
typedef struct _IO_FILE FILE;
|
||||
typedef struct _IO_FILE __FILE;
|
||||
typedef struct {
|
||||
int __count;
|
||||
union {
|
||||
unsigned int __wch;
|
||||
char __wchb[4];
|
||||
}
|
||||
__value;
|
||||
} __mbstate_t;
|
||||
typedef struct {
|
||||
__off_t __pos;
|
||||
__mbstate_t __state;
|
||||
} _G_fpos_t;
|
||||
typedef struct {
|
||||
__off64_t __pos;
|
||||
__mbstate_t __state;
|
||||
} _G_fpos64_t;
|
||||
typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__)));
|
||||
typedef struct _IO_FILE _IO_FILE;
|
||||
extern struct _IO_FILE_plus _IO_2_1_stderr_;
|
||||
extern int fputs (__const char *__restrict __s, FILE * __restrict __stream);
|
||||
extern char *strstr (__const char *__haystack, __const char *__needle)
|
||||
__attribute__ ((__nonnull__ (1, 2)));
|
||||
extern char *rindex (__const char *__s, int __c) __attribute__ ((__nonnull__ (1)));
|
||||
extern size_t strlen (__const char *__s) __attribute__ ((__nothrow__))
|
||||
__attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
|
||||
char *mystrlwr (char *string);
|
||||
char *m_replace_filename (const char *path, const char *filename);
|
||||
typedef struct LINE {
|
||||
char *text;
|
||||
struct LINE *next;
|
||||
int flags;
|
||||
} LINE;
|
||||
typedef struct TOC {
|
||||
char *text;
|
||||
char *alt;
|
||||
struct TOC *next;
|
||||
int root;
|
||||
int texinfoable;
|
||||
int htmlable;
|
||||
int otherfile;
|
||||
} TOC;
|
||||
static int _empty_count;
|
||||
extern char *_word_substitution[256];
|
||||
static void _output_sorted_nested_toc (TOC ** list, unsigned int num_items);
|
||||
static char *_do_text_substitution (char *input);
|
||||
static int _toc_scmp (const void *e1, const void *e2)
|
||||
{
|
||||
TOC *t1 = *((TOC **) e1);
|
||||
TOC *t2 = *((TOC **) e2);
|
||||
return mystricmp (t1->text, t2->text);
|
||||
}
|
||||
static void _output_buffered_text (void) { if (_empty_count) ; }
|
||||
void _post_process_filename (char *filename)
|
||||
{
|
||||
int code_scanning = 0;
|
||||
char *new_filename, *p;
|
||||
char *line;
|
||||
FILE *f1 = 0, *f2 = 0;
|
||||
if (!new_filename || strlen (new_filename) < 2)
|
||||
new_filename[strlen (filename) - 1] = 'x';
|
||||
if (!f1 || !f2)
|
||||
while ((line = m_fgets (f1)))
|
||||
{
|
||||
line = _do_text_substitution (line);
|
||||
fputs (line, f2);
|
||||
}
|
||||
if (remove (filename))
|
||||
cancel:
|
||||
if (f1)
|
||||
if (f2)
|
||||
if (new_filename)
|
||||
;
|
||||
}
|
||||
static void _close_html_file (FILE * file)
|
||||
{
|
||||
int f;
|
||||
for (f = 0; _word_substitution[f]; f++)
|
||||
;
|
||||
}
|
||||
static __attribute__((always_inline))
|
||||
char * _do_text_substitution (char *input)
|
||||
{
|
||||
int start, end, middle, f;
|
||||
char *temp, *found, *reader;
|
||||
for (f = 0; _word_substitution[f]; f++)
|
||||
{
|
||||
reader = input;
|
||||
while ((found = strstr (reader, _word_substitution[f])))
|
||||
{
|
||||
start = found - input;
|
||||
input = temp;
|
||||
reader = temp + start + middle;
|
||||
}
|
||||
}
|
||||
return input;
|
||||
}
|
|
@ -1707,6 +1707,9 @@ phi_translate_1 (pre_expr expr, bitmap_set_t set1, bitmap_set_t set2,
|
|||
tree def = PHI_ARG_DEF (phi, e->dest_idx);
|
||||
pre_expr newexpr;
|
||||
|
||||
if (TREE_CODE (def) == SSA_NAME)
|
||||
def = VN_INFO (def)->valnum;
|
||||
|
||||
/* Handle constant. */
|
||||
if (is_gimple_min_invariant (def))
|
||||
return get_or_alloc_expr_for_constant (def);
|
||||
|
|
Loading…
Add table
Reference in a new issue