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

Method enum14

test/testsymboldatabase.cpp:6605–6634  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

6603 }
6604
6605 void enum14() {
6606 GET_SYMBOL_DB("void f() {\n" // #11421
6607 " enum E { A = 0, B = 0xFFFFFFFFFFFFFFFFull, C = 0x7FFFFFFFFFFFFFFF };\n"
6608 " E e = B;\n"
6609 " auto s1 = e >> 32;\n"
6610 " auto s2 = B >> 32;\n"
6611 " enum F { F0 = sizeof(int) };\n"
6612 " F f = F0;\n"
6613 "}\n");
6614 ASSERT(db != nullptr);
6615 auto it = db->scopeList.begin();
6616 std::advance(it, 2);
6617 const Enumerator* B = it->findEnumerator("B");
6618 ASSERT(B);
6619 TODO_ASSERT(B->value_known);
6620 const Enumerator* C = it->findEnumerator("C");
6621 ASSERT(C && C->value_known);
6622 const Token* const s1 = Token::findsimplematch(tokenizer.tokens(), "s1 =");
6623 ASSERT(s1 && s1->valueType());
6624 ASSERT_EQUALS(s1->valueType()->type, ValueType::Type::LONGLONG);
6625 const Token* const s2 = Token::findsimplematch(s1, "s2 =");
6626 ASSERT(s2 && s2->valueType());
6627 ASSERT_EQUALS(s2->valueType()->type, ValueType::Type::LONGLONG);
6628 ++it;
6629 const Enumerator* F0 = it->findEnumerator("F0");
6630 ASSERT(F0 && F0->value_known);
6631 const Token* const f = Token::findsimplematch(s2, "f =");
6632 ASSERT(f && f->valueType());
6633 ASSERT_EQUALS(f->valueType()->type, ValueType::Type::INT);
6634 }
6635
6636 void enum15() {
6637 {

Callers

nothing calls this directly

Calls 3

findsimplematchFunction · 0.85
findEnumeratorMethod · 0.80
beginMethod · 0.45

Tested by

no test coverage detected