]> granicus.if.org Git - clang/commit
[Sema] Handle UTF-8 invalid format string specifiers
authorBruno Cardoso Lopes <bruno.cardoso@gmail.com>
Tue, 29 Mar 2016 17:35:02 +0000 (17:35 +0000)
committerBruno Cardoso Lopes <bruno.cardoso@gmail.com>
Tue, 29 Mar 2016 17:35:02 +0000 (17:35 +0000)
commitef6fa17f79523b7547dbf5b2dc5c049b26f687af
treedad6ecaf2357343c219551ea41d6da82fcac859c
parent6a4597fa13445b50f309fbf1f3ffaa4319a7fbb4
[Sema] Handle UTF-8 invalid format string specifiers

Improve invalid format string specifier handling by printing out
invalid specifiers characters with \x, \u and \U. Previously clang
would print gargabe whenever the character is unprintable.

Example, before:
  NSLog(@"%\u25B9"); => warning: invalid conversion specifier ' [-Wformat-invalid-specifier]
after:
  NSLog(@"%\u25B9"); => warning: invalid conversion specifier '\u25b9' [-Wformat-invalid-specifier]

Differential Revision: http://reviews.llvm.org/D18296

rdar://problem/24672159

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@264752 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/Analysis/Analyses/FormatString.h
lib/Analysis/FormatString.cpp
lib/Analysis/FormatStringParsing.h
lib/Analysis/PrintfFormatString.cpp
lib/Analysis/ScanfFormatString.cpp
lib/Sema/SemaChecking.cpp
test/Sema/format-strings-scanf.c
test/Sema/format-strings.c
test/SemaObjC/format-strings-objc.m