mirror of
				https://sourceware.org/git/glibc.git
				synced 2025-11-03 20:53:13 +03:00 
			
		
		
		
	clang does not handle %Z on print, and just suppressing -Wformat-invalid-specifier might trigger another warning for extra arguments (since %Z is ignored). So suppress -Wformat-extra-args as well. For tst-fphex.c a heavy hammer is used since the printf is more complex and clang throws a more generic warning. Reviewed-by: Sam James <sam@gentoo.org>
		
			
				
	
	
		
			42 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
#include <stdio.h>
 | 
						|
#include <stdlib.h>
 | 
						|
#include <string.h>
 | 
						|
#include <libc-diag.h>
 | 
						|
 | 
						|
int
 | 
						|
main (void)
 | 
						|
{
 | 
						|
  char *bp;
 | 
						|
  size_t size;
 | 
						|
  FILE *stream;
 | 
						|
  int lose = 0;
 | 
						|
 | 
						|
  stream = open_memstream (&bp, &size);
 | 
						|
  fprintf (stream, "hello");
 | 
						|
  fflush (stream);
 | 
						|
  /* clang do not handle %Z format.  */
 | 
						|
  DIAG_PUSH_NEEDS_COMMENT_CLANG;
 | 
						|
  DIAG_IGNORE_NEEDS_COMMENT_CLANG (13, "-Wformat-invalid-specifier");
 | 
						|
  DIAG_IGNORE_NEEDS_COMMENT_CLANG (13, "-Wformat-extra-args");
 | 
						|
  printf ("buf = %s, size = %Zu\n", bp, size);
 | 
						|
  DIAG_POP_NEEDS_COMMENT_CLANG;
 | 
						|
  lose |= size != 5;
 | 
						|
  lose |= strncmp (bp, "hello", size);
 | 
						|
  fprintf (stream, ", world");
 | 
						|
  fclose (stream);
 | 
						|
  /* clang do not handle %Z format.  */
 | 
						|
  DIAG_PUSH_NEEDS_COMMENT_CLANG;
 | 
						|
  DIAG_IGNORE_NEEDS_COMMENT_CLANG (13, "-Wformat-invalid-specifier");
 | 
						|
  DIAG_IGNORE_NEEDS_COMMENT_CLANG (13, "-Wformat-extra-args");
 | 
						|
  printf ("buf = %s, size = %Zu\n", bp, size);
 | 
						|
  DIAG_POP_NEEDS_COMMENT_CLANG;
 | 
						|
  lose |= size != 12;
 | 
						|
  lose |= strncmp (bp, "hello, world", 12);
 | 
						|
 | 
						|
  puts (lose ? "Test FAILED!" : "Test succeeded.");
 | 
						|
 | 
						|
  free (bp);
 | 
						|
 | 
						|
  return lose;
 | 
						|
}
 |