34 lines · cpp
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 10template <typename OrigType>11void 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 18void narrow_inside_template_not_ok() {19 long long j = 123;20 assign_in_template(j);21}22 23void 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 30void narrow_outside_template_not_ok() {31 long long j = 123;32 assign_outside_template(j);33}34