<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:1577207900;
        mso-list-type:hybrid;
        mso-list-template-ids:1289635268 -1 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
        {mso-level-text:"%1\)";
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level2
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level3
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l0:level4
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level5
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level6
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l0:level7
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level8
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level9
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style>
</head>
<body lang="EN-US" link="blue" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal">Hello,</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I am new to LLVM and what I am trying to do is to get a very simple “hello-world” C++ program to compile to LLVM IR and then to run it using lli tool.</p>
<p class="MsoNormal">So here is the program code (hello.cpp):</p>
<p class="MsoNormal" style="margin-left:.5in">#include <iostream></p>
<p class="MsoNormal" style="margin-left:.5in">int main (int argc, char *argv[])</p>
<p class="MsoNormal" style="margin-left:.5in">{</p>
<p class="MsoNormal" style="margin-left:.5in">    std::cout << "Hello World!\n";</p>
<p class="MsoNormal" style="margin-left:.5in">    return 0;</p>
<p class="MsoNormal" style="margin-left:.5in">}</p>
<p class="MsoNormal">Below are the steps I do to achieve that goal:</p>
<ol style="margin-top:0in" start="1" type="1">
<li class="MsoListParagraph" style="margin-left:0in;mso-list:l0 level1 lfo1">clang++.exe hello.cpp -S -emit-llvm -o hello.ll (produces hello.ll about 307KB in size)</li><li class="MsoListParagraph" style="margin-left:0in;mso-list:l0 level1 lfo1">llvm-link.exe hello.ll -o hello.bc (produces the bit-code file about 79KB in size).</li><li class="MsoListParagraph" style="margin-left:0in;mso-list:l0 level1 lfo1">lli.exe hello.bc (terminates with a segmentation fault). The dump is below.</li></ol>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I understand that some symbols are not loaded (C++ standard library symbols). I am not sure how I can specify the location of those symbols to lli tool (I tried –extra-object option but no effect).</p>
<p class="MsoNormal">Could someone please let me know what am I missing or doing wrong?
</p>
<p class="MsoNormal">Any help is greatly appreciated!!!</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">--</p>
<p class="MsoNormal">Thanks,</p>
<p class="MsoNormal">Igor</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Stack dump:</p>
<p class="MsoNormal">0.      Program arguments: C:\dev\llvm-project\build\Debug\bin\lli.exe .\hello.bc</p>
<p class="MsoNormal">0x0000000000000000 (0x0000000000000010 0xCCCCCCCCCCCCCCCC 0x000000575B18D640 0x00007FF68DEF6186) <unknown module></p>
<p class="MsoNormal">0x000001AF8A3004F6 (0xCCCCCCCCCCCCCCCC 0x000000575B18D640 0x00007FF68DEF6186 0x000001AF8A4B0000) <unknown module></p>
<p class="MsoNormal">0x0000000000000010 (0x000000575B18D640 0x00007FF68DEF6186 0x000001AF8A4B0000 0xFFFFFFFFFFFFFFFE) <unknown module></p>
<p class="MsoNormal">0xCCCCCCCCCCCCCCCC (0x00007FF68DEF6186 0x000001AF8A4B0000 0xFFFFFFFFFFFFFFFE 0x000000575B18D6A0) <unknown module></p>
<p class="MsoNormal">0x000000575B18D640 (0x000001AF8A4B0000 0xFFFFFFFFFFFFFFFE 0x000000575B18D6A0 0x000001AF8A300032) <unknown module></p>
<p class="MsoNormal">0x00007FF68DEF6186 (0x000001AF8A85B410 0x000000575B18D678 0xCCCCCCCCCCCCCCCC 0x000001AF8A4B0000), std::_Construct_in_place<std::_Container_proxy,std::_Container_base12 *>() + 0x56 bytes(s), C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include\xmemory,
 line 205</p>
<p class="MsoNormal">0x00007FF68DEF45E8 (0x0000000000000000 0x000000005B18D6B1 0xFFFFFFFFFFFFFFFE 0x000000575B18DB80), std::_Container_base12::_Alloc_proxy<std::allocator<std::_Container_proxy> >() + 0x58 bytes(s), C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include\xmemory,
 line 1100</p>
<p class="MsoNormal">0x00007FF68DF36634 (0xCCCCCCCCCCCCCCCC 0xCCCCCCCCCCCCCCCC 0xCCCCCCCCCCCCCCCC 0x0000000000000001), std::vector<llvm::GenericValue,std::allocator<llvm::GenericValue> >::vector<llvm::GenericValue,std::allocator<llvm::GenericValue> >() + 0x54
 bytes(s), C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.24.28314\include\vector, line 446</p>
<p class="MsoNormal">0x00007FF68E06B048 (0x000001AF8A6A3058 0x0000000000000001 0xCCCCCCCCCCCCCCCC 0xCCCCCCCCCCCCCCCC), llvm::APInt::getZExtValue() + 0x28 bytes(s), C:\dev\llvm-project\llvm\include\llvm\ADT\APInt.h, line 1589 + 0xA byte(s)</p>
<p class="MsoNormal">0x00007FF68ED9E0F0 (0x000001AF8A563310 0x000000575B18DB88 0x000001AF8A583F18 0x000000575B18DBC0), llvm::MCJIT::runFunction() + 0x480 bytes(s), C:\dev\llvm-project\llvm\lib\ExecutionEngine\MCJIT\MCJIT.cpp, line 550 + 0x16 byte(s)</p>
<p class="MsoNormal">0x00007FF68EC09680 (0x000001AF8A563310 0x000001AF8A583F18 0x00007FF6920964A0 0x000001AF8A532460), llvm::ExecutionEngine::runFunctionAsMain() + 0x410 bytes(s), C:\dev\llvm-project\llvm\lib\ExecutionEngine\ExecutionEngine.cpp, line 470 +
 0x65 byte(s)</p>
<p class="MsoNormal">0x00007FF68DEE4200 (0x0000000000000002 0x000001AF8A5515B0 0x000001AF8A532460 0x00007FF6909C0A7D), main() + 0x1D10 bytes(s), C:\dev\llvm-project\llvm\tools\lli\lli.cpp, line 614 + 0x4D byte(s)</p>
<p class="MsoNormal">0x00007FF6909C1A29 (0x00007FF690C2C000 0x00007FF690C2FE30 0x0000000000000000 0x0000000000000000), invoke_main() + 0x39 bytes(s), d:\agent\_work\5\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl, line 79</p>
<p class="MsoNormal">0x00007FF6909C190E (0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000), __scrt_common_main_seh() + 0x12E bytes(s), d:\agent\_work\5\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl, line 288 + 0x5 byte(s)</p>
<p class="MsoNormal">0x00007FF6909C17CE (0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000), __scrt_common_main() + 0xE bytes(s), d:\agent\_work\5\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl, line 331</p>
<p class="MsoNormal">0x00007FF6909C1AB9 (0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000), mainCRTStartup() + 0x9 bytes(s), d:\agent\_work\5\s\src\vctools\crt\vcstartup\src\startup\exe_main.cpp, line 17</p>
<p class="MsoNormal">0x00007FFC76417BD4 (0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000), BaseThreadInitThunk() + 0x14 bytes(s)</p>
<p class="MsoNormal">0x00007FFC7746CED1 (0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000), RtlUserThreadStart() + 0x21 bytes(s)</p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Sent from <a href="https://go.microsoft.com/fwlink/?LinkId=550986">
Mail</a> for Windows 10</p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>