<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 --- - clang-format segfault: <file> prefixed with ./"
   href="https://llvm.org/bugs/show_bug.cgi?id=25072">25072</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>clang-format segfault: <file> prefixed with ./
          </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>Formatter
          </td>
        </tr>

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

        <tr>
          <th>Reporter</th>
          <td>mattipee@yahoo.co.uk
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>djasper@google.com, klimek@google.com, llvm-bugs@lists.llvm.org
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Segfault in Release, assertion hits in Debug


$ cat asdf.h
class A {};


Version 3.4
===========

$ /usr/bin/clang-format-3.4 asdf.h
Can't find usable .clang-format, using LLVM style
class A {};

$ /usr/bin/clang-format-3.4 ./asdf.h
Can't find usable .clang-format, using LLVM style
class A {};


Release build
=============

$ ~/clang/build-release/bin/clang-format -version
clang-format version 3.8.0 (<a href="http://llvm.org/git/clang.git">http://llvm.org/git/clang.git</a>
fad8a5cf2c6fe44b4f115952040f9dfdd23016da) (<a href="http://llvm.org/git/llvm.git">http://llvm.org/git/llvm.git</a>
c06b5e8aab782a8117419c28f7660e062701307c)

$ ~/clang/build-release/bin/clang-format asdf.h
class A {};

$ ~/clang/build-release/bin/clang-format ./asdf.h
#0 0x41e968 llvm::sys::PrintStackTrace(llvm::raw_ostream&)
(/home/majp/clang/build-release/bin/clang-format+0x41e968)
#1 0x41e136 llvm::sys::RunSignalHandlers()
(/home/majp/clang/build-release/bin/clang-format+0x41e136)
#2 0x41e335 SignalHandler(int)
(/home/majp/clang/build-release/bin/clang-format+0x41e335)
#3 0x7f36a5f2f340 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x10340)
#4 0x42fabc clang::SrcMgr::ContentCache::getSize() const
(/home/majp/clang/build-release/bin/clang-format+0x42fabc)
#5 0x4340fd clang::SourceManager::createFileID(clang::SrcMgr::ContentCache
const*, clang::SourceLocation, clang::SrcMgr::CharacteristicKind, int, unsigned
int) (/home/majp/clang/build-release/bin/clang-format+0x4340fd)
#6 0x44daea clang::format::reformat(clang::format::FormatStyle const&,
llvm::StringRef, llvm::ArrayRef<clang::tooling::Range>, llvm::StringRef, bool*)
(/home/majp/clang/build-release/bin/clang-format+0x44daea)
#7 0x407d57 clang::format::format(llvm::StringRef)
(/home/majp/clang/build-release/bin/clang-format+0x407d57)
#8 0x403d57 main (/home/majp/clang/build-release/bin/clang-format+0x403d57)
#9 0x7f36a535bec5 __libc_start_main
/build/buildd/eglibc-2.19/csu/libc-start.c:321:0
#10 0x405639 _start (/home/majp/clang/build-release/bin/clang-format+0x405639)
Segmentation fault


Debug build
===========

$ ~/clang/build-debug/bin/clang-format -version
clang-format version 3.8.0 (<a href="http://llvm.org/git/clang.git">http://llvm.org/git/clang.git</a>
fad8a5cf2c6fe44b4f115952040f9dfdd23016da) (<a href="http://llvm.org/git/llvm.git">http://llvm.org/git/llvm.git</a>
c06b5e8aab782a8117419c28f7660e062701307c)

$ ~/clang/build-debug/bin/clang-format asdf.h 
class A {};

$ ~/clang/build-debug/bin/clang-format ./asdf.h 
clang-format:
/home/majp/clang/llvm/tools/clang/lib/Basic/SourceManager.cpp:422: const
clang::SrcMgr::ContentCache*
clang::SourceManager::getOrCreateContentCache(const clang::FileEntry*, bool):
Assertion `FileEnt && "Didn't specify a file entry to use?"' failed.
#0 0x4496b3 llvm::sys::PrintStackTrace(llvm::raw_ostream&)
/home/majp/clang/llvm/lib/Support/Unix/Signals.inc:405:0
#1 0x4499c8 PrintStackTraceSignalHandler(void*)
/home/majp/clang/llvm/lib/Support/Unix/Signals.inc:463:0
#2 0x44815a llvm::sys::RunSignalHandlers()
/home/majp/clang/llvm/lib/Support/Signals.cpp:34:0
#3 0x44859a SignalHandler(int)
/home/majp/clang/llvm/lib/Support/Unix/Signals.inc:211:0
#4 0x7f13c3518340 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x10340)
#5 0x7f13c2959cc9 gsignal
/build/buildd/eglibc-2.19/signal/../nptl/sysdeps/unix/sysv/linux/raise.c:56:0
#6 0x7f13c295d0d8 abort /build/buildd/eglibc-2.19/stdlib/abort.c:91:0
#7 0x7f13c2952b86 __assert_fail_base
/build/buildd/eglibc-2.19/assert/assert.c:92:0
#8 0x7f13c2952c32 (/lib/x86_64-linux-gnu/libc.so.6+0x2fc32)
#9 0x48f478 clang::SourceManager::getOrCreateContentCache(clang::FileEntry
const*, bool)
/home/majp/clang/llvm/tools/clang/lib/Basic/SourceManager.cpp:425:0
#10 0x408657 clang::SourceManager::createFileID(clang::FileEntry const*,
clang::SourceLocation, clang::SrcMgr::CharacteristicKind, int, unsigned int)
/home/majp/clang/llvm/tools/clang/include/clang/Basic/SourceManager.h:768:0
#11 0x4cfef7 clang::format::reformat(clang::format::FormatStyle const&,
llvm::StringRef, llvm::ArrayRef<clang::tooling::Range>, llvm::StringRef, bool*)
/home/majp/clang/llvm/tools/clang/lib/Format/Format.cpp:1805:0
#12 0x4065de clang::format::format(llvm::StringRef)
/home/majp/clang/llvm/tools/clang/tools/clang-format/ClangFormat.cpp:260:0
#13 0x406f2f main
/home/majp/clang/llvm/tools/clang/tools/clang-format/ClangFormat.cpp:344:0
#14 0x7f13c2944ec5 __libc_start_main
/build/buildd/eglibc-2.19/csu/libc-start.c:321:0
#15 0x405169 _start (/home/majp/clang/build-debug/bin/clang-format+0x405169)
Aborted</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>