LibSanitizer+AK: Add float cast overflow handler

This is not enabled by default in GCC, but is in Clang.
This commit is contained in:
Daniel Bertalan 2021-08-06 08:26:21 +02:00 committed by Andreas Kling
parent e04d20ec20
commit 653d22e21f
2 changed files with 13 additions and 0 deletions

View file

@ -117,4 +117,10 @@ struct PointerOverflowData {
SourceLocation location;
};
struct FloatCastOverflowData {
SourceLocation location;
TypeDescriptor const& from_type;
TypeDescriptor const& to_type;
};
}

View file

@ -231,4 +231,11 @@ void __ubsan_handle_pointer_overflow(const PointerOverflowData& data, ValueHandl
}
print_location(data.location);
}
void __ubsan_handle_float_cast_overflow(const FloatCastOverflowData&, ValueHandle) __attribute__((used));
void __ubsan_handle_float_cast_overflow(const FloatCastOverflowData& data, ValueHandle)
{
WARNLN_AND_DBGLN("UBSAN: overflow when casting from {} to {}", data.from_type.name(), data.to_type.name());
print_location(data.location);
}
}