This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc 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] |
On Mon, Aug 31, 2015 at 3:41 AM, Joseph Myers <joseph@codesourcery.com> wrote: > On Sat, 29 Aug 2015, Paul Pluzhnikov wrote: > >> It doesn't take very long: all I needed is a printf invocation with >= >> 65536 / 3 / sizeof(void*) arguments. >> >> Writing such invocation by hand is of course toublesome, plumbing >> Makefile to generate it for me, and figuring out why it doesn't work >> is what takes time :-( > > Normally such invocations would be generated with macros, e.g. > > #define A a, a, a, a, a, a, a, a, a, a > #define B A, A, A, A, A, A, A, A, A, A > > etc., unless the sort of expansion you require is unsuited to that for > some reason. Well, to show the leak requires positional format, like this: "%1$s %2$s ..." However, I was able to use "%1$s %s %s ..." if I disable -Wformat for the test. >> In addition, there is a GCC regression: compiling a printf call with >> 2800 arguments takes 4.8.4-2ubuntu1~14.04 0.06s without optimization, >> 0.86s with -O2. Same numbers for current GCC trunk (@r227321): 0.06s >> and 4m46s. This is on a very recent and fast PC. I expect there could >> be PCs in current use where the time will be 3x longer. > > To me this suggests building the test with -O0 That doesn't work: glibc requires to be built with optimization :-) But #pragma GCC optimize does work. The test case revealed an additional leak, so at least that effort was not in vain. Combined patch attached. Tested on Linux/x86_64. Thanks, 2015-09-01 Paul Eggert <eggert@cs.ucla.edu> Paul Pluzhnikov <ppluzhnikov@google.com> [BZ #18872] * stdio-common/Makefile (tst-printf-bz18872): New test. (tst-printf-bz18872-mem.out): Likewise. * stdio-common/tst-printf-bz18872.c: New test. * stdio-common/vfprintf.c: Fix memory leaks. -- Paul Pluzhnikov
Attachment:
bz18872.20150901.txt
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |