summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test/expression_command/context-object-objc
diff options
context:
space:
mode:
authorSimon Atanasyan <simon@atanasyan.com>2019-08-23 13:36:14 +0000
committerSimon Atanasyan <simon@atanasyan.com>2019-08-23 13:36:14 +0000
commit58492b1895e23869253592544ae87f58742013e3 (patch)
treec853c979734c2bd1b7a0a55e58ce952c00080d88 /lldb/packages/Python/lldbsuite/test/expression_command/context-object-objc
parent57ae79d7a25cbb9f542bea55b9cb629abb80174e (diff)
downloadbcm5719-llvm-58492b1895e23869253592544ae87f58742013e3.tar.gz
bcm5719-llvm-58492b1895e23869253592544ae87f58742013e3.zip
[mips] Do not include offset into `%got` expression for global symbols
Now pseudo instruction `la $6, symbol+8($6)` is expanding into the following chain of commands: ``` lw $1, %got(symbol+8)($gp) addiu $1, $1, 8 addu $6, $1, $6 ``` This is incorrect. When a linker handles the `R_MIPS_GOT16` relocation, it does not expect to get any addend and breaks on assertion. Otherwise it has to create new GOT entry for each unique "sym + offset" pair. Offset for a global symbol should be added to result of loading GOT entry by a separate `add` command. The patch fixes the problem by stripping off an offset from the expression passed to the `%got`. That's interesting that even current code inserts a separate `add` command. Differential Revision: https://reviews.llvm.org/D66552 llvm-svn: 369755
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/expression_command/context-object-objc')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud