[Bug 240398] -D_XOPEN_SOURCE=500 incorrectly warns about missing snprintf()

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Sat Sep 7 22:35:27 UTC 2019


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=240398

            Bug ID: 240398
           Summary: -D_XOPEN_SOURCE=500 incorrectly warns about missing
                    snprintf()
           Product: Base System
           Version: CURRENT
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: standards
          Assignee: standards at FreeBSD.org
          Reporter: jbeich at FreeBSD.org

$ cat a.c
#define _XOPEN_SOURCE 500
#include <stdio.h>

int main()
{
  char dest[255], src[] = "Hello";
  snprintf(dest, sizeof(dest), "%s", src);
}

$ cc -Werror a.c
a.c:7:3: error: implicitly declaring library function 'snprintf' with type 'int
(char *, unsigned long, const char
      *, ...)' [-Werror,-Wimplicit-function-declaration]
  snprintf(dest, sizeof(dest), "%s", src);
  ^
a.c:7:3: note: include the header <stdio.h> or explicitly provide a declaration
for 'snprintf'
1 error generated.

According to
https://pubs.opengroup.org/onlinepubs/9699919799/functions/fprintf.html

  Issue 5

      Aligned with ISO/IEC 9899:1990/Amendment 1:1995 (E). Specifically,
      the l (ell) qualifier can now be used with c and s conversion
      specifiers.

      The snprintf() function is new in Issue 5.

Example fix - https://github.com/dragonflybsd/dragonflybsd/commit/626be21490

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-standards mailing list