mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-02-23 12:01:15 +08:00
re PR target/68273 (Wrong code on mips/mipsel due to (invalid?) peeking at alignments in function_arg.)
2016-02-08 Richard Biener <rguenther@suse.de> Jeff Law <law@redhat.com> PR target/68273 * tree-ssanames.c (make_ssa_name_fn): Always use unqualified types for anonymous SSA names. * gcc.target/mips/pr68273.c: New testcase. Co-Authored-By: Jeff Law <law@redhat.com> From-SVN: r233211
This commit is contained in:
parent
ffe9a0a76e
commit
63998a6336
@ -1,3 +1,10 @@
|
||||
2016-02-08 Richard Biener <rguenther@suse.de>
|
||||
Jeff Law <law@redhat.com>
|
||||
|
||||
PR target/68273
|
||||
* tree-ssanames.c (make_ssa_name_fn): Always use unqualified
|
||||
types for anonymous SSA names.
|
||||
|
||||
2016-02-08 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR rtl-optimization/69274
|
||||
|
@ -1,3 +1,9 @@
|
||||
2016-02-08 Richard Biener <rguenther@suse.de>
|
||||
Jeff Law <law@redhat.com>
|
||||
|
||||
PR target/68273
|
||||
* gcc.target/mips/pr68273.c: New testcase.
|
||||
|
||||
2016-02-08 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR rtl-optimization/69274
|
||||
|
79
gcc/testsuite/gcc.target/mips/pr68273.c
Normal file
79
gcc/testsuite/gcc.target/mips/pr68273.c
Normal file
@ -0,0 +1,79 @@
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-w -fdump-rtl-expand" } */
|
||||
/* { dg-skip-if "" { *-*-* } { } { "-O2" } } */
|
||||
|
||||
extern char errbuf[];
|
||||
typedef struct Symbol
|
||||
{
|
||||
char *name;
|
||||
}
|
||||
Symbol;
|
||||
typedef struct Tnode
|
||||
{
|
||||
}
|
||||
Tnode;
|
||||
typedef union Value
|
||||
{
|
||||
long long i;
|
||||
}
|
||||
Value;
|
||||
typedef struct Entry
|
||||
{
|
||||
}
|
||||
Entry;
|
||||
typedef struct Table
|
||||
{
|
||||
}
|
||||
Table;
|
||||
typedef struct Node
|
||||
{
|
||||
Tnode *typ;
|
||||
int sto;
|
||||
Value val;
|
||||
}
|
||||
Node;
|
||||
struct Scope
|
||||
{
|
||||
Table *table;
|
||||
} *sp;
|
||||
static Node op (Node);
|
||||
Entry *p, *q;
|
||||
union YYSTYPE
|
||||
{
|
||||
Symbol *sym;
|
||||
Node rec;
|
||||
};
|
||||
typedef union YYSTYPE YYSTYPE;
|
||||
typedef short int yytype_int16;
|
||||
|
||||
int
|
||||
yyparse (void)
|
||||
{
|
||||
YYSTYPE yyval;
|
||||
int yyn;
|
||||
YYSTYPE *yyvsp;
|
||||
while (1)
|
||||
{
|
||||
if (yyn == 34)
|
||||
{
|
||||
if ((yyvsp[-1].rec).sto & 0x10)
|
||||
sprintf (errbuf, "invalid typedef qualifier for '%s'",
|
||||
(yyvsp[0].sym)->name);
|
||||
p = enter (sp->table, (yyvsp[0].sym));
|
||||
}
|
||||
else
|
||||
op ((yyvsp[0].rec));
|
||||
*++yyvsp = yyval;
|
||||
}
|
||||
}
|
||||
|
||||
static Node
|
||||
op (Node q)
|
||||
{
|
||||
integer (q.typ);
|
||||
mgtype (q.typ);
|
||||
}
|
||||
|
||||
|
||||
/* { dg-final { scan-rtl-dump-times "\\\(set \\\(reg:SI 5 \\\$5\\\)" 2 "expand" } } */
|
||||
/* { dg-final { scan-rtl-dump-times "\\\(set \\\(reg:SI 6 \\\$6\\\)" 1 "expand" } } */
|
@ -286,7 +286,7 @@ make_ssa_name_fn (struct function *fn, tree var, gimple *stmt)
|
||||
|
||||
if (TYPE_P (var))
|
||||
{
|
||||
TREE_TYPE (t) = var;
|
||||
TREE_TYPE (t) = TYPE_MAIN_VARIANT (var);
|
||||
SET_SSA_NAME_VAR_OR_IDENTIFIER (t, NULL_TREE);
|
||||
}
|
||||
else
|
||||
|
Loading…
Reference in New Issue
Block a user