Commit 30d309aa by Richard Biener Committed by Richard Biener

re PR c++/79825 (Uninitialized uses in aggregate copies of empty structs (missed…

re PR c++/79825 (Uninitialized uses in aggregate copies of empty structs (missed DCE in C++ gimplify))

2017-03-03  Richard Biener  <rguenther@suse.de>

	PR c++/79825
	* cp-gimplify.c (simple_empty_class_p): Handle EMPTY_CLASS_EXPR.

	* g++.dg/warn/Wuninitialized-8.C: New testcase.

From-SVN: r245866
parent 38801de5
2017-03-03 Richard Biener <rguenther@suse.de>
PR c++/79825
* cp-gimplify.c (simple_empty_class_p): Handle EMPTY_CLASS_EXPR.
2017-03-03 Marek Polacek <polacek@redhat.com>
PR c++/79791
......
......@@ -549,6 +549,7 @@ simple_empty_class_p (tree type, tree op)
return
((TREE_CODE (op) == COMPOUND_EXPR
&& simple_empty_class_p (type, TREE_OPERAND (op, 1)))
|| TREE_CODE (op) == EMPTY_CLASS_EXPR
|| is_gimple_lvalue (op)
|| INDIRECT_REF_P (op)
|| (TREE_CODE (op) == CONSTRUCTOR
......
2017-03-03 Richard Biener <rguenther@suse.de>
PR c++/79825
* g++.dg/warn/Wuninitialized-8.C: New testcase.
2017-03-03 Jakub Jelinek <jakub@redhat.com>
* gcc.dg/pr57134.c: Use empty inline asm string literal.
......
// { dg-do compile }
// { dg-options "-Wuninitialized" }
struct A;
struct B
{
B(A);
};
struct C
{
template <typename PassT> void m_fn1(PassT p1) { new B(p1); } // { dg-bogus "uninitialized" }
};
struct A {};
void fn1()
{
C a;
a.m_fn1(A());
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment