2012-09-10 Markus Trippelsdorf <markus@trippelsdorf.de>
PR middle-end/54515
* tree-sra.c (disqualify_base_of_expr): Check for possible
NULL_TREE returned by get_base_address()
* g++.dg/tree-ssa/pr54515.C: new testcase
From-SVN: r191131
+2012-09-10 Markus Trippelsdorf <markus@trippelsdorf.de>
+
+ PR middle-end/54515
+ * tree-sra.c (disqualify_base_of_expr): Check for possible
+ NULL_TREE returned by get_base_address()
+
2012-09-05 Bin Cheng <bin.cheng@arm.com>
Backport from 2012-09-04 mainline r190919
+2012-09-10 Markus Trippelsdorf <markus@trippelsdorf.de>
+
+ PR middle-end/54515
+ * g++.dg/tree-ssa/pr54515.C: new testcase
+
2012-08-10 Ulrich Weigand <ulrich.weigand@linaro.org>
Backport from mainline
--- /dev/null
+// { dg-do compile }
+// { dg-options "-O2" }
+
+template < typename T > T h2le (T)
+{
+ T a;
+ unsigned short &b = a;
+ short c = 0;
+ unsigned char (&d)[2] = reinterpret_cast < unsigned char (&)[2] > (c);
+ unsigned char (&e)[2] = reinterpret_cast < unsigned char (&)[2] > (b);
+ e[0] = d[0];
+ return a;
+}
+
+void
+bar ()
+{
+ h2le ((unsigned short) 0);
+}
disqualify_base_of_expr (tree t, const char *reason)
{
t = get_base_address (t);
- if (sra_mode == SRA_MODE_EARLY_IPA
+ if (t
+ && sra_mode == SRA_MODE_EARLY_IPA
&& TREE_CODE (t) == MEM_REF)
t = get_ssa_base_param (TREE_OPERAND (t, 0));