Add support for format string checking of object-size checking
versions of sprintf and friends.
- Added FIXME that this mechanism should be generalized.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56962 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Sema/Sema.cpp b/lib/Sema/Sema.cpp
index f43264d..80ce2cc 100644
--- a/lib/Sema/Sema.cpp
+++ b/lib/Sema/Sema.cpp
@@ -88,17 +88,22 @@
// do extra checking.
IdentifierTable &IT = PP.getIdentifierTable();
- KnownFunctionIDs[id_printf] = &IT.get("printf");
- KnownFunctionIDs[id_fprintf] = &IT.get("fprintf");
- KnownFunctionIDs[id_sprintf] = &IT.get("sprintf");
- KnownFunctionIDs[id_snprintf] = &IT.get("snprintf");
- KnownFunctionIDs[id_asprintf] = &IT.get("asprintf");
- KnownFunctionIDs[id_NSLog] = &IT.get("NSLog");
- KnownFunctionIDs[id_vsnprintf] = &IT.get("vsnprintf");
- KnownFunctionIDs[id_vasprintf] = &IT.get("vasprintf");
- KnownFunctionIDs[id_vfprintf] = &IT.get("vfprintf");
- KnownFunctionIDs[id_vsprintf] = &IT.get("vsprintf");
- KnownFunctionIDs[id_vprintf] = &IT.get("vprintf");
+ KnownFunctionIDs[id_printf] = &IT.get("printf");
+ KnownFunctionIDs[id_fprintf] = &IT.get("fprintf");
+ KnownFunctionIDs[id_sprintf] = &IT.get("sprintf");
+ KnownFunctionIDs[id_sprintf_chk] = &IT.get("__builtin___sprintf_chk");
+ KnownFunctionIDs[id_snprintf] = &IT.get("snprintf");
+ KnownFunctionIDs[id_snprintf_chk] = &IT.get("__builtin___snprintf_chk");
+ KnownFunctionIDs[id_asprintf] = &IT.get("asprintf");
+ KnownFunctionIDs[id_NSLog] = &IT.get("NSLog");
+ KnownFunctionIDs[id_vsnprintf] = &IT.get("vsnprintf");
+ KnownFunctionIDs[id_vasprintf] = &IT.get("vasprintf");
+ KnownFunctionIDs[id_vfprintf] = &IT.get("vfprintf");
+ KnownFunctionIDs[id_vsprintf] = &IT.get("vsprintf");
+ KnownFunctionIDs[id_vsprintf_chk] = &IT.get("__builtin___vsprintf_chk");
+ KnownFunctionIDs[id_vsnprintf] = &IT.get("vsnprintf");
+ KnownFunctionIDs[id_vsnprintf_chk] = &IT.get("__builtin___vsnprintf_chk");
+ KnownFunctionIDs[id_vprintf] = &IT.get("vprintf");
SuperID = &IT.get("super");