llvm-project/clang
Vedant Kumar a14a1f923f [Parse] Forward brace locations to TypeConstructExpr
When parsing C++ type construction expressions with list initialization,
forward the locations of the braces to Sema.

Without these locations, the code coverage pass crashes on the given test
case, because the pass relies on getLocEnd() returning a valid location.

Here is what this patch does in more detail:

  - Forwards init-list brace locations to Sema (ParseExprCXX),
  - Builds an InitializationKind with these locations (SemaExprCXX), and
  - Uses these locations for constructor initialization (SemaInit).

The remaining changes fall out of introducing a new overload for
creating direct-list InitializationKinds.

Testing: check-clang, and a stage2 coverage-enabled build of clang with
asserts enabled.

Differential Revision: https://reviews.llvm.org/D41921

llvm-svn: 322729
2018-01-17 18:53:51 +00:00
..
INPUTS
bindings Remove duplicate python libclang changes from r320748 2017-12-14 23:40:42 +00:00
cmake [Fuchsia] Remove LLDB from the toolchain distribution 2018-01-11 04:25:30 +00:00
docs Update dump_ast_matchers for many recent changes. 2018-01-17 16:50:14 +00:00
examples [CMake] Use PRIVATE in target_link_libraries for executables 2017-12-05 21:49:56 +00:00
include [Parse] Forward brace locations to TypeConstructExpr 2018-01-17 18:53:51 +00:00
lib [Parse] Forward brace locations to TypeConstructExpr 2018-01-17 18:53:51 +00:00
runtime [clang] Use add_llvm_install_targets 2017-11-30 22:35:02 +00:00
test [Parse] Forward brace locations to TypeConstructExpr 2018-01-17 18:53:51 +00:00
tools [Index] Fix GCC warning again :-( 2018-01-17 18:20:57 +00:00
unittests [Format] Improve ObjC header guessing heuristic 2018-01-17 17:33:08 +00:00
utils Make attribute instantiation instantiate all attributes, not just the first of 2018-01-04 23:42:29 +00:00
www DR126: partially implement the const-correct rules for exception handler matching. 2018-01-13 05:05:45 +00:00
.arcconfig [clang] Set up .arcconfig to point to new Diffusion C repository 2017-11-27 17:21:24 +00:00
.clang-format
.clang-tidy
.gitignore
CMakeLists.txt [OpenMP] NVPTX: Set default/minimum compute capability to sm_35 2017-12-07 20:27:31 +00:00
CODE_OWNERS.TXT Change code owner for Clang Static Analyzer to Devin Coughlin. 2017-11-17 23:19:04 +00:00
INSTALL.txt
LICENSE.TXT
ModuleInfo.txt
NOTES.txt
README.txt Test commit 2017-10-21 16:03:17 +00:00

README.txt

//===----------------------------------------------------------------------===//
// C Language Family Front-end
//===----------------------------------------------------------------------===//

Welcome to Clang.  This is a compiler front-end for the C family of languages
(C, C++, Objective-C, and Objective-C++) which is built as part of the LLVM
compiler infrastructure project.

Unlike many other compiler frontends, Clang is useful for a number of things
beyond just compiling code: we intend for Clang to be host to a number of
different source-level tools.  One example of this is the Clang Static Analyzer.

If you're interested in more (including how to build Clang) it is best to read
the relevant web sites.  Here are some pointers:

Information on Clang:             http://clang.llvm.org/
Building and using Clang:         http://clang.llvm.org/get_started.html
Clang Static Analyzer:            http://clang-analyzer.llvm.org/
Information on the LLVM project:  http://llvm.org/

If you have questions or comments about Clang, a great place to discuss them is
on the Clang development mailing list:
  http://lists.llvm.org/mailman/listinfo/cfe-dev

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