diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_format.inc b/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_format.inc index 40ebef2b1f0c..f7b0854371eb 100644 --- a/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_format.inc +++ b/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_format.inc @@ -116,6 +116,8 @@ static int format_get_value_size(char convSpecifier, return lengthModifier[1] == 'h' ? sizeof(char) : sizeof(short); case 'l': return lengthModifier[1] == 'l' ? sizeof(long long) : sizeof(long); + case 'q': + return sizeof(long long); case 'L': return sizeof(long long); case 'j': diff --git a/compiler-rt/lib/sanitizer_common/tests/sanitizer_format_interceptor_test.cc b/compiler-rt/lib/sanitizer_common/tests/sanitizer_format_interceptor_test.cc index 0ea3932a70cf..da29995911cd 100644 --- a/compiler-rt/lib/sanitizer_common/tests/sanitizer_format_interceptor_test.cc +++ b/compiler-rt/lib/sanitizer_common/tests/sanitizer_format_interceptor_test.cc @@ -111,6 +111,7 @@ TEST(SanitizerCommonInterceptors, Scanf) { testScanf("ab%u%dc", 2, I, I); testScanf("%ld", 1, L); testScanf("%llu", 1, LL); + testScanf("%qd", 1, LL); testScanf("a %hd%hhx", 2, S, C); testScanf("%c", 1, C);