llvm-project/clang/test/Analysis/iterator-modeling-no-aggressive-binary-operation-simplification-no-crash.cpp
Adam Balogh afcb77cc88 [Analyzer] Fix for incorrect use of container and iterator checkers
Iterator checkers (and planned container checkers) need the option
aggressive-binary-operation-simplification to be enabled. Without this
option they may cause assertions. To prevent such misuse, this patch adds
a preventive check which issues a warning and denies the registartion of
the checker if this option is disabled.

Differential Revision: https://reviews.llvm.org/D75171
2020-03-30 09:14:45 +02:00

16 lines
467 B
C++

// RUN: %clang_analyze_cc1 -std=c++11\
// RUN: -analyzer-checker=core,cplusplus,debug.DebugIteratorModeling,debug.ExprInspection\
// RUN: %s 2>&1 | FileCheck %s
// XFAIL: *
// CHECK: checker cannot be enabled with analyzer option 'aggressive-binary-operation-simplification' == false
#include "Inputs/system-header-simulator-cxx.h"
void clang_analyzer_eval(bool);
void comparison(std::vector<int> &V) {
clang_analyzer_eval(V.begin() == V.end()); // no-crash
}