Branch Coverage

/usr/local/lib/perl5/site_perl/5.26.1/x86_64-linux/CPP/panda/lib.x/i/panda/cast.h
Criterion Covered Total %
branch 96 176 54.5


line true false branch
16 12 30 if (!map) {
4 26 if (!map) {
4 20 if (!map) {
9 16 if (!map) {
15 124 if (!map) {
11 37 if (!map) {
12 48 if (!map) {
9 60 if (!map) {
17 12 0 thread_local DynCastCacheMap _map;
4 0 thread_local DynCastCacheMap _map;
4 0 thread_local DynCastCacheMap _map;
9 0 thread_local DynCastCacheMap _map;
15 0 thread_local DynCastCacheMap _map;
11 0 thread_local DynCastCacheMap _map;
12 0 thread_local DynCastCacheMap _map;
9 0 thread_local DynCastCacheMap _map;
32 0 42 if (!obj) return NULL;
0 30 if (!obj) return NULL;
0 24 if (!obj) return NULL;
0 25 if (!obj) return NULL;
0 139 if (!obj) return NULL;
0 48 if (!obj) return NULL;
0 60 if (!obj) return NULL;
0 69 if (!obj) return NULL;
34 42 0 intptr_t key = (intptr_t)typeid(*obj).name();
30 0 intptr_t key = (intptr_t)typeid(*obj).name();
24 0 intptr_t key = (intptr_t)typeid(*obj).name();
25 0 intptr_t key = (intptr_t)typeid(*obj).name();
139 0 intptr_t key = (intptr_t)typeid(*obj).name();
48 0 intptr_t key = (intptr_t)typeid(*obj).name();
60 0 intptr_t key = (intptr_t)typeid(*obj).name();
69 0 intptr_t key = (intptr_t)typeid(*obj).name();
37 42 0 DynCastCacheMap::iterator it = map.find(key);
30 0 DynCastCacheMap::iterator it = map.find(key);
24 0 DynCastCacheMap::iterator it = map.find(key);
25 0 DynCastCacheMap::iterator it = map.find(key);
139 0 DynCastCacheMap::iterator it = map.find(key);
48 0 DynCastCacheMap::iterator it = map.find(key);
60 0 DynCastCacheMap::iterator it = map.find(key);
69 0 DynCastCacheMap::iterator it = map.find(key);
38 30 12 if (it != map.end())
26 4 if (it != map.end())
20 4 if (it != map.end())
16 9 if (it != map.end())
124 15 if (it != map.end())
37 11 if (it != map.end())
48 12 if (it != map.end())
60 9 if (it != map.end())
39 30 0 return it->second != INCORRECT_PTRDIFF ? reinterpret_cast((char*)obj - it->second) : NULL;
26 0 return it->second != INCORRECT_PTRDIFF ? reinterpret_cast((char*)obj - it->second) : NULL;
20 0 return it->second != INCORRECT_PTRDIFF ? reinterpret_cast((char*)obj - it->second) : NULL;
16 0 return it->second != INCORRECT_PTRDIFF ? reinterpret_cast((char*)obj - it->second) : NULL;
124 0 return it->second != INCORRECT_PTRDIFF ? reinterpret_cast((char*)obj - it->second) : NULL;
37 0 return it->second != INCORRECT_PTRDIFF ? reinterpret_cast((char*)obj - it->second) : NULL;
48 0 return it->second != INCORRECT_PTRDIFF ? reinterpret_cast((char*)obj - it->second) : NULL;
60 0 return it->second != INCORRECT_PTRDIFF ? reinterpret_cast((char*)obj - it->second) : NULL;
40 0 12 DERIVED* ret = dynamic_cast(obj);
0 4 DERIVED* ret = dynamic_cast(obj);
0 4 DERIVED* ret = dynamic_cast(obj);
0 9 DERIVED* ret = dynamic_cast(obj);
0 15 DERIVED* ret = dynamic_cast(obj);
0 11 DERIVED* ret = dynamic_cast(obj);
0 12 DERIVED* ret = dynamic_cast(obj);
0 9 DERIVED* ret = dynamic_cast(obj);
41 12 0 if (ret) map[key] = (char*)obj - (char*)ret;
12 0 if (ret) map[key] = (char*)obj - (char*)ret;
4 0 if (ret) map[key] = (char*)obj - (char*)ret;
4 0 if (ret) map[key] = (char*)obj - (char*)ret;
4 0 if (ret) map[key] = (char*)obj - (char*)ret;
4 0 if (ret) map[key] = (char*)obj - (char*)ret;
9 0 if (ret) map[key] = (char*)obj - (char*)ret;
9 0 if (ret) map[key] = (char*)obj - (char*)ret;
15 0 if (ret) map[key] = (char*)obj - (char*)ret;
15 0 if (ret) map[key] = (char*)obj - (char*)ret;
11 0 if (ret) map[key] = (char*)obj - (char*)ret;
11 0 if (ret) map[key] = (char*)obj - (char*)ret;
12 0 if (ret) map[key] = (char*)obj - (char*)ret;
12 0 if (ret) map[key] = (char*)obj - (char*)ret;
9 0 if (ret) map[key] = (char*)obj - (char*)ret;
9 0 if (ret) map[key] = (char*)obj - (char*)ret;
42 0 0 else map[key] = INCORRECT_PTRDIFF;
0 0 else map[key] = INCORRECT_PTRDIFF;
0 0 else map[key] = INCORRECT_PTRDIFF;
0 0 else map[key] = INCORRECT_PTRDIFF;
0 0 else map[key] = INCORRECT_PTRDIFF;
0 0 else map[key] = INCORRECT_PTRDIFF;
0 0 else map[key] = INCORRECT_PTRDIFF;
0 0 else map[key] = INCORRECT_PTRDIFF;