<html>
    <head>
      <base href="http://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 --- - [REGRESSION] Crash in llvm::formLCSSA"
   href="http://llvm.org/bugs/show_bug.cgi?id=21653">21653</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>[REGRESSION] Crash in llvm::formLCSSA
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>clang
          </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>-New Bugs
          </td>
        </tr>

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

        <tr>
          <th>Reporter</th>
          <td>ismail@donmez.ws
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>llvmbugs@cs.uiuc.edu
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Produced with clang r222646 on Linux x86-64.

<span class="quote">> clang -c -O2 testcase.i        </span >
testcase.i:16:20: warning: implicit declaration of function 'av_mallocz' is
invalid in C99 [-Wimplicit-function-declaration]
    HEVCPPS *pps = av_mallocz(sizeof(*pps));
                   ^
testcase.i:16:14: warning: incompatible integer to pointer conversion
initializing 'HEVCPPS *' (aka 'struct HEVCPPS *') with an
      expression of type 'int' [-Wint-conversion]
    HEVCPPS *pps = av_mallocz(sizeof(*pps));
             ^     ~~~~~~~~~~~~~~~~~~~~~~~~
testcase.i:29:1: warning: control reaches end of non-void function
[-Wreturn-type]
}
^
#0 0x7fbe45b9c03a llvm::sys::PrintStackTrace(_IO_FILE*)
(/opt/clang/lib64/libLLVMSupport.so+0xb603a)
#1 0x7fbe45b9d4ab (/opt/clang/lib64/libLLVMSupport.so+0xb74ab)
#2 0x7fbe4410d170 __restore_rt (/lib64/libc.so.6+0x35170)
#3 0x7fbe45859e38 llvm::formLCSSA(llvm::Loop&, llvm::DominatorTree&,
llvm::ScalarEvolution*) (/opt/clang/lib64/libLLVMTransformUtils.so+0x4fe38)
#4 0x7fbe4585a2d8 llvm::formLCSSARecursively(llvm::Loop&, llvm::DominatorTree&,
llvm::ScalarEvolution*) (/opt/clang/lib64/libLLVMTransformUtils.so+0x502d8)
#5 0x7fbe4585a2be llvm::formLCSSARecursively(llvm::Loop&, llvm::DominatorTree&,
llvm::ScalarEvolution*) (/opt/clang/lib64/libLLVMTransformUtils.so+0x502be)
#6 0x7fbe4585a2be llvm::formLCSSARecursively(llvm::Loop&, llvm::DominatorTree&,
llvm::ScalarEvolution*) (/opt/clang/lib64/libLLVMTransformUtils.so+0x502be)
#7 0x7fbe4585a6f8 (/opt/clang/lib64/libLLVMTransformUtils.so+0x506f8)
#8 0x7fbe475a33b3 llvm::FPPassManager::runOnFunction(llvm::Function&)
(/opt/clang/lib64/libLLVMCore.so+0x17b3b3)
#9 0x7fbe4720a2fd (/opt/clang/lib64/libLLVMipa.so+0xf2fd)
#10 0x7fbe475a3b57 llvm::legacy::PassManagerImpl::run(llvm::Module&)
(/opt/clang/lib64/libLLVMCore.so+0x17bb57)
#11 0x7fbe3eb23063 clang::EmitBackendOutput(clang::DiagnosticsEngine&,
clang::CodeGenOptions const&, clang::TargetOptions const&, clang::LangOptions
const&, llvm::StringRef, llvm::Module*, clang::BackendAction,
llvm::raw_ostream*) (/opt/clang/lib64/libclangCodeGen.so+0x60063)
#12 0x7fbe3ec67c4a (/opt/clang/lib64/libclangCodeGen.so+0x1a4c4a)
#13 0x7fbe3fdcd073 clang::ParseAST(clang::Sema&, bool, bool)
(/opt/clang/lib64/libclangParse.so+0x2a073)
#14 0x7fbe44c2b4de clang::FrontendAction::Execute()
(/opt/clang/lib64/libclangFrontend.so+0xa74de)
#15 0x7fbe44bfe51c
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&)
(/opt/clang/lib64/libclangFrontend.so+0x7a51c)
#16 0x7fbe449821b5 clang::ExecuteCompilerInvocation(clang::CompilerInstance*)
(/opt/clang/lib64/libclangFrontendTool.so+0x31b5)
#17 0x40f3d3 cc1_main(llvm::ArrayRef<char const*>, char const*, void*)
(/opt/clang/bin/clang-3.6+0x40f3d3)
#18 0x40da94 main (/opt/clang/bin/clang-3.6+0x40da94)
#19 0x7fbe440f9b45 __libc_start_main (/lib64/libc.so.6+0x21b45)
#20 0x40add9 _start (/opt/clang/bin/clang-3.6+0x40add9)
Stack dump:
0.      Program arguments: /opt/clang/bin/clang-3.6 -cc1 -triple
x86_64-suse-linux -emit-obj -disable-free -main-file-name testcase.i
-mrelocation-model static -mthread-model posix -fmath-errno -masm-verbose
-mconstructor-aliases -munwind-tables -fuse-init-array -target-cpu x86-64
-momit-leaf-frame-pointer -dwarf-column-info -coverage-file
/havana/t/i/delta-2006.08.03/testcase.i -resource-dir
/opt/clang/bin/../lib64/clang/3.6.0 -O2 -std=c11 -fdebug-compilation-dir
/havana/t/i/delta-2006.08.03 -ferror-limit 19 -fmessage-length 132
-mstackrealign -fobjc-runtime=gcc -fdiagnostics-show-option -fcolor-diagnostics
-vectorize-loops -vectorize-slp -o testcase.o -x cpp-output testcase.i
1.      <eof> parser at end of file
2.      Per-module optimization passes
3.      Running pass 'CallGraph Pass Manager' on module 'testcase.i'.
4.      Running pass 'Loop-Closed SSA Form Pass' on function
'@ff_hevc_decode_nal_pps'
clang-3.6: error: unable to execute command: Segmentation fault
clang-3.6: error: clang frontend command failed due to signal (use -v to see
invocation)
clang version 3.6.0 (trunk 222646)
Target: x86_64-suse-linux
Thread model: posix
clang-3.6: note: diagnostic msg: PLEASE submit a bug report to
<a href="http://llvm.org/bugs/">http://llvm.org/bugs/</a> and include the crash backtrace, preprocessed source, and
associated run script.
clang-3.6: note: diagnostic msg: Error generating preprocessed source(s) - no
preprocessable inputs.

<span class="quote">> cat testcase.i</span >
typedef struct HEVCWindow {
    unsigned int log2_min_tb_size;
    unsigned int log2_ctb_size;
    int min_tb_width;
    int min_tb_height;
} HEVCSPS;
typedef struct HEVCPPS {
    int *ctb_addr_rs_to_ts;
    int *min_tb_addr_zs;
} HEVCPPS;
int ff_hevc_decode_nal_pps()
{
    HEVCSPS      *sps = 0;
    int log2_diff_ctb_min_tb_size;
    int i, j, x, y, ctb_addr_rs, tile_id;
    HEVCPPS *pps = av_mallocz(sizeof(*pps));
    log2_diff_ctb_min_tb_size = sps->log2_ctb_size - sps->log2_min_tb_size;
    for (y = 0; y < sps->min_tb_height; y++) {
        for (x = 0; x < sps->min_tb_width; x++) {
            int val         = pps->ctb_addr_rs_to_ts[ctb_addr_rs] <<
                              (log2_diff_ctb_min_tb_size * 2);
            for (i = 0; i < log2_diff_ctb_min_tb_size; i++) {
                int m = 1 << i;
                val += (m & x ? m * m : 0) + (m & y ? 2 * m * m : 0);
            }
            pps->min_tb_addr_zs[y * sps->min_tb_width + x] = val;
        }
    }
}</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>