hanchenye-llvm-project/llvm
Nicolai Haehnle aecb68b549 TableGen: Fix typeIsConvertibleTo for record types
Summary:
Only check whether the left-hand side type is a subclass (or equal to)
the right-hand side type.

This requires a further fix in handling !if expressions and in type
resolution.

Furthermore, reverse the order of superclasses so that resolveTypes will
find a least common ancestor at least in simple cases.

Add a test that used to be accepted without flagging the obvious type
error.

Change-Id: Ib366db1a4e6a079f1a0851e469b402cddae76714

Reviewers: arsenm, craig.topper, tra, MartinO

Subscribers: wdng, llvm-commits

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

llvm-svn: 325884
2018-02-23 10:46:13 +00:00
..
bindings [NFC] fix trivial typos in comments and documents 2018-01-26 08:15:29 +00:00
cmake Don't make PDBs by default in Release mode 2018-02-15 21:25:23 +00:00
docs TableGen: Add !size operation 2018-02-23 10:46:07 +00:00
examples [ORC] Consolidate RTDyldObjectLinkingLayer GetMemMgr and GetResolver into a 2018-02-14 22:13:02 +00:00
include TableGen: Add !size operation 2018-02-23 10:46:07 +00:00
lib TableGen: Fix typeIsConvertibleTo for record types 2018-02-23 10:46:13 +00:00
projects
resources
runtimes
test TableGen: Fix typeIsConvertibleTo for record types 2018-02-23 10:46:13 +00:00
tools [WebAssembly] Add first claass symbol table to wasm objects 2018-02-23 05:08:34 +00:00
unittests [GISel]: Fix base case for m_any_of PatternMatcher. 2018-02-23 01:01:59 +00:00
utils Resubmit r325107 (case folding DJB hash) 2018-02-21 22:36:31 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitattributes
.gitignore
CMakeLists.txt CMake: Allow specifying arbitrary CCACHE parameters 2018-02-09 23:25:23 +00:00
CODE_OWNERS.TXT
CREDITS.TXT Add myself to CREDITS.txt 2018-01-29 17:02:34 +00:00
LICENSE.TXT
LLVMBuild.txt
README.txt
RELEASE_TESTERS.TXT
configure
llvm.spec.in

README.txt

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.

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

If you are writing a package for LLVM, see docs/Packaging.rst for our
suggestions.