1 // RUN: %check_clang_tidy -check-suffix=DEFAULT %s \ 2 // RUN: bugprone-narrowing-conversions %t -- 3 4 // RUN: %check_clang_tidy -check-suffix=WARN %s \ 5 // RUN: bugprone-narrowing-conversions %t -- \ 6 // RUN: -config='{CheckOptions: { \ 7 // RUN: bugprone-narrowing-conversions.WarnWithinTemplateInstantiation: 1 \ 8 // RUN: }}' 9 10 template <typename OrigType> 11 void assign_in_template(OrigType jj) { 12 int ii; 13 ii = jj; 14 // DEFAULT: Warning disabled because WarnWithinTemplateInstantiation=0. 15 // CHECK-MESSAGES-WARN: :[[@LINE-2]]:8: warning: narrowing conversion from 'long long' to signed type 'int' is implementation-defined [bugprone-narrowing-conversions] 16 } 17 18 void narrow_inside_template_not_ok() { 19 long long j = 123; 20 assign_in_template(j); 21 } 22 23 void assign_outside_template(long long jj) { 24 int ii; 25 ii = jj; 26 // CHECK-MESSAGES-DEFAULT: :[[@LINE-1]]:8: warning: narrowing conversion from 'long long' to signed type 'int' is implementation-defined [bugprone-narrowing-conversions] 27 // CHECK-MESSAGES-WARN: :[[@LINE-2]]:8: warning: narrowing conversion from 'long long' to signed type 'int' is implementation-defined [bugprone-narrowing-conversions] 28 } 29 30 void narrow_outside_template_not_ok() { 31 long long j = 123; 32 assign_outside_template(j); 33 } 34