1/* Ensure that transformations of *printf are performed correctly 2 regardless of -fexec-charset. See PR 25120. */ 3 4/* { dg-do compile } */ 5/* { dg-require-iconv "IBM1047" } */ 6/* { dg-options "-O2 -fexec-charset=IBM1047" } */ 7/* { dg-final { scan-assembler-not "printf" } } */ 8/* { dg-final { scan-assembler-not "fprintf" } } */ 9/* { dg-final { scan-assembler-not "sprintf" } } */ 10 11#include <stdio.h> 12 13void foo (char *dst, const char *src) 14{ 15 printf ("\n"); 16 printf ("hello world\n"); 17 printf ("%s", "\n"); 18 printf ("%s", "hello world\n"); 19 printf ("%c", '\n'); 20 printf ("%s\n", "hello world"); 21 printf ("%s\n", src); 22 23 fprintf (stdout, "\n"); 24 fprintf (stdout, "hello world\n"); 25 fprintf (stdout, "%s", "\n"); 26 fprintf (stdout, "%s", "hello world\n"); 27 fprintf (stdout, "%c", '\n'); 28 fprintf (stdout, "%s", src); 29 30 sprintf (dst, "hello world\n"); 31 sprintf (dst, "%s", src); 32} 33