[clazy] [Bug 362236] New: clazy crashes on Utils::isPassedToFunction(clang::Stmt*, clang::VarDecl const*, bool)

Sylvestre Ledru via KDE Bugzilla bugzilla_noreply at kde.org
Mon Apr 25 13:16:54 BST 2016


https://bugs.kde.org/show_bug.cgi?id=362236

            Bug ID: 362236
           Summary: clazy crashes on
                    Utils::isPassedToFunction(clang::Stmt*, clang::VarDecl
                    const*, bool)
           Product: clazy
           Version: unspecified
          Platform: Other
                OS: Linux
            Status: UNCONFIRMED
          Severity: grave
          Priority: NOR
         Component: general
          Assignee: unassigned-bugs at kde.org
          Reporter: sylvestre at mozilla.com
                CC: smartins at kde.org

With the code:
----
#include <vector>

namespace rtc {

  bool Assert(bool result, const char* function) {
    return result;
  }

#define ASSERT(x) \
  (void)rtc::Assert((x), __FUNCTION__)




template<typename T>
class R {

  T ComputeMax() const {
    int i=0;
    ASSERT(count_ > 0 &&
       "foo");
    max_ = std::max(2, samples_[samples_.size()]);
  }



  int count_;
  mutable T max_;
  std::vector<T> samples_;

};

}
---

building with clazy crashes clang

This is a reduce test case when building Firefox with clazy. It fails on webrtc
code.

It is using Debian packages of clang. The same occurs with clang 3.6

Reproducible: Always


Actual Results:  

1  libLLVM-3.7.so.1 0x00007f16a77fe4b9
2  libpthread.so.0  0x00007f16a5dac8d0
3  ClangLazy.so     0x00007f16a38d9cf8 Utils::isPassedToFunction(clang::Stmt*,
clang::VarDecl const*, bool) + 328
4  ClangLazy.so     0x00007f16a3871c5d
InefficientQListBase::shouldIgnoreVariable(clang::VarDecl*) const + 477
5  ClangLazy.so     0x00007f16a3871cfb
InefficientQListBase::VisitDecl(clang::Decl*) + 59
6  ClangLazy.so     0x00007f16a38a8770
7  ClangLazy.so     0x00007f16a37f7fd5
8  ClangLazy.so     0x00007f16a38aacd6
9  ClangLazy.so     0x00007f16a37f85e1
10 ClangLazy.so     0x00007f16a38aacfa
11 ClangLazy.so     0x00007f16a38ae64d
12 ClangLazy.so     0x00007f16a38a7e73
13 ClangLazy.so     0x00007f16a38ae73d
14 ClangLazy.so     0x00007f16a38a90a4
15 ClangLazy.so     0x00007f16a38a922c
16 ClangLazy.so     0x00007f16a38ae73d
17 ClangLazy.so     0x00007f16a38a8f2c
18 ClangLazy.so     0x00007f16a38ae73d
19 ClangLazy.so     0x00007f16a38a9051
20 clang            0x00000000006e36b8
clang::MultiplexConsumer::HandleTranslationUnit(clang::ASTContext&) + 40
21 clang            0x0000000000a4a065 clang::ParseAST(clang::Sema&, bool,
bool) + 709
22 clang            0x00000000006c033e clang::FrontendAction::Execute() + 254
23 clang            0x000000000069c8e1
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 289
24 clang            0x0000000000684d13
clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 1827
25 clang            0x000000000067e438 cc1_main(llvm::ArrayRef<char const*>,
char const*, void*) + 2376
26 clang            0x000000000067d441 main + 10257
27 libc.so.6        0x00007f16a4982b45 __libc_start_main + 245
28 clang            0x000000000067d4d4
Stack dump:
0.    Program arguments: /usr/lib/llvm-3.7/bin/clang -cc1 -triple
x86_64-pc-linux-gnu -emit-obj -mrelax-all -disable-free -disable-llvm-verifier
-main-file-name test-case.cpp -mrelocation-model static -mthread-model posix
-mdisable-fp-elim -fmath-errno -masm-verbose -mconstructor-aliases
-munwind-tables -fuse-init-array -target-cpu x86-64 -target-linker-version 2.25
-dwarf-column-info -resource-dir /usr/lib/llvm-3.7/bin/../lib/clang/3.7.1
-internal-isystem
/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9
-internal-isystem
/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/x86_64-linux-gnu/c++/4.9
-internal-isystem
/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/x86_64-linux-gnu/c++/4.9
-internal-isystem
/usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/backward
-internal-isystem /usr/local/include -internal-isystem
/usr/lib/llvm-3.7/bin/../lib/clang/3.7.1/include -internal-externc-isystem
/usr/include/x86_64-linux-gnu -internal-externc-isystem /include
-internal-externc-isystem /usr/include -fdeprecated-macro
-fdebug-compilation-dir /var/lib/jenkins/workspace/firefox-clazy -ferror-limit
19 -fmessage-length 227 -mstackrealign -fobjc-runtime=gcc -fcxx-exceptions
-fexceptions -fdiagnostics-show-option -fcolor-diagnostics -load ClangLazy.so
-add-plugin clang-lazy -o /tmp/test-case-3e23a6.o -x c++ test-case.cpp 
1.    <eof> parser at end of file
clang: error: unable to execute command: Segmentation fault
clang: error: clang frontend command failed due to signal (use -v to see
invocation)
Debian clang version 3.7.1-svn254351-1~exp1 (branches/release_37) (based on
LLVM 3.7.1)
Target: x86_64-pc-linux-gnu
Thread model: posix


Expected Results:  
Code built

-- 
You are receiving this mail because:
You are the assignee for the bug.



More information about the Unassigned-bugs mailing list