Make the InvalidValueData take a SourceLocation.

llvm-svn: 191807
This commit is contained in:
Nick Lewycky 2013-10-02 02:29:47 +00:00
parent bfcff68516
commit b7aa592c19
2 changed files with 7 additions and 6 deletions

View File

@ -246,15 +246,16 @@ void __ubsan::__ubsan_handle_float_cast_overflow_abort(
void __ubsan::__ubsan_handle_load_invalid_value(InvalidValueData *Data, void __ubsan::__ubsan_handle_load_invalid_value(InvalidValueData *Data,
ValueHandle Val) { ValueHandle Val) {
// TODO: Add deduplication once a SourceLocation is generated for this check. SourceLocation Loc = Data->Loc.acquire();
Diag(getCallerLocation(), DL_Error, if (Loc.isDisabled())
return;
Diag(Loc, DL_Error,
"load of value %0, which is not a valid value for type %1") "load of value %0, which is not a valid value for type %1")
<< Value(Data->Type, Val) << Data->Type; << Value(Data->Type, Val) << Data->Type;
} }
void __ubsan::__ubsan_handle_load_invalid_value_abort(InvalidValueData *Data, void __ubsan::__ubsan_handle_load_invalid_value_abort(InvalidValueData *Data,
ValueHandle Val) { ValueHandle Val) {
Diag(getCallerLocation(), DL_Error, __ubsan_handle_load_invalid_value(Data, Val);
"load of value %0, which is not a valid value for type %1")
<< Value(Data->Type, Val) << Data->Type;
Die(); Die();
} }

View File

@ -105,7 +105,7 @@ struct FloatCastOverflowData {
RECOVERABLE(float_cast_overflow, FloatCastOverflowData *Data, ValueHandle From) RECOVERABLE(float_cast_overflow, FloatCastOverflowData *Data, ValueHandle From)
struct InvalidValueData { struct InvalidValueData {
// FIXME: SourceLocation Loc; SourceLocation Loc;
const TypeDescriptor &Type; const TypeDescriptor &Type;
}; };