Go to file
Pavel Labath 7e4d62a8dd DWARFASTParserClang: Move attribute parsing into a single function
Summary:
The ParseTypeFromDWARF function consists of a huge switch on the kind of
type being parsed. Each case in this switch starts with parsing the
attributes of the current DIE. A lot of these attributes are specific to
one kind of a type, but a lot of them are common too, leading to code
duplication.

This patch reduces the duplication (and the size of ParseTypeFromDWARF)
by moving the attribute parsing to a separate function. It creates a
struct (ParsedTypeAttributes), which contains a parsed form of all
attributes which are useful for parsing any kind of a type. The parsing
code for a specific type kind can then access the fields which are
relevant for that specific case.

Reviewers: JDevlieghere, clayborg, aprantl

Subscribers: jdoerfert, lldb-commits

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

llvm-svn: 362075
2019-05-30 09:39:36 +00:00
clang asm goto: fix out-of-bounds read of Constraints after rC362045 2019-05-30 08:03:02 +00:00
clang-tools-extra [Index] Compute correct symbol kind for variable templates 2019-05-29 17:49:30 +00:00
compiler-rt mac: Make ubsan test config look more like asan test config 2019-05-29 18:54:28 +00:00
debuginfo-tests Move the pybool logic from CMake to Python for simplicity 2019-05-29 21:45:43 +00:00
libclc travis: Add LLVM-8 build 2019-03-27 21:28:31 +00:00
libcxx [runtimes] Use _LIBCPP_HAS_COMMENT_LIB_PRAGMA in all relevant files 2019-05-30 06:57:27 +00:00
libcxxabi [libcxx][libcxxabi] Remove the unused CMake checks 2019-05-30 06:08:56 +00:00
libunwind [CMake] Use find_package(LLVM) instead of LLVMConfig 2019-05-30 07:34:39 +00:00
lld [WebAssembly] Move direct call tracking from member to local. NFC. 2019-05-29 15:41:08 +00:00
lldb DWARFASTParserClang: Move attribute parsing into a single function 2019-05-30 09:39:36 +00:00
llgo IR: Support parsing numeric block ids, and emit them in textual output. 2019-03-22 18:27:13 +00:00
llvm [llvm-objcopy] Remove %p format specifiers 2019-05-30 09:09:01 +00:00
openmp [openmp] [test] Skip kernel-breaking tests on NetBSD 2019-05-28 14:10:47 +00:00
parallel-libs Fix typos throughout the license files that somehow I and my reviewers 2019-01-21 09:52:34 +00:00
polly [ScopBuilder] Move buildInvariantEquivalenceClasses function from ScopInfo. NFC. 2019-05-28 23:47:55 +00:00
pstl [pstl] Make the default backend be the serial backend and always provide parallel policies 2019-04-24 20:12:36 +00:00
.arcconfig Update monorepo .arcconfig with new project callsign. 2019-01-31 14:34:59 +00:00
.clang-format Add .clang-tidy and .clang-format files to the toplevel of the 2019-01-29 16:43:16 +00:00
.clang-tidy Disable tidy checks with too many hits 2019-02-01 11:20:13 +00:00
.gitignore Add a reduced copy of the llvm .gitignore 2019-04-09 00:52:49 +00:00
README.md

README.md

The LLVM Compiler Infrastructure

This directory and its subdirectories contain source code for LLVM, a toolkit for the construction of highly optimized compilers, optimizers, and runtime environments.