llvm with tablegen backend for capstone disassembler
Go to file
Eric Fiselier 8ed97272ab [coroutines] Fix application of NRVO to Coroutine "Gro" or return object.
Summary:
Fix NRVO for Gro variable.

Previously, we only marked the GRO declaration as an NRVO variable
when its QualType and the function return's QualType matched exactly
(using operator==). However, this was incorrect for two reasons:

1. We were marking non-class types, such as ints, as being NRVO variables.

2. We failed to  handle cases where the canonical types were the same, but the actual `QualType` objects were different. For example, if  one was represented by a typedef. (Example: https://godbolt.org/g/3UFgsL)

This patch fixes these bugs by marking the Gro variable as supporting NRVO only
when `BuildReturnStmt` marks the Gro variable as a coroutine candidate.






Reviewers: rsmith, GorNishanov, nicholas

Reviewed By: GorNishanov

Subscribers: majnemer, cfe-commits

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

llvm-svn: 324037
2018-02-01 23:47:54 +00:00
clang [coroutines] Fix application of NRVO to Coroutine "Gro" or return object. 2018-02-01 23:47:54 +00:00
clang-tools-extra [clangd] Log dropped diagnostics. 2018-02-01 19:06:45 +00:00
compiler-rt Add new interceptors: strlcpy(3) and strlcat(3) 2018-02-01 23:34:30 +00:00
debuginfo-tests [debuginfo-tests] Support moving debuginfo-tests to llvm/projects 2017-12-12 16:54:20 +00:00
libclc half_powr: Implement using powr 2018-02-01 03:00:35 +00:00
libcxx Disable test in C++<11 mode due to use of alignas. 2018-02-01 23:31:22 +00:00
libcxxabi [demangler] Improve variadic template support 2018-01-31 20:17:06 +00:00
libunwind [cmake] [libunwind] LLVM_FOUND isn't always set, so just test if 2018-01-27 19:31:44 +00:00
lld Relax the grammar of the version script. 2018-02-01 23:46:17 +00:00
lldb Create a marker for Spotlight to never index $BUILD_DIR. 2018-02-01 22:18:02 +00:00
llgo irgen: Create functions instead of global variables for builtin hash and equal algorithms. 2017-06-04 22:11:28 +00:00
llvm [cfi-verify] Add blame context printing, and improved print format. 2018-02-01 23:45:18 +00:00
openmp [OpenMP-RT] Fix debug string for NVPTX runtime library 2018-02-01 16:12:16 +00:00
parallel-libs [Axccel] Remove -Wno-missing-braces in build 2016-12-19 21:34:07 +00:00
polly Update polly for r323999. 2018-02-01 20:49:53 +00:00
README.md Add an svn project to contain the files that appear at the root of the 2017-10-19 21:09:49 +00:00

Low Level Virtual Machine (LLVM)

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