On Fri, Jun 10, 2016 at 03:13:32PM +0300, Maxim Ostapenko wrote:
> gcc/ChangeLog:
> 
> 2016-06-10  Maxim Ostapenko  <m.ostape...@samsung.com>
> 
>       PR sanitizer/71480
>       * varasm.c (place_block_symbol): Adjust alignment for asan protected
>       STRING_CSTs even if TREE_CONSTANT_POOL_ADDRESS_P.
> 
> gcc/testsuite/ChangeLog:
> 
> 2016-06-10  Maxim Ostapenko  <m.ostape...@samsung.com>
> 
>       PR sanitizer/71480
>       * c-c++-common/asan/pr71480.c: New test.
> 
> diff --git a/gcc/testsuite/c-c++-common/asan/pr71480.c 
> b/gcc/testsuite/c-c++-common/asan/pr71480.c
> new file mode 100644
> index 0000000..3cf2c05
> --- /dev/null
> +++ b/gcc/testsuite/c-c++-common/asan/pr71480.c
> @@ -0,0 +1,41 @@
> +/* { dg-do run } */
> +
> +__attribute__ ((noinline, noclone)) int
> +foo (char *c)
> +{

I'd add asm volatile ("" : : "r" (c) : "memory"); here

> +  return 1;
> +}
> +
> +__attribute__ ((noinline, noclone)) void
> +bar (char *c)
> +{

and here (so that gcc doesn't try to figure out the functions are const or
pure.  No need for return; in function returning void.
Ok with that change, thanks.

        Jakub

Reply via email to