| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 204787
|
|
|
|
|
|
| |
Reviewed at http://llvm-reviews.chandlerc.com/D3181
llvm-svn: 204786
|
|
|
|
|
|
| |
Fixes PR19240. In retrospect, this is a fairly obvious bug. :)
llvm-svn: 204744
|
|
|
|
|
|
|
|
| |
class with complex inheritance
Reviewed at http://llvm-reviews.chandlerc.com/D3128
llvm-svn: 204394
|
|
|
|
| |
llvm-svn: 204341
|
|
|
|
|
|
| |
with iterator_range methods(). Updating all of the usages of the iterators with range-based for loops.
llvm-svn: 203812
|
|
|
|
|
|
| |
with iterator_range vbases(). Updating all of the usages of the iterators with range-based for loops.
llvm-svn: 203808
|
|
|
|
|
|
| |
iterator_range bases(). Updating all of the usages of the iterators with range-based for loops.
llvm-svn: 203803
|
|
|
|
|
|
| |
No functionality change.
llvm-svn: 203289
|
|
|
|
|
|
| |
inheritance hierarchy
llvm-svn: 203222
|
|
|
|
| |
llvm-svn: 202978
|
|
|
|
| |
llvm-svn: 202870
|
|
|
|
|
|
| |
No functionality change.
llvm-svn: 202755
|
|
|
|
| |
llvm-svn: 202639
|
|
|
|
|
|
| |
No functionality change.
llvm-svn: 202590
|
|
|
|
| |
llvm-svn: 202558
|
|
|
|
| |
llvm-svn: 202441
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This merges VFPtrInfo and VBTableInfo into VPtrInfo, since they hold
almost the same information. With that change, the vbtable mangling
code can easily be applied to vftable data and we magically get the
correct, unambiguous vftable names.
Fixes PR17748.
Reviewers: timurrrr, majnemer
CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D2893
llvm-svn: 202425
|
|
|
|
|
|
|
|
|
|
|
| |
hierarchies (PR18967)
Erroring out until we fix the bug means we don't have to keep chasing down
this same miscompile in a bunch of different places.
Differential Revision: http://llvm-reviews.chandlerc.com/D2890
llvm-svn: 202331
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In the Microsoft ABI, the vftable is laid out as if all methods in every
overload set were declared in reverse order of declaration at the point
of declaration of the first overload in the set.
Previously we only considered virtual methods in an overload set, but
MSVC includes non-virtual methods for ordering purposes.
Fixes PR18902.
llvm-svn: 201722
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A return type is the declared or deduced part of the function type specified in
the declaration.
A result type is the (potentially adjusted) type of the value of an expression
that calls the function.
Rule of thumb:
* Declarations have return types and parameters.
* Expressions have result types and arguments.
llvm-svn: 200082
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fix a perennial source of confusion in the clang type system: Declarations and
function prototypes have parameters to which arguments are supplied, so calling
these 'arguments' was a stretch even in C mode, let alone C++ where default
arguments, templates and overloading make the distinction important to get
right.
Readability win across the board, especially in the casting, ADL and
overloading implementations which make a lot more sense at a glance now.
Will keep an eye on the builders and update dependent projects shortly.
No functional change.
llvm-svn: 199686
|
|
|
|
| |
llvm-svn: 199013
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This makes us more compatible with MSVC 2012+ and fixes PR17748 where we
would give two tables the same name.
Rather than doing a fresh depth-first traversal of the inheritance graph
for every record's vbtables, now we memoize vbtable paths for each
record. By doing memoization, we end up considering virtual bases of
subobjects that come later in the depth-first traversal. Where
previously we would have ignored a virtual base that we'd already seen,
we now consider it for name mangling purposes without emitting a
duplicate vbtable for it.
Reviewers: majnemer
CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D2509
llvm-svn: 198462
|
|
|
|
|
|
| |
over to using printQualifiedName where possible. No functional changes intended.
llvm-svn: 198433
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
No functionality change.
This code should live here long-term because we should be able to use it
to compute correct vftable names.
It turns out that the most natural way to implement the naming algorithm
is to use a caching layer similar to what we already have for virtual
table info in VTableContext. Subsequent changes will take advantage of
this to fix PR17748, where we have a vbtable name collision.
Reviewers: majnemer
CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D2499
llvm-svn: 198380
|
|
|
|
|
|
| |
No functionality change.
llvm-svn: 198085
|
|
|
|
| |
llvm-svn: 198081
|
|
|
|
|
|
|
|
|
|
|
| |
Most importantly, this makes our vtable layout match MSVC's. Previously
we would emit a return adjusting thunk whenever the return types
differed, even if the adjustment would have been trivial.
MSVC does emit some trivial return adjusting thunks, but only if there
was already an overridden method that required a return adjustment.
llvm-svn: 198080
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now CodeGenVTables has only one VTableContext object, which is either
Itanium or Microsoft.
Fixes a FIXME with no functionality change intended.
Ideally we could avoid the downcasts by pushing the things that
reference the Itanium vtable context into ItaniumCXXABI.cpp, but we're
not there yet.
llvm-svn: 197845
|
|
|
|
|
|
|
|
| |
This was part of the cause for PR17655. We were generating thunks when
we shouldn't have. I suspect that if we tweak the test case for PR17655
to actually require thunks, we can reproduce the same crash.
llvm-svn: 197836
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This makes it consistent with -fdump-record-layouts, which was moved to
outs() in r186219. My reasoning for going with stdout is that when one
of these options is present, the layouts are really a program output,
and shouldn't be interleaved with diagnostics, which are on stderr.
Reviewers: timurrrr
Differential Revision: http://llvm-reviews.chandlerc.com/D2127
llvm-svn: 194279
|
|
|
|
|
|
| |
Reviewed at http://llvm-reviews.chandlerc.com/D2120
llvm-svn: 194256
|
|
|
|
|
|
| |
field with a more appropriate name
llvm-svn: 194202
|
|
|
|
| |
llvm-svn: 194132
|
|
|
|
| |
llvm-svn: 194082
|
|
|
|
|
|
|
|
| |
adjustment when using -cxx-abi microsoft
Reviewed at http://llvm-reviews.chandlerc.com/D2026
llvm-svn: 193679
|
|
|
|
|
|
| |
reduce code duplication
llvm-svn: 193610
|
|
|
|
| |
llvm-svn: 193164
|
|
|
|
|
|
|
|
| |
destructors in the presence of virtual bases
Reviewed at http://llvm-reviews.chandlerc.com/D1939
llvm-svn: 192822
|
|
|
|
|
|
| |
No functionality change.
llvm-svn: 192598
|
|
|
|
|
|
| |
ItaniumVTableBuilder and clang-format code around
llvm-svn: 192288
|
|
|
|
|
|
| |
simple thunks when using -cxx-abi microsoft" with relaxed assertions
llvm-svn: 192285
|
|
|
|
| |
llvm-svn: 192225
|
|
|
|
|
|
|
|
| |
when using -cxx-abi microsoft
Reviewed at http://llvm-reviews.chandlerc.com/D1787
llvm-svn: 192220
|
|
|
|
| |
llvm-svn: 192067
|
|
|
|
|
|
|
|
| |
when using -cxx-abi microsoft
Reviewed at http://llvm-reviews.chandlerc.com/D1532
llvm-svn: 191523
|
|
|
|
|
|
| |
implement them for -cxx-abi microsoft
llvm-svn: 188870
|
|
|
|
| |
llvm-svn: 187574
|
|
|
|
| |
llvm-svn: 187409
|