mirror of git://gcc.gnu.org/git/gcc.git
re PR c++/52988 (std::async not executed on function returning nullptr_t)
PR c++/52988 * typeck.c (decay_conversion): Don't discard side-effects from expressions of nullptr_t. From-SVN: r188955
This commit is contained in:
parent
8490252ad1
commit
ec62cbe19b
|
|
@ -1,3 +1,9 @@
|
|||
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-06-25 Florian Weimer <fweimer@redhat.com>
|
||||
|
||||
* init.c (build_new_1): Warn about (T[N]) for variable N, and
|
||||
|
|
|
|||
|
|
@ -1843,7 +1843,7 @@ decay_conversion (tree exp, tsubst_flags_t complain)
|
|||
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.
|
||||
|
|
|
|||
|
|
@ -1,3 +1,8 @@
|
|||
2012-06-25 Jason Merrill <jason@redhat.com>
|
||||
|
||||
PR c++/52988
|
||||
* g++.dg/cpp0x/nullptr28.C: New.
|
||||
|
||||
2012-06-25 Christophe Lyon <christophe.lyon@st.com>
|
||||
|
||||
* gcc.target/arm/neon-vld1_dupQ.c: New.
|
||||
|
|
|
|||
|
|
@ -0,0 +1,16 @@
|
|||
// { 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 ();
|
||||
}
|
||||
Loading…
Reference in New Issue