aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
diff options
context:
space:
mode:
authorLang Hames <lhames@gmail.com>2016-10-28 18:24:15 +0000
committerLang Hames <lhames@gmail.com>2016-10-28 18:24:15 +0000
commita9682caf96198508e3601e1e8160aa5505c3f266 (patch)
tree7bb88183713bd1be3c3260af4a427c802e6133bd /llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
parent7e55f178255a235887d7751e33dabc4937d87879 (diff)
downloadllvm-a9682caf96198508e3601e1e8160aa5505c3f266.zip
llvm-a9682caf96198508e3601e1e8160aa5505c3f266.tar.gz
llvm-a9682caf96198508e3601e1e8160aa5505c3f266.tar.bz2
[Error] Unify +Asserts/-Asserts behavior for checked flags in Error/Expected<T>.
(1) Switches to raw pointer and bitmasking operations for Error payload. (2) Always includes the 'unchecked' bitfield in Expected<T>, even in -Asserts. (3) Always propagates checked bit status in move-ops for both classes, even in -Asserts. This should allow debug programs to link against release libraries without encountering spurious 'unchecked error' terminations. Error checks still aren't verified in release mode so this doesn't introduce any new control flow, but it does require new bit-masking ops in release mode to preserve the flag values during move ops. I expect the overhead to be minimal, but if we discover any corner cases where it matters we could fix this by making flag propagation conditional on a new build option. llvm-svn: 285426
Diffstat (limited to 'llvm/lib/Bitcode/Writer/BitcodeWriter.cpp')
0 files changed, 0 insertions, 0 deletions