Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
cmake_minimum_required(VERSION 3.20)

project(typeart
VERSION 2.1
VERSION 2.2
HOMEPAGE_URL https://github.com/tudasc/TypeART
DESCRIPTION "LLVM-based type and memory allocation tracking sanitizer"
)
Expand Down
206 changes: 113 additions & 93 deletions README.md

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion lib/runtime/RuntimeInterface.h
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ typeart_status typeart_get_type(const void* addr, typeart_type_info* type_info);
// typeart_status typeart_get_containing_type(const void* addr, int* type_id, size_t* count, const void** base_address,
// size_t* byte_offset);

typeart_status typeart_get_containing_type(typeart_type_info type_info, typeart_base_type_info* containing_type,
typeart_status typeart_get_containing_type(const typeart_type_info* type_info, typeart_base_type_info* containing_type,
size_t* byte_offset);

/**
Expand Down
12 changes: 6 additions & 6 deletions lib/runtime/TypeResolution.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -359,15 +359,15 @@ typeart_status typeart_get_type(const void* addr, typeart_type_info* base_type)
return typeart::detail::query_type(addr, *base_type);
}

typeart_status typeart_get_containing_type(typeart_type_info type, typeart_base_type_info* containing_type,
typeart_status typeart_get_containing_type(const typeart_type_info* type, typeart_base_type_info* containing_type,
size_t* byte_offset) {
typeart::RTGuard guard;
containing_type->type_id = type.base_type_info.type_id;
containing_type->count = type.base_type_info.count;
containing_type->address = type.base_type_info.address;
const typeart::PointerInfo info{type.base_type_info.type_id, type.base_type_info.count};
containing_type->type_id = type->base_type_info.type_id;
containing_type->count = type->base_type_info.count;
containing_type->address = type->base_type_info.address;
const typeart::PointerInfo info{type->base_type_info.type_id, type->base_type_info.count};
const auto result = typeart::RuntimeSystem::get().type_resolution().getContainingTypeInfo(
type.address, containing_type->address, info, &containing_type->count, byte_offset);
type->address, containing_type->address, info, &containing_type->count, byte_offset);

return result;
}
Expand Down
2 changes: 1 addition & 1 deletion test/runtime/38_resolve_struct.c
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ void type_check_containing(const void* addr) {
return;
}
typeart_base_type_info containing;
status = typeart_get_containing_type(info, &containing, &offset);
status = typeart_get_containing_type(&info, &containing, &offset);

if (status != TYPEART_OK) {
fprintf(stderr, "[Error]: Status not OK: %i for %p\n", status, addr);
Expand Down
4 changes: 2 additions & 2 deletions test/runtime/53_get_type.c
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ void type_check_containing(const void* addr) {
return;
}
typeart_base_type_info info_base;
status = typeart_get_containing_type(info, &info_base, &offset);
status = typeart_get_containing_type(&info, &info_base, &offset);

if (status != TYPEART_OK) {
fprintf(stderr, "[Error]: Status not OK: %i for %p\n", status, addr);
Expand All @@ -77,7 +77,7 @@ void type_check_sub(const void* addr, size_t offset) {
return;
}
typeart_base_type_info info_base;
status = typeart_get_containing_type(info, &info_base, &offset_containing);
status = typeart_get_containing_type(&info, &info_base, &offset_containing);
if (status != TYPEART_OK) {
fprintf(stderr, "[Error]: with containing type\n");
return;
Expand Down
4 changes: 2 additions & 2 deletions test/runtime/54_get_type_illegal.c
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ void type_check_containing(const void* addr) {
return;
}
typeart_base_type_info info_base;
status = typeart_get_containing_type(info, &info_base, &offset);
status = typeart_get_containing_type(&info, &info_base, &offset);

if (status != TYPEART_OK) {
fprintf(stderr, "[Expected]: Status not OK: %s for %p\n", err_code_to_string(status), addr);
Expand All @@ -88,7 +88,7 @@ void type_check_sub(const void* addr, size_t offset) {
return;
}
typeart_base_type_info info_base;
status = typeart_get_containing_type(info, &info_base, &offset_containing);
status = typeart_get_containing_type(&info, &info_base, &offset_containing);
if (status != TYPEART_OK) {
fprintf(stderr, "[Error]: with containing type\n");
return;
Expand Down