Sorry, I meant "gcc -ansi -pedantic". On Fri, Feb 26, 2016 at 12:35 PM, Michael Kerrisk (man-pages) <mtk.manpages@xxxxxxxxx> wrote: > Hi Keith, > > On 02/26/2016 08:52 PM, Keith Thompson wrote: >> On Fri, Feb 26, 2016 at 7:46 AM, Michael Kerrisk (man-pages) >> <mtk.manpages@xxxxxxxxx> wrote: >>> On 02/24/2016 10:26 AM, Martin Gebert wrote: >>>> In the example section of the page the following snippet is given: >>>> >>>> --8><-- >>>> void >>>> myfunc3(void) >>>> { >>>> int j, nptrs; >>>> #define SIZE 100 >>>> void *buffer[100]; >>>> char **strings; >>>> >>>> nptrs = backtrace(buffer, SIZE); >>>> --><8-- >>>> >>>> Problems: >>>> >>>> 1. "#define SIZE 100" is not indented correctly. >>>> 2. SIZE should also be used for the buffer array size. >>> >>> Thanks, Martin. Fixed as below. >>> >>> Cheers, >>> >>> Michael >>> >>> diff --git a/man3/backtrace.3 b/man3/backtrace.3 >>> index afca93d..064b970 100644 >>> --- a/man3/backtrace.3 >>> +++ b/man3/backtrace.3 >>> @@ -215,8 +215,8 @@ void >>> myfunc3(void) >>> { >>> int j, nptrs; >>> -#define SIZE 100 >>> - void *buffer[100]; >>> + const int SIZE = 100; >>> + void *buffer[SIZE]; >>> char **strings; >>> >>> nptrs = backtrace(buffer, SIZE); >> >> I suggest leaving it as it was, apart from using SIZE in the definition >> of buffer. >> >> It's common for preprocessor directives to be left-justified rather >> than aligned with the surrounding code. (They mostly appear at file >> scope, so it's not usually an issue.) It's perfectly valid to indent >> the #define, but it's a bit misleading, since it implies that SIZE has >> a scope (it doesn't, it's visible to the end of the translation unit). >> >> With the "const int" declaration, buffer becomes a VLA (variable >> length array). VLAs don't exist in C90, do exist in C99, and are >> optional in C11. > > Ahhh -- I was not aware of the C11 detail. > >> The code won't compile with "gcc -pedantic-errors". > > Which gcc versions do that? I do not see such an error from gcc 5.3. > > Cheers, > > Michael > > > > > -- > Michael Kerrisk > Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/ > Linux/UNIX System Programming Training: http://man7.org/training/ -- Keith Thompson <Keith.S.Thompson@xxxxxxxxx> -- To unsubscribe from this list: send the line "unsubscribe linux-man" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html