PR c++/52988
* typeck.c (decay_conversion): Don't discard side-effects from
expressions of nullptr_t.
From-SVN: r188953
+2012-06-25 Jason Merrill <jason@redhat.com>
+
+ PR c++/52988
+ * typeck.c (decay_conversion): Don't discard side-effects from
+ expressions of nullptr_t.
+
2012-04-04 Steve Ellcey <sje@cup.hp.com>
Backported from mainline.
if (error_operand_p (exp))
return error_mark_node;
- if (NULLPTR_TYPE_P (type))
+ if (NULLPTR_TYPE_P (type) && !TREE_SIDE_EFFECTS (exp))
return nullptr_node;
/* build_c_cast puts on a NOP_EXPR to make the result not an lvalue.
+2012-06-25 Jason Merrill <jason@redhat.com>
+
+ PR c++/52988
+ * g++.dg/cpp0x/nullptr28.C: New.
+
2012-06-19 Kaz Kojima <kkojima@gcc.gnu.org>
* gcc.dg/stack-usage-1.c: Remove dg-options line for sh targets
--- /dev/null
+// { dg-do run { target c++11 } }
+
+typedef decltype(nullptr) nullptr_t;
+
+int i;
+nullptr_t n;
+const nullptr_t& f() { ++i; return n; }
+
+nullptr_t g() { return f(); }
+
+int main()
+{
+ g();
+ if (i != 1)
+ __builtin_abort ();
+}