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