brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.9 KiB · 42927c6 Raw
111 lines · cpp
1// RUN: %check_clang_tidy -std=c++11-or-later %s bugprone-non-zero-enum-to-bool-conversion %t2 3namespace with::issue {4 5enum class EStatusC : char {6  SUCCESS       = 1,7  FAILURE       = 2,8  INVALID_PARAM = 3,9  UNKNOWN       = 410};11 12bool testEnumConversion(EStatusC value) {13  // CHECK-MESSAGES: :[[@LINE+1]]:10: warning: conversion of 'EStatusC' into 'bool' will always return 'true', enum doesn't have a zero-value enumerator [bugprone-non-zero-enum-to-bool-conversion]14  return static_cast<bool>(value);15}16 17enum class EStatusS : short {18  SUCCESS       = 1,19  FAILURE       = 2,20  INVALID_PARAM = 3,21  UNKNOWN       = 422};23 24bool testEnumConversion(EStatusS value) {25  // CHECK-MESSAGES: :[[@LINE+1]]:10: warning: conversion of 'EStatusS' into 'bool' will always return 'true', enum doesn't have a zero-value enumerator [bugprone-non-zero-enum-to-bool-conversion]26  return static_cast<bool>(value);27}28 29 30enum class EStatusI : int {31  SUCCESS       = 1,32  FAILURE       = 2,33  INVALID_PARAM = 3,34  UNKNOWN       = 435};36 37bool testEnumConversion(EStatusI value) {38  // CHECK-MESSAGES: :[[@LINE+1]]:10: warning: conversion of 'EStatusI' into 'bool' will always return 'true', enum doesn't have a zero-value enumerator [bugprone-non-zero-enum-to-bool-conversion]39  return static_cast<bool>(value);40}41 42enum class EStatus {43  SUCCESS       = 1,44  FAILURE       = 2,45  INVALID_PARAM = 3,46  UNKNOWN       = 447};48 49bool testEnumConversion(EStatus value) {50  // CHECK-MESSAGES: :[[@LINE+1]]:10: warning: conversion of 'EStatus' into 'bool' will always return 'true', enum doesn't have a zero-value enumerator [bugprone-non-zero-enum-to-bool-conversion]51  return static_cast<bool>(value);52}53 54namespace enum_int {55 56enum EResult : int {57  OK = 1,58  NOT_OK59};60 61bool testEnumConversion(const EResult& value) {62  // CHECK-MESSAGES: :[[@LINE+1]]:10: warning: conversion of 'EResult' into 'bool' will always return 'true', enum doesn't have a zero-value enumerator [bugprone-non-zero-enum-to-bool-conversion]63  return value;64}65 66}67 68namespace enum_short {69 70enum EResult : short {71  OK = 1,72  NOT_OK73};74 75bool testEnumConversion(const EResult& value) {76  // CHECK-MESSAGES: :[[@LINE+1]]:10: warning: conversion of 'EResult' into 'bool' will always return 'true', enum doesn't have a zero-value enumerator [bugprone-non-zero-enum-to-bool-conversion]77  return value;78}79 80}81 82namespace enum_char {83 84enum EResult : char {85  OK = 1,86  NOT_OK87};88 89bool testEnumConversion(const EResult& value) {90  // CHECK-MESSAGES: :[[@LINE+1]]:10: warning: conversion of 'EResult' into 'bool' will always return 'true', enum doesn't have a zero-value enumerator [bugprone-non-zero-enum-to-bool-conversion]91  return value;92}93 94}95 96namespace enum_default {97 98enum EResult {99  OK = 1,100  NOT_OK101};102 103bool testEnumConversion(const EResult& value) {104  // CHECK-MESSAGES: :[[@LINE+1]]:10: warning: conversion of 'EResult' into 'bool' will always return 'true', enum doesn't have a zero-value enumerator [bugprone-non-zero-enum-to-bool-conversion]105  return value;106}107 108}109 110}111