MCPcopy Create free account
hub / github.com/cppcheck-opensource/cppcheck / enum18

Method enum18

test/testsymboldatabase.cpp:6824–6895  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

6822 }
6823
6824 void enum18() {
6825 {
6826 GET_SYMBOL_DB("namespace {\n"
6827 " enum { E0 };\n"
6828 "}\n"
6829 "void f() {\n"
6830 " if (0 > E0) {}\n"
6831 "}\n");
6832 ASSERT(db != nullptr);
6833 auto it = db->scopeList.begin();
6834 std::advance(it, 2);
6835 const Enumerator* E0 = it->findEnumerator("E0");
6836 ASSERT(E0 && E0->value_known && E0->value == 0);
6837 const Token* const e = Token::findsimplematch(tokenizer.tokens(), "E0 )");
6838 ASSERT(e && e->enumerator());
6839 ASSERT_EQUALS(E0, e->enumerator());
6840 }
6841 {
6842 GET_SYMBOL_DB("namespace ns {\n" // #12114
6843 " enum { V1 };\n"
6844 " struct C1 {\n"
6845 " enum { V2 };\n"
6846 " };\n"
6847 "}\n"
6848 "using namespace ns;\n"
6849 "void f() {\n"
6850 " if (0 > V1) {}\n"
6851 " if (0 > C1::V2) {}\n"
6852 "}\n");
6853 ASSERT(db != nullptr);
6854 auto it = db->scopeList.begin();
6855 std::advance(it, 2);
6856 const Enumerator* V1 = it->findEnumerator("V1");
6857 ASSERT(V1 && V1->value_known && V1->value == 0);
6858 const Token* const e1 = Token::findsimplematch(tokenizer.tokens(), "V1 )");
6859 ASSERT(e1 && e1->enumerator());
6860 ASSERT_EQUALS(V1, e1->enumerator());
6861 std::advance(it, 2);
6862 const Enumerator* V2 = it->findEnumerator("V2");
6863 ASSERT(V2 && V2->value_known && V2->value == 0);
6864 const Token* const e2 = Token::findsimplematch(tokenizer.tokens(), "V2 )");
6865 ASSERT(e2 && e2->enumerator());
6866 ASSERT_EQUALS(V2, e2->enumerator());
6867 }
6868 {
6869 GET_SYMBOL_DB("namespace ns {\n"
6870 " enum { V1 };\n"
6871 " struct C1 {\n"
6872 " enum { V2 };\n"
6873 " };\n"
6874 "}\n"
6875 "void f() {\n"
6876 " using namespace ns;\n"
6877 " if (0 > V1) {}\n"
6878 " if (0 > C1::V2) {}\n"
6879 "}\n");
6880 ASSERT(db != nullptr);
6881 auto it = db->scopeList.begin();

Callers

nothing calls this directly

Calls 3

findsimplematchFunction · 0.85
findEnumeratorMethod · 0.80
beginMethod · 0.45

Tested by

no test coverage detected