]> granicus.if.org Git - clang/commitdiff
Revert "Fix printf specifier handling: invalid specifier should not be marked as...
authorMehdi Amini <mehdi.amini@apple.com>
Thu, 15 Dec 2016 04:58:51 +0000 (04:58 +0000)
committerMehdi Amini <mehdi.amini@apple.com>
Thu, 15 Dec 2016 04:58:51 +0000 (04:58 +0000)
This reverts commit r289762, wasn't ready to be pushed, it broke the printf tests.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@289763 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Analysis/Analyses/FormatString.h
test/CodeGen/builtins.c

index 8c531d638cc2200e444250538137e9a22445fb3e..6813da98c63b921463c6d0c0faacb312da8c4819 100644 (file)
@@ -211,8 +211,6 @@ public:
         return false;
       case PercentArg:
         return false;
-      case InvalidSpecifier:
-        return false;
       default:
         return true;
     }
index 390c2e35bf9d33109f7c8942458e33e04d029aa1..a0f846b14f1d2625f84cc745998baaa64f1f1184 100644 (file)
@@ -538,34 +538,6 @@ void test_builtin_os_log_precision_width(void *buf, const char *data,
   __builtin_os_log_format(buf, "Hello %*.*s World", precision, width, data);
 }
 
-// CHECK-LABEL: define void @test_builtin_os_log_invalid
-// CHECK: (i8* [[BUF:%.*]], i32 [[DATA:%.*]])
-void test_builtin_os_log_invalid(void *buf, int data) {
-  volatile int len;
-  // CHECK: store i8* [[BUF]], i8** [[BUF_ADDR:%.*]], align 8
-  // CHECK: store i32 [[DATA]], i32* [[DATA_ADDR:%.*]]
-
-  // CHECK: store volatile i32 8,
-  len = __builtin_os_log_format_buffer_size("invalid specifier %: %d even a trailing one%", data);
-
-  // CHECK: [[BUF2:%.*]] = load i8*, i8** [[BUF_ADDR]]
-  // CHECK: [[SUMMARY:%.*]] = getelementptr i8, i8* [[BUF2]], i64 0
-  // CHECK: store i8 0, i8* [[SUMMARY]]
-  // CHECK: [[NUM_ARGS:%.*]] = getelementptr i8, i8* [[BUF2]], i64 1
-  // CHECK: store i8 1, i8* [[NUM_ARGS]]
-
-  // CHECK: [[ARG1_DESC:%.*]] = getelementptr i8, i8* [[BUF2]], i64 2
-  // CHECK: store i8 0, i8* [[ARG1_DESC]]
-  // CHECK: [[ARG1_SIZE:%.*]] = getelementptr i8, i8* [[BUF2]], i64 3
-  // CHECK: store i8 4, i8* [[ARG1_SIZE]]
-  // CHECK: [[ARG1:%.*]] = getelementptr i8, i8* [[BUF2]], i64 4
-  // CHECK: [[ARG1_INT:%.*]] = bitcast i8* [[ARG1]] to i32*
-  // CHECK: [[ARG1_VAL:%.*]] = load i32, i32* [[DATA_ADDR]]
-  // CHECK: store i32 [[ARG1_VAL]], i32* [[ARG1_INT]]
-
-  __builtin_os_log_format(buf, "invalid specifier %: %d even a trailing one%", data);
-}
-
 // CHECK-LABEL: define void @test_builtin_os_log_percent
 // CHECK: (i8* [[BUF:%.*]], i8* [[DATA1:%.*]], i8* [[DATA2:%.*]])
 // Check that the %% which does not consume any argument is correctly handled