<html>
    <head>
      <base href="https://llvm.org/bugs/" />
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW --- - PowerPC64: SEGV in llvm::LiveRange::join"
   href="https://llvm.org/bugs/show_bug.cgi?id=26706">26706</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>PowerPC64: SEGV in llvm::LiveRange::join
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>libraries
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>trunk
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>PC
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Linux
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>normal
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>Backend: PowerPC
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>unassignedbugs@nondot.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>anton@samba.org
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>llvm-bugs@lists.llvm.org
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr></table>
      <p>
        <div>
        <pre>The following testcase:

long a;
int b, c, d;

void fn1(void)
{
    b = 0;

    for (; b <= 49; b++) {
        long *e = &c;
        a ^= c;
        *e = d;
    }
}

Built with clang -Os -S testcase.c

SEGVs in:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x3fffb7ff7e20 (LWP 42763)]
llvm::LiveRange::join (this=0x1298a630, Other=...,
LHSValNoAssignments=<optimised out>, RHSValNoAssignments=0x3fffffffbeb0,
NewVNInfo=...) at /home/anton/llvm/lib/CodeGen/LiveInterval.cpp:635
635        S.valno = NewVNInfo[RHSValNoAssignments[S.valno->id]];
(gdb) backtrace 
#0  llvm::LiveRange::join (this=0x1298a630, Other=...,
LHSValNoAssignments=<optimised out>, RHSValNoAssignments=0x3fffffffbeb0,
NewVNInfo=...) at /home/anton/llvm/lib/CodeGen/LiveInterval.cpp:635
#1  0x0000000010831b04 in (anonymous
namespace)::RegisterCoalescer::joinVirtRegs (this=0x1290b870, CP=...) at
/home/anton/llvm/lib/CodeGen/RegisterCoalescer.cpp:2679
#2  0x000000001083208c in (anonymous
namespace)::RegisterCoalescer::joinIntervals (CP=..., this=0x1290b870) at
/home/anton/llvm/lib/CodeGen/RegisterCoalescer.cpp:2699
#3  (anonymous namespace)::RegisterCoalescer::joinCopy (Again=<synthetic
pointer>, CopyMI=0x129734f0, this=0x1290b870) at
/home/anton/llvm/lib/CodeGen/RegisterCoalescer.cpp:1414
#4  (anonymous namespace)::RegisterCoalescer::copyCoalesceWorkList
(this=0x1290b870, CurrList=...) at
/home/anton/llvm/lib/CodeGen/RegisterCoalescer.cpp:2770
#5  0x0000000010834674 in (anonymous
namespace)::RegisterCoalescer::copyCoalesceInMBB (MBB=<optimised out>,
this=<optimised out>) at
/home/anton/llvm/lib/CodeGen/RegisterCoalescer.cpp:2889
#6  (anonymous namespace)::RegisterCoalescer::joinAllIntervals
(this=0x1290b870) at /home/anton/llvm/lib/CodeGen/RegisterCoalescer.cpp:2924
#7  (anonymous namespace)::RegisterCoalescer::runOnMachineFunction
(this=0x1290b870, fn=...) at
/home/anton/llvm/lib/CodeGen/RegisterCoalescer.cpp:2971
#8  0x00000000107a72b8 in llvm::MachineFunctionPass::runOnFunction
(this=0x1290b870, F=...) at
/home/anton/llvm/lib/CodeGen/MachineFunctionPass.cpp:43
#9  0x0000000010a4556c in llvm::FPPassManager::runOnFunction (this=0x128f95d0,
F=...) at /home/anton/llvm/lib/IR/LegacyPassManager.cpp:1550
#10 0x0000000010a45aac in llvm::FPPassManager::runOnModule (this=0x128f95d0,
M=...) at /home/anton/llvm/lib/IR/LegacyPassManager.cpp:1571
#11 0x0000000010a45054 in (anonymous namespace)::MPPassManager::runOnModule
(M=..., this=0x128d9af0) at /home/anton/llvm/lib/IR/LegacyPassManager.cpp:1627
#12 llvm::legacy::PassManagerImpl::run (this=0x128d9640, M=...) at
/home/anton/llvm/lib/IR/LegacyPassManager.cpp:1730
#13 0x0000000010a452dc in llvm::legacy::PassManager::run (this=<optimised out>,
M=...) at /home/anton/llvm/lib/IR/LegacyPassManager.cpp:1761
#14 0x0000000010f42bcc in (anonymous
namespace)::EmitAssemblyHelper::EmitAssembly (OS=0x128741e0, Action=<optimised
out>, this=0x3fffffffc9c8) at
/home/anton/llvm/tools/clang/lib/CodeGen/BackendUtil.cpp:698
#15 clang::EmitBackendOutput (Diags=..., CGOpts=..., TOpts=..., LOpts=...,
TDesc=..., M=0x12874990, Action=<optimised out>, OS=0x128741e0) at
/home/anton/llvm/tools/clang/lib/CodeGen/BackendUtil.cpp:710
#16 0x0000000011521974 in clang::BackendConsumer::HandleTranslationUnit
(this=0x12874380, C=...) at
/home/anton/llvm/tools/clang/lib/CodeGen/CodeGenAction.cpp:178
#17 0x000000001183c8a8 in clang::ParseAST (S=..., PrintStats=<optimised out>,
SkipFunctionBodies=<optimised out>) at
/home/anton/llvm/tools/clang/lib/Parse/ParseAST.cpp:168
#18 0x000000001125cfd8 in clang::ASTFrontendAction::ExecuteAction
(this=0x12841720) at
/home/anton/llvm/tools/clang/lib/Frontend/FrontendAction.cpp:539
#19 0x00000000115228f4 in clang::CodeGenAction::ExecuteAction (this=<optimised
out>) at /home/anton/llvm/tools/clang/lib/CodeGen/CodeGenAction.cpp:835
#20 0x000000001125e8b8 in clang::FrontendAction::Execute (this=<optimised out>)
at /home/anton/llvm/tools/clang/lib/Frontend/FrontendAction.cpp:439
#21 0x0000000011231720 in clang::CompilerInstance::ExecuteAction
(this=0x128401a0, Act=...) at
/home/anton/llvm/tools/clang/lib/Frontend/CompilerInstance.cpp:840
#22 0x00000000112efbc8 in clang::ExecuteCompilerInvocation (Clang=0x128401a0)
at
/home/anton/llvm/tools/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp:227
#23 0x0000000010496208 in cc1_main (Argv=..., Argv0=0x3ffffffff447
"/home/anton/llvm.install/bin/clang-3.9", MainAddr=0x104941e0
<GetExecutablePath[abi:cxx11](char const*, bool)>)
    at /home/anton/llvm/tools/clang/tools/driver/cc1_main.cpp:116
#24 0x000000001046adb8 in ExecuteCC1Tool (Tool=..., argv=...) at
/home/anton/llvm/tools/clang/tools/driver/driver.cpp:301
#25 main (argc_=<optimised out>, argv_=<optimised out>) at
/home/anton/llvm/tools/clang/tools/driver/driver.cpp:366</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>