зеркало из https://github.com/microsoft/clang-1.git
Format string warnings: don't a.k.a. wchar_t with wchar_t.
This fixes the case where Clang would output: error: format specifies type 'wchar_t *' (aka 'wchar_t *') ArgTypeResult::getRepresentativeTypeName needs to take into account that wchar_t can be a built-in type (as opposed to in C, where it is a typedef). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149387 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Родитель
54a7e3f677
Коммит
7da1f46793
|
@ -373,7 +373,7 @@ QualType ArgTypeResult::getRepresentativeType(ASTContext &C) const {
|
|||
|
||||
std::string ArgTypeResult::getRepresentativeTypeName(ASTContext &C) const {
|
||||
std::string S = getRepresentativeType(C).getAsString();
|
||||
if (Name)
|
||||
if (Name && S != Name)
|
||||
return std::string("'") + Name + "' (aka '" + S + "')";
|
||||
return std::string("'") + S + "'";
|
||||
}
|
||||
|
|
|
@ -13,3 +13,7 @@ void f(char **sp, float *fp) {
|
|||
printf("%a", 1.0);
|
||||
scanf("%afoobar", fp);
|
||||
}
|
||||
|
||||
void g() {
|
||||
printf("%ls", "foo"); // expected-warning{{format specifies type 'wchar_t *' but the argument has type 'const char *'}}
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче