/* PR c/83656 - missing -Wbuiltin-declaration-mismatch on declaration without prototype { dg-do compile } { dg-options "-Wall -Wextra" } */ typedef __SIZE_TYPE__ size_t; /* Verify that ordinary library built-ins are not diagnosed with -Wextra when they take no arguments (except in cases of return type mismatches). This is in anticipation that C may some day adopt the same syntax as C++ for declaring functions that take no arguments. */ void abort (); /* Verify that ordinary library built-ins are diagnosed with -Wextra when they take arguments. */ void* memcpy (); /* { dg-warning "declaration of built-in function .memcpy. without a prototype; expected .void \\\*\\\(void \\\*, const void \\\*, \(long \)*unsigned int\\\)." } */ void* memset (); /* { dg-warning "declaration of built-in function .memset. without a prototype; expected .void \\\*\\\(void \\\*, int, *\(long \)*unsigned int\\\)." } */ size_t strlen (); /* { dg-warning "declaration of built-in function .strlen. without a prototype; expected .\(long \)*unsigned int\\\(const char \\\*\\\)." } */ /* Variadic built-ins are diagnosed even without -Wextra (they are, in fact, diagnosed by default). */ int printf (); /* { dg-warning "\\\[-Wbuiltin-declaration-mismatch]" } */ int sprintf (); /* { dg-warning "\\\[-Wbuiltin-declaration-mismatch]" } */