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

Method enum15

test/testsymboldatabase.cpp:6636–6716  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

6634 }
6635
6636 void enum15() {
6637 {
6638 GET_SYMBOL_DB("struct S {\n"
6639 " S();\n"
6640 " enum E { E0 };\n"
6641 "};\n"
6642 "S::S() {\n"
6643 " E e = E::E0;\n"
6644 "}\n");
6645 ASSERT(db != nullptr);
6646 auto it = db->scopeList.begin();
6647 std::advance(it, 2);
6648 const Enumerator* E0 = it->findEnumerator("E0");
6649 ASSERT(E0 && E0->value_known && E0->value == 0);
6650 const Token* const e = Token::findsimplematch(tokenizer.tokens(), "E0 ;");
6651 ASSERT(e && e->enumerator());
6652 ASSERT_EQUALS(E0, e->enumerator());
6653 }
6654 {
6655 GET_SYMBOL_DB("struct S {\n"
6656 " S(bool x);\n"
6657 " enum E { E0 };\n"
6658 "};\n"
6659 "S::S(bool x) {\n"
6660 " if (x)\n"
6661 " E e = E::E0;\n"
6662 "}\n");
6663 ASSERT(db != nullptr);
6664 auto it = db->scopeList.begin();
6665 std::advance(it, 2);
6666 const Enumerator* E0 = it->findEnumerator("E0");
6667 ASSERT(E0 && E0->value_known && E0->value == 0);
6668 const Token* const e = Token::findsimplematch(tokenizer.tokens(), "E0 ;");
6669 ASSERT(e && e->enumerator());
6670 ASSERT_EQUALS(E0, e->enumerator());
6671 }
6672 {
6673 GET_SYMBOL_DB("struct S {\n"
6674 " enum E { E0 };\n"
6675 " void f(int i);\n"
6676 " S();\n"
6677 " int m;\n"
6678 "};\n"
6679 "S::S() : m(E0) {}\n"
6680 "void S::f(int i) {\n"
6681 " if (i != E0) {}\n"
6682 "}\n");
6683 ASSERT(db != nullptr);
6684 auto it = db->scopeList.begin();
6685 std::advance(it, 2);
6686 const Enumerator* E0 = it->findEnumerator("E0");
6687 ASSERT(E0 && E0->value_known && E0->value == 0);
6688 const Token* e = Token::findsimplematch(tokenizer.tokens(), "E0 )");
6689 ASSERT(e && e->enumerator());
6690 ASSERT_EQUALS(E0, e->enumerator());
6691 e = Token::findsimplematch(e->next(), "E0 )");
6692 ASSERT(e && e->enumerator());
6693 ASSERT_EQUALS(E0, e->enumerator());

Callers

nothing calls this directly

Calls 4

findsimplematchFunction · 0.85
findEnumeratorMethod · 0.80
nextMethod · 0.80
beginMethod · 0.45

Tested by

no test coverage detected