1 // RUN: %check_clang_tidy %s bugprone-narrowing-conversions %t \
2 // RUN: -config="{CheckOptions: { \
3 // RUN:   bugprone-narrowing-conversions.PedanticMode: true}}" \
4 // RUN: -- -target x86_64-unknown-linux -fsigned-char
5 
6 namespace floats {
7 
8 void triggers_wrong_constant_type_warning(double d) {
9   int i = 0.0;
10   // CHECK-MESSAGES: :[[@LINE-1]]:11: warning: constant value should be of type of type 'int' instead of 'double' [bugprone-narrowing-conversions]
11   i += 2.0;
12   // CHECK-MESSAGES: :[[@LINE-1]]:8: warning: constant value should be of type of type 'int' instead of 'double' [bugprone-narrowing-conversions]
13   i += 2.0f;
14   // CHECK-MESSAGES: :[[@LINE-1]]:8: warning: constant value should be of type of type 'int' instead of 'float' [bugprone-narrowing-conversions]
15 }
16 
17 void triggers_narrowing_warning_when_overflowing() {
18   unsigned short us = 65537.0;
19   // CHECK-MESSAGES: :[[@LINE-1]]:23: warning: narrowing conversion from constant 'double' to 'unsigned short' [bugprone-narrowing-conversions]
20 }
21 
22 } // namespace floats
23