re PR c++/62017 (AddressSanitizer reports *-buffer-overflow in destructor when multiple virtual inheritance is used)

PR c++/62017
	* asan.c (transform_statements): Don't instrument clobber statements.

	* g++.dg/asan/pr62017.C: New test.

From-SVN: r215354
This commit is contained in:
Jakub Jelinek 2014-09-18 16:08:28 +02:00 committed by Jakub Jelinek
parent c8f298736d
commit e1e160c11f
4 changed files with 26 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2014-09-18 Jakub Jelinek <jakub@redhat.com>
PR c++/62017
* asan.c (transform_statements): Don't instrument clobber statements.
2014-09-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
* config/arm/neon.md (*movmisalign<mode>_neon_load): Change type

View File

@ -2072,6 +2072,7 @@ transform_statements (void)
if (has_stmt_been_instrumented_p (s))
gsi_next (&i);
else if (gimple_assign_single_p (s)
&& !gimple_clobber_p (s)
&& maybe_instrument_assignment (&i))
/* Nothing to do as maybe_instrument_assignment advanced
the iterator I. */;

View File

@ -1,5 +1,8 @@
2014-09-18 Jakub Jelinek <jakub@redhat.com>
PR c++/62017
* g++.dg/asan/pr62017.C: New test.
PR testsuite/63292
* gcc.dg/vect/pr59594.c (b): Increase size to N + 2 elements.

View File

@ -0,0 +1,17 @@
// PR c++/62017
// { dg-do run }
struct A
{
int x;
virtual ~A () {}
};
struct B : public virtual A {};
struct C : public virtual A {};
struct D : public B, virtual public C {};
int
main ()
{
D d;
}