This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] Fix PR56990


On Mon, Apr 22, 2013 at 06:53:59PM +0200, Marek Polacek wrote:
> 2013-04-22  Marek Polacek  <polacek@redhat.com>
> 
> 	PR sanitizer/56990
> 	* tsan.c (instrument_expr): Don't instrument expression
> 	in case its size is zero.
> 
> 	* gcc.dg/pr56990.c: New test.

Yes, thanks.

> --- gcc/tsan.c.mp	2013-04-19 15:39:46.416450528 +0200
> +++ gcc/tsan.c	2013-04-22 18:49:57.834052631 +0200
> @@ -131,7 +131,8 @@ instrument_expr (gimple_stmt_iterator gs
>    if (TREE_READONLY (base))
>      return false;
>  
> -  if (bitpos % (size * BITS_PER_UNIT)
> +  if (size == 0
> +      || bitpos % (size * BITS_PER_UNIT)
>        || bitsize != size * BITS_PER_UNIT)
>      return false;
>  
> --- gcc/testsuite/gcc.dg/pr56990.c.mp	2013-04-22 17:30:14.523876683 +0200
> +++ gcc/testsuite/gcc.dg/pr56990.c	2013-04-22 17:29:06.704666252 +0200
> @@ -0,0 +1,10 @@
> +/* PR sanitizer/56990 */
> +/* { dg-do compile { target { x86_64-*-linux* && lp64 } } } */
> +/* { dg-options "-fsanitize=thread" } */
> +
> +struct S{};
> +
> +void foo(struct S *p)
> +{
> +  *p = (struct S){};
> +}
> 
> 
> m~

	Jakub


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]