mirror of
https://github.com/llvm/llvm-project.git
synced 2025-05-01 15:26:09 +00:00

This diff addresses FIXMEs in lib/Analysis/ScanfFormatString.cpp for the case of ssize_t format specifier and adds tests. In particular, this change enables Clang to emit a warning on incorrect using of "%zd"/"%zn". Test plan: make check-all Differential revision: https://reviews.llvm.org/D35652 llvm-svn: 308662
23 lines
776 B
C
23 lines
776 B
C
// RUN: cp %s %t
|
|
// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -std=c99 -pedantic -Wall -fixit %t
|
|
// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -std=c99 -fsyntax-only -pedantic -Wall -Werror %t
|
|
// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -std=c99 -E -o - %t | FileCheck %s
|
|
|
|
/* This is a test of the various code modification hints that are
|
|
provided as part of warning or extension diagnostics. All of the
|
|
warnings will be fixed by -fixit, and the resulting file should
|
|
compile cleanly with -Werror -pedantic. */
|
|
|
|
int printf(char const *, ...);
|
|
int scanf(const char *, ...);
|
|
|
|
void test() {
|
|
typedef signed long int ssize_t;
|
|
printf("%f", (ssize_t) 42);
|
|
ssize_t s;
|
|
scanf("%f", &s);
|
|
}
|
|
|
|
// CHECK: printf("%zd", (ssize_t) 42);
|
|
// CHECK: scanf("%zd", &s)
|