diff options
author | David Majnemer <david.majnemer@gmail.com> | 2015-05-04 18:47:54 +0000 |
---|---|---|
committer | David Majnemer <david.majnemer@gmail.com> | 2015-05-04 18:47:54 +0000 |
commit | ab1309252cd8dc0bded3b2292a7ccdeb676fb9d4 (patch) | |
tree | 58e52cb1293dd08c87ab2aa02bfaeae6ed8d0920 /clang/lib/Basic/Targets.cpp | |
parent | c9c55a26bd7fe1962ea1529ee0d0ccd0ea9f90da (diff) | |
download | bcm5719-llvm-ab1309252cd8dc0bded3b2292a7ccdeb676fb9d4.tar.gz bcm5719-llvm-ab1309252cd8dc0bded3b2292a7ccdeb676fb9d4.zip |
[MS ABI] Fix a crash in vptr path calculation
I discovered a case where the old algorithm would crash. Instead of
trying to patch the algorithm, rewrite it. The new algorithm operates
in three phases:
1. Find all paths to the subobject with the vptr.
2. Remove paths which are subsets of other paths.
3. Select the best path where 'best' is defined as introducing the most
covariant overriders. If two paths introduce different overriders,
raise a diagnostic.
llvm-svn: 236444
Diffstat (limited to 'clang/lib/Basic/Targets.cpp')
0 files changed, 0 insertions, 0 deletions