32 lines · cpp
1// RUN: %clang_analyze_cc1 -std=c++11\2// RUN: -analyzer-checker=core,cplusplus\3// RUN: -analyzer-checker=debug.DebugContainerModeling,debug.ExprInspection\4// RUN: -analyzer-config aggressive-binary-operation-simplification=true\5// RUN: -analyzer-config c++-container-inlining=false %s -verify6 7// RUN: %clang_analyze_cc1 -std=c++11\8// RUN: -analyzer-checker=core,cplusplus\9// RUN: -analyzer-checker=debug.DebugContainerModeling,debug.ExprInspection\10// RUN: -analyzer-config aggressive-binary-operation-simplification=true\11// RUN: -analyzer-config c++-container-inlining=true -DINLINE=1 %s -verify12 13#include "Inputs/system-header-simulator-cxx.h"14 15template <typename Container>16long clang_analyzer_container_begin(const Container&);17template <typename Container>18long clang_analyzer_container_end(const Container&);19void clang_analyzer_denote(long, const char*);20void clang_analyzer_express(long);21 22void container_begin_end(const std::vector<int> v0) {23 v0.begin();24 v0.end();25 26 clang_analyzer_denote(clang_analyzer_container_begin(v0), "$b0");27 clang_analyzer_denote(clang_analyzer_container_end(v0), "$e0");28 29 clang_analyzer_express(clang_analyzer_container_begin(v0)); // expected-warning{{$b0}}30 clang_analyzer_express(clang_analyzer_container_end(v0)); // expected-warning{{$e0}}31}32