On Fri, Jun 10, 2016 at 03:13:32PM +0300, Maxim Ostapenko wrote:
> gcc/ChangeLog:
>
> 2016-06-10 Maxim Ostapenko <[email protected]>
>
> 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 <[email protected]>
>
> 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