Fix up MCFixup::getAccessVariant to handle unary expressions.
authorKaelyn Takata <rikka@google.com>
Mon, 14 Apr 2014 16:50:22 +0000 (16:50 +0000)
committerKaelyn Takata <rikka@google.com>
Mon, 14 Apr 2014 16:50:22 +0000 (16:50 +0000)
commitde2b2a32f41735e690b09dee29b0a200b57d4f12
tree4253a02ba370a15f64c365ccdeb20889f60ef860
parentadc90c9d6d1f6cf13a374399f3a3c574ddcbd8b5
Fix up MCFixup::getAccessVariant to handle unary expressions.

This allows correct relocations to be generated for a symbolic
address that is being adjusted by a negative constant. Since r204294,
such expressions have triggered undefined behavior when LLVM was built
without assertions.

Credit goes to Rafael for this patch; I'm submitting it on his behalf
as he is on vacation this week.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@206192 91177308-0d34-0410-b5e6-96231b3b80d8
lib/MC/MCFixup.cpp
test/MC/ELF/relocation.s