mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-12-13 14:35:54 +00:00
b466194d5d
Summary: This fixes three bugs, in all of which state is not or incorrecly reset between objects (i.e. when reusing the same pass manager to create multiple object files): 1) AttributeSection needs to be reset to nullptr, because otherwise the backend will try to emit into the old object file's attribute section causing a segmentation fault. 2) MappingSymbolCounter needs to be reset, otherwise the second object file will start where the first one left off. 3) The MCStreamer base class resets the Streamer's e_flags settings. Since EF_ARM_EABI_VER5 is set on streamer creation, we need to set it again after the MCStreamer was rest. Also rename Reset (uppser case) to EHReset to avoid confusion with reset (lower case). Reviewers: rengolin Differential Revision: http://reviews.llvm.org/D15950 llvm-svn: 257473
10 lines
455 B
LLVM
10 lines
455 B
LLVM
; Check for state persistence bugs in the ARM MC backend
|
|
; This should neither fail (in the comparison that the second object
|
|
; is bit-identical to the first) nor crash. Either failure would most
|
|
; likely indicate some state that is not properly reset in the
|
|
; appropriate ::reset method.
|
|
; RUN: llc -compile-twice -filetype=obj %s -o -
|
|
|
|
target datalayout = "e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64"
|
|
target triple = "armv4t-unknown-linux-gnueabi"
|