diff options
author | Vlad Tsyrklevich <vlad@tsyrklevich.net> | 2019-01-15 03:38:02 +0000 |
---|---|---|
committer | Vlad Tsyrklevich <vlad@tsyrklevich.net> | 2019-01-15 03:38:02 +0000 |
commit | 86e68fda3b1b3ebe712bb06558b863de2784be29 (patch) | |
tree | 38facfcc854f734b96f6ebaba219b649c3514da1 /compiler-rt/lib | |
parent | 2d5b317cfc9837ed5e3886c4b989538176517d62 (diff) | |
download | bcm5719-llvm-86e68fda3b1b3ebe712bb06558b863de2784be29.tar.gz bcm5719-llvm-86e68fda3b1b3ebe712bb06558b863de2784be29.zip |
Revert alignment assumptions changes
Revert r351104-6, r351109, r351110, r351119, r351134, and r351153. These
changes fail on the sanitizer bots.
llvm-svn: 351159
Diffstat (limited to 'compiler-rt/lib')
-rw-r--r-- | compiler-rt/lib/ubsan/ubsan_checks.inc | 1 | ||||
-rw-r--r-- | compiler-rt/lib/ubsan/ubsan_handlers.cc | 56 | ||||
-rw-r--r-- | compiler-rt/lib/ubsan/ubsan_handlers.h | 11 | ||||
-rw-r--r-- | compiler-rt/lib/ubsan/ubsan_interface.inc | 2 | ||||
-rw-r--r-- | compiler-rt/lib/ubsan_minimal/ubsan_minimal_handlers.cc | 1 |
5 files changed, 0 insertions, 71 deletions
diff --git a/compiler-rt/lib/ubsan/ubsan_checks.inc b/compiler-rt/lib/ubsan/ubsan_checks.inc index ea82f89e129..e976ea4f6ab 100644 --- a/compiler-rt/lib/ubsan/ubsan_checks.inc +++ b/compiler-rt/lib/ubsan/ubsan_checks.inc @@ -21,7 +21,6 @@ UBSAN_CHECK(GenericUB, "undefined-behavior", "undefined") UBSAN_CHECK(NullPointerUse, "null-pointer-use", "null") UBSAN_CHECK(PointerOverflow, "pointer-overflow", "pointer-overflow") UBSAN_CHECK(MisalignedPointerUse, "misaligned-pointer-use", "alignment") -UBSAN_CHECK(AlignmentAssumption, "alignment-assumption", "alignment") UBSAN_CHECK(InsufficientObjectSize, "insufficient-object-size", "object-size") UBSAN_CHECK(SignedIntegerOverflow, "signed-integer-overflow", "signed-integer-overflow") diff --git a/compiler-rt/lib/ubsan/ubsan_handlers.cc b/compiler-rt/lib/ubsan/ubsan_handlers.cc index 11e09b0ff0f..53430a6076a 100644 --- a/compiler-rt/lib/ubsan/ubsan_handlers.cc +++ b/compiler-rt/lib/ubsan/ubsan_handlers.cc @@ -106,62 +106,6 @@ void __ubsan::__ubsan_handle_type_mismatch_v1_abort(TypeMismatchData *Data, Die(); } -static void handleAlignmentAssumptionImpl(AlignmentAssumptionData *Data, - ValueHandle Pointer, - ValueHandle Alignment, - ValueHandle Offset, - ReportOptions Opts) { - Location Loc = Data->Loc.acquire(); - SourceLocation AssumptionLoc = Data->AssumptionLoc.acquire(); - - ErrorType ET = ErrorType::AlignmentAssumption; - - if (ignoreReport(Loc.getSourceLocation(), Opts, ET)) - return; - - ScopedReport R(Opts, Loc, ET); - - uptr RealPointer = Pointer - Offset; - uptr LSB = LeastSignificantSetBitIndex(RealPointer); - uptr ActualAlignment = uptr(1) << LSB; - - uptr Mask = Alignment - 1; - uptr MisAlignmentOffset = RealPointer & Mask; - - if (!Offset) { - Diag(Loc, DL_Error, ET, - "assumption of %0 byte alignment for pointer of type %1 failed") - << Alignment << Data->Type; - } else { - Diag(Loc, DL_Error, ET, - "assumption of %0 byte alignment (with offset of %1 byte) for pointer " - "of type %2 failed") - << Alignment << Offset << Data->Type; - } - - if (!AssumptionLoc.isInvalid()) - Diag(AssumptionLoc, DL_Note, ET, "alignment assumption was specified here"); - - Diag(RealPointer, DL_Note, ET, - "%0address is %1 aligned, misalignment offset is %2 bytes") - << (Offset ? "offset " : "") << ActualAlignment << MisAlignmentOffset; -} - -void __ubsan::__ubsan_handle_alignment_assumption(AlignmentAssumptionData *Data, - ValueHandle Pointer, - ValueHandle Alignment, - ValueHandle Offset) { - GET_REPORT_OPTIONS(false); - handleAlignmentAssumptionImpl(Data, Pointer, Alignment, Offset, Opts); -} -void __ubsan::__ubsan_handle_alignment_assumption_abort( - AlignmentAssumptionData *Data, ValueHandle Pointer, ValueHandle Alignment, - ValueHandle Offset) { - GET_REPORT_OPTIONS(true); - handleAlignmentAssumptionImpl(Data, Pointer, Alignment, Offset, Opts); - Die(); -} - /// \brief Common diagnostic emission for various forms of integer overflow. template <typename T> static void handleIntegerOverflowImpl(OverflowData *Data, ValueHandle LHS, diff --git a/compiler-rt/lib/ubsan/ubsan_handlers.h b/compiler-rt/lib/ubsan/ubsan_handlers.h index 2bf9ff4320e..04405770e58 100644 --- a/compiler-rt/lib/ubsan/ubsan_handlers.h +++ b/compiler-rt/lib/ubsan/ubsan_handlers.h @@ -39,17 +39,6 @@ struct TypeMismatchData { /// type. RECOVERABLE(type_mismatch_v1, TypeMismatchData *Data, ValueHandle Pointer) -struct AlignmentAssumptionData { - SourceLocation Loc; - SourceLocation AssumptionLoc; - const TypeDescriptor &Type; -}; - -/// \brief Handle a runtime alignment assumption check failure, -/// caused by a misaligned pointer. -RECOVERABLE(alignment_assumption, AlignmentAssumptionData *Data, - ValueHandle Pointer, ValueHandle Alignment, ValueHandle Offset) - struct OverflowData { SourceLocation Loc; const TypeDescriptor &Type; diff --git a/compiler-rt/lib/ubsan/ubsan_interface.inc b/compiler-rt/lib/ubsan/ubsan_interface.inc index 81e06345dcf..0be6010ad27 100644 --- a/compiler-rt/lib/ubsan/ubsan_interface.inc +++ b/compiler-rt/lib/ubsan/ubsan_interface.inc @@ -10,8 +10,6 @@ //===----------------------------------------------------------------------===// INTERFACE_FUNCTION(__ubsan_handle_add_overflow) INTERFACE_FUNCTION(__ubsan_handle_add_overflow_abort) -INTERFACE_FUNCTION(__ubsan_handle_alignment_assumption) -INTERFACE_FUNCTION(__ubsan_handle_alignment_assumption_abort) INTERFACE_FUNCTION(__ubsan_handle_builtin_unreachable) INTERFACE_FUNCTION(__ubsan_handle_cfi_bad_type) INTERFACE_FUNCTION(__ubsan_handle_cfi_check_fail) diff --git a/compiler-rt/lib/ubsan_minimal/ubsan_minimal_handlers.cc b/compiler-rt/lib/ubsan_minimal/ubsan_minimal_handlers.cc index ed62ddd0fa3..e8fc3a8499b 100644 --- a/compiler-rt/lib/ubsan_minimal/ubsan_minimal_handlers.cc +++ b/compiler-rt/lib/ubsan_minimal/ubsan_minimal_handlers.cc @@ -95,7 +95,6 @@ void NORETURN CheckFailed(const char *file, int, const char *cond, u64, u64) { HANDLER_NORECOVER(name, msg) HANDLER(type_mismatch, "type-mismatch") -HANDLER(alignment_assumption, "alignment-assumption") HANDLER(add_overflow, "add-overflow") HANDLER(sub_overflow, "sub-overflow") HANDLER(mul_overflow, "mul-overflow") |