http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55341



--- Comment #23 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-12-19 
09:03:13 UTC ---

Example testcase:



void bar (char *, char *, char *, char *, char *, char *, char *, char *, char

*, char *,

          char *, char *, char *, char *, char *, char *, char *, char *, char

*, char *,

          char *, char *, char *, char *, char *, char *, char *, char *, char

*, char *);



int

foo (void)

{

  char c0, c1, c2, c3, c4, c5, c6, c7, c8, c9;

  char d0, d1, d2, d3, d4, d5, d6, d7, d8, d9;

  char e0, e1, e2, e3, e4, e5, e6, e7, e8, e9;

  bar (&c0, &c1, &c2, &c3, &c4, &c5, &c6, &c7, &c8, &c9,

       &d0, &d1, &d2, &d3, &d4, &d5, &d6, &d7, &d8, &d9,

       &e0, &e1, &e2, &e3, &e4, &e5, &e6, &e7, &e8, &e9);

  return 0;

}



on powerpc64-linux with -O2 -fsanitize=address, or on say x86_64-linux with -O2

-fsanitize=address -mstringop-strategy=libcall

These want to clear 244 bytes of consecutive shadow memory upon return from the

function.

Reply via email to