/usr/src/gcc-5/debian/patches/pr68273.diff is in gcc-5-source 5.5.0-12ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 | 2016-08-09 Richard Biener <rguenther@suse.de>
PR ipa/68273
* ipa-prop.c (ipa_modify_formal_parameters): Build
parameter types with natural alignment also for the
over-aligned case.
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.
Index: b/src/gcc/ipa-prop.c
===================================================================
--- a/src/gcc/ipa-prop.c
+++ b/src/gcc/ipa-prop.c
@@ -3806,7 +3806,7 @@ ipa_modify_formal_parameters (tree fndec
if (is_gimple_reg_type (ptype))
{
unsigned malign = GET_MODE_ALIGNMENT (TYPE_MODE (ptype));
- if (TYPE_ALIGN (ptype) < malign)
+ if (TYPE_ALIGN (ptype) != malign)
ptype = build_aligned_type (ptype, malign);
}
}
Index: b/src/gcc/testsuite/gcc.target/mips/pr68273.c
===================================================================
--- /dev/null
+++ b/src/gcc/testsuite/gcc.target/mips/pr68273.c
@@ -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" } } */
Index: b/src/gcc/tree-ssanames.c
===================================================================
--- a/src/gcc/tree-ssanames.c
+++ b/src/gcc/tree-ssanames.c
@@ -173,7 +173,7 @@ make_ssa_name_fn (struct function *fn, t
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
|