<div dir="ltr">Hi guys,<div><br></div><div>I have a issue caused by some inline assembly. Basically when there is file scope inline assembly the clang front end will not include it in any section if the section is not specified by the inline asm itself. Furthermore this issue seems to only occur when generating LLVM bitcode. That is for the following code snippet</div>
<div><br></div><div style><code></div><div>__asm__(".globl func\n\t.align 4\nfunc: ret");</div><div>int main() { return 0 ;}</div><div></code></div><div><br></div><div>We have the following cases:</div>
<div>$ clang file.c -o binary #  compiles without errors</div><div><div>$ echo $?</div><div>0</div></div><div><br></div><div>$ clang -c -flto file.c -o file.o <br clear="all"><div style>$ ld.gold -plugin /opt/llvm/lib/LLVMgold.so file.o -o binary</div>
<div>error: expected section directive before assembly directive</div><div>        .align 4</div><div>...</div><div><br></div><div style>I wasn't able to find any paper or thorough documentation on how the compilation is handled by clang in these two cases. Shouldn't it behave identical?</div>
<div style><br></div>-- <br><div dir="ltr"><div>Sincerely, </div>Razvan Ghitulete<br><br></div><div dir="ltr"><br></div>
</div></div>