llvm-project/clang-tools-extra
Matthias Gehre 03fadabe47 cppcoreguidelines-pro-bounds-constant-array-index: crash for value dependent index in c++03 mode
Summary:
When the expression is value dependent,
isIntegerConstantExpr() crashes in C++03 mode with
 ../tools/clang/lib/AST/ExprConstant.cpp:9330: (anonymous namespace)::ICEDiag CheckICE(const clang::Expr *, const clang::ASTContext &):
  Assertion `!E->isValueDependent() && "Should not see value dependent exprs!"' failed.
In C++11 mode, that assert does not trigger.

This commit works around this in the check. We don't check
value-dependent indices and instead check their specialization.

Reviewers: alexfh, aaron.ballman

Subscribers: nemanjai, cfe-commits

Differential Revision: http://reviews.llvm.org/D22190

llvm-svn: 275461
2016-07-14 20:00:48 +00:00
..
clang-apply-replacements Remove autoconf support 2016-01-26 21:31:36 +00:00
clang-query Update to match LLVM r272232. 2016-06-09 00:54:42 +00:00
clang-rename [clang-rename] exit code-related bugfix and code cleanup 2016-07-14 09:46:03 +00:00
clang-tidy cppcoreguidelines-pro-bounds-constant-array-index: crash for value dependent index in c++03 mode 2016-07-14 20:00:48 +00:00
docs [clang-rename] add documentation 2016-07-14 09:46:07 +00:00
include-fixer [include-fixer] Correct an incorrecst judgement about prefix scoped qualifiers. 2016-07-14 09:39:12 +00:00
modularize Fixed some cases in the modularize assistant mode where header file names didn't translate to valid module names. 2016-03-21 23:05:14 +00:00
pp-trace Fix Clang-tidy modernize-deprecated-headers warnings; other minor fixes. 2016-03-17 17:02:25 +00:00
test cppcoreguidelines-pro-bounds-constant-array-index: crash for value dependent index in c++03 mode 2016-07-14 20:00:48 +00:00
tool-template Update to match LLVM r272232. 2016-06-09 00:54:42 +00:00
unittests [include-fixer] Correct an incorrecst judgement about prefix scoped qualifiers. 2016-07-14 09:39:12 +00:00
.arcconfig Upgrade all the .arcconfigs to https. 2016-07-14 13:15:37 +00:00
.gitignore .gitignore: ignore docs/_build 2013-03-03 15:15:12 +00:00
CMakeLists.txt [include-fixer] Add a prototype for a new include fixing tool. 2016-04-20 12:43:43 +00:00
CODE_OWNERS.TXT Updating the code owners list. 2015-09-02 20:00:41 +00:00
LICENSE.TXT Update copyright year to 2016. 2016-03-30 22:38:47 +00:00
README.txt Update references to new lists.llvm.org mailing lists. 2015-08-05 03:56:44 +00:00

README.txt

//===----------------------------------------------------------------------===//
// Clang Tools repository
//===----------------------------------------------------------------------===//

Welcome to the repository of extra Clang Tools.  This repository holds tools
that are developed as part of the LLVM compiler infrastructure project and the
Clang frontend.  These tools are kept in a separate "extra" repository to
allow lighter weight checkouts of the core Clang codebase.

This repository is only intended to be checked out inside of a full LLVM+Clang
tree, and in the 'tools/extra' subdirectory of the Clang checkout.

All discussion regarding Clang, Clang-based tools, and code in this repository
should be held using the standard Clang mailing lists:
  http://lists.llvm.org/mailman/listinfo/cfe-dev

Code review for this tree should take place on the standard Clang patch and
commit lists:
  http://lists.llvm.org/mailman/listinfo/cfe-commits

If you find a bug in these tools, please file it in the LLVM bug tracker:
  http://llvm.org/bugs/