void MemoryMapBuilderCS::processInstance(const Instance &inst, MemoryMapNode *node, VariableTypeContainerList *path) { // Ignore user-land objects if (inst.address() < _map->_vmem->memSpecs().pageOffset) return; // Ignore instances which we cannot access if (!inst.isValid() || !inst.isAccessible()) return; try { if (MemoryMapHeuristics::isFunctionPointer(inst)) processFunctionPointer(inst, node, path); else if (inst.type()->type() & rtPointer) processPointer(inst, node); else if (inst.type()->type() & rtArray) processArray(inst, node, path); else if (inst.type()->type() & StructOrUnion) processStructured(inst, node, path); } catch (GenericException&) { // Do nothing } }
int main(int argc, const char * argv[]) { // insert code here... MyClass a; // MyClass b(a); // MyClass c = a; MyDelClass a1; // MyClass b1(a1); // MyDelClass c1 = a1; a1.isAcceptable( 10 ); // a1.isAcceptable( 10.345 ); // implicit-cast is disable. // a1.isAcceptable( 'c' ); // implicit-cast is disable. // a1.isAcceptable( true ); // implicit-cast is disable. const char* str = "I'm fool"; processPointer( str ); MyClass* obj = new MyClass(); // processPointer( obj ); // This template type is disable delete obj; void* vPtr = nullptr; // processPointer( vPtr ); // This template type is disable a1.processPointer( str ); // a1.processPointer( obj ); // This template type is disable // a1.processPointer( vPtr ); // This template type is disable std::cout << "Hello, World!\n"; return 0; }