diff options
author | Bill Wendling <isanbard@gmail.com> | 2012-08-08 06:30:30 +0000 |
---|---|---|
committer | Bill Wendling <isanbard@gmail.com> | 2012-08-08 06:30:30 +0000 |
commit | ef920552d4fb0959097f1c165cfc81c69db19934 (patch) | |
tree | a1f589492e274e09eb1aa6dcdac1b0fb4a27eb86 /lib/MC/MCObjectFileInfo.cpp | |
parent | d43b5c97cff06d7840b974ca84fa0639d2567968 (diff) |
Add `.pushsection', `.popsection', and `.previous' directives to Darwin ASM.
There are situations where inline ASM may want to change the section -- for
instance, to create a variable in the .data section. However, it cannot do this
without (potentially) restoring to the wrong section. E.g.:
asm volatile (".section __DATA, __data\n\t"
".globl _fnord\n\t"
"_fnord: .quad 1f\n\t"
".text\n\t"
"1:" :::);
This may be wrong if this is inlined into a function that has a "section"
attribute. The user should use `.pushsection' and `.popsection' here instead.
The addition of `.previous' is added for completeness.
<rdar://problem/12048387>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161477 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/MC/MCObjectFileInfo.cpp')
0 files changed, 0 insertions, 0 deletions