[PATCH] D23820: Do not warn about format strings that are indexed string literals.
    Meike Baumgärtner via cfe-commits 
    cfe-commits at lists.llvm.org
       
    Mon Sep 12 18:41:13 PDT 2016
    
    
  
meikeb marked 6 inline comments as done.
meikeb added a comment.
Thanks for taking the time and doing these great reviews! Really appreciated!
================
Comment at: lib/Sema/SemaChecking.cpp:4143-4150
@@ -4049,3 +4142,10 @@
     if (StrE) {
-      CheckFormatString(S, StrE, E, Args, HasVAListArg, format_idx,
+      if (Offset.isNegative() || Offset > StrE->getLength()) {
+        // TODO: It would be better to have an explicit warning for out of
+        // bounds literals.
+        return SLCT_NotALiteral;
+      }
+      FormatStringLiteral FStr =
+          FormatStringLiteral(StrE, Offset.sextOrTrunc(64).getSExtValue());
+      CheckFormatString(S, &FStr, E, Args, HasVAListArg, format_idx,
                         firstDataArg, Type, InFunctionCall, CallType,
----------------
The = case is part of a different warning. It's checked in CheckFormatString.
https://reviews.llvm.org/D23820
    
    
More information about the cfe-commits
mailing list