brintos

brintos / llvm-project-archived public Read only

0
0
Text · 756 B · ed28a64 Raw
40 lines · cpp
1// RUN: %clang_analyze_cc1 -analyzer-checker=alpha.webkit.UncountedCallArgsChecker -verify %s2// expected-no-diagnostics3 4#include "mock-types.h"5 6void __libcpp_verbose_abort(const char *__format, ...);7 8using size_t = __typeof(sizeof(int));9namespace std{10template <class T, size_t N>11class array {12  T elements[N];13  14  public:15  T& operator[](unsigned i) {16    if (i >= N) {17      __libcpp_verbose_abort("%s", "aborting");18    }19    return elements[i];20  }21};22}23 24class ArrayClass {25public:26  void ref() const;27  void deref() const;28  typedef std::array<std::array<double, 4>, 4> Matrix;29  double e() { return matrix[3][0]; }30  Matrix matrix;31};32 33class AnotherClass {34  RefPtr<ArrayClass> matrix;35  void test() {36    double val = { matrix->e()};37  }38};39 40