| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
| |
with their own explicit visibility attributes. Basically we only want to
apply a single visibility attribute from any particular ancestry.
llvm-svn: 117998
|
|
|
|
|
|
| |
(was project bugs).
llvm-svn: 117951
|
|
|
|
|
|
|
|
| |
calling it.
Also avoids IRGen crashes due to accepting invalid code.
llvm-svn: 117943
|
|
|
|
| |
llvm-svn: 117921
|
|
|
|
|
|
|
|
| |
isInlined() just gives meaningless results for non-definitions.
Fixes rdar://problem/8614470
llvm-svn: 117887
|
|
|
|
| |
llvm-svn: 117883
|
|
|
|
|
|
| |
getVBaseClassOffset instead.
llvm-svn: 117882
|
|
|
|
|
|
| |
getBaseClassOffset which returns the offset in CharUnits. Do the same thing for getVBaseClassOffset.
llvm-svn: 117881
|
|
|
|
| |
llvm-svn: 117878
|
|
|
|
| |
llvm-svn: 117877
|
|
|
|
| |
llvm-svn: 117875
|
|
|
|
| |
llvm-svn: 117874
|
|
|
|
| |
llvm-svn: 117873
|
|
|
|
|
|
| |
ASTRecordLayout. Start by storing the offsets in CharUnits in the ASTRecordLayout object.
llvm-svn: 117869
|
|
|
|
|
|
| |
virtual bases are involved. Fixes PR5974.
llvm-svn: 117868
|
|
|
|
|
|
| |
Fixes PR8507.
llvm-svn: 117850
|
|
|
|
|
|
| |
As a bonus, avoids a crash on the IRGen side due to accepting invalid code.
llvm-svn: 117842
|
|
|
|
|
|
| |
type's", it breaks things.
llvm-svn: 117829
|
|
|
|
|
|
|
|
|
|
| |
independently of whether they're definitions, then teach IR generation to
ignore non-explicit visibility when emitting declarations. Use this to
make sure that RTTI, vtables, and VTTs get the right visibility.
More of rdar://problem/8613093
llvm-svn: 117781
|
|
|
|
|
|
|
|
| |
whether it's a declaration or not, then ignores that information for
declarations unless it was explicitly given. It's not totally clear
how that should be mapped into a sane system, but make an effort.
llvm-svn: 117780
|
|
|
|
|
|
| |
PR8423
llvm-svn: 117775
|
|
|
|
|
|
| |
the performance of C++ PCH and reducing stack depth in the reader.
llvm-svn: 117732
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
for namespace-scope variable declarations.
Apply visibility in IR gen to variables that are merely declared
and never defined. We were previously emitting these with default
visibility unless they were declared with private_extern.
Ignore global visibility settings when computing visibility for
a declaration's context, and key several conditions on whether a
visibility attribute exists anywhere in the hierarchy as opposed
to whether it exists at the current level.
llvm-svn: 117729
|
|
|
|
|
|
|
|
| |
protocols, including those added to class, super class
and categories; otherewise issue a warning. This fixes
pr8453.
llvm-svn: 117678
|
|
|
|
|
|
| |
declared", it breaks things.
llvm-svn: 117653
|
|
|
|
|
|
|
|
|
|
|
|
| |
and never defined. We were previously emitting these with default
visibility unless they were declared with private_extern.
Ignore global visibility settings when computing visibility for
a declaration's context, and key several conditions on whether a
visibility attribute exists anywhere in the hierarchy as opposed
to whether it exists at the current level.
llvm-svn: 117644
|
|
|
|
|
|
|
| |
This isn't used yet, because someone more experienced than I needs to look
at the type system about gutting getCanonicalCallConv().
llvm-svn: 117638
|
|
|
|
|
|
|
| |
of its context without considering global settings like -fvisibility=hidden.
Fixes PR8492.
llvm-svn: 117628
|
|
|
|
|
|
| |
Part 2 of rdar://problem/8595231
llvm-svn: 117567
|
|
|
|
| |
llvm-svn: 117541
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
in the scope checker. With that done, turn an indirect goto into a
protected scope into a hard error; otherwise IR generation has to start
worrying about declarations not dominating their scopes, as exemplified
in PR8473.
If this really affects anyone, I can probably adjust this to only hard-error
on possible indirect gotos into VLA scopes rather than arbitrary scopes.
But we'll see how people cope with the aggressive change on the marginal
feature.
llvm-svn: 117539
|
|
|
|
|
|
|
|
| |
DeclContext,
meaning we need to rewrite its name lookup table in a chained PCH.
llvm-svn: 117536
|
|
|
|
|
|
| |
chained PCH.
llvm-svn: 117533
|
|
|
|
|
|
| |
and it's too much trouble to push for. Fixes PR8478.
llvm-svn: 117532
|
|
|
|
|
|
|
|
| |
attribute.
Part of rdar://problem/8595231
llvm-svn: 117526
|
|
|
|
|
|
| |
type-based visibility.
llvm-svn: 117500
|
|
|
|
|
|
|
| |
not loading the specializations of a class template until some AST
consumer needs them.
llvm-svn: 117498
|
|
|
|
|
|
| |
eliminate some excessive recursion and deserialization.
llvm-svn: 117476
|
|
|
|
|
|
|
| |
a member call expression. This has proved to be a common pattern for users of
RecursiveASTVisitor.
llvm-svn: 117439
|
|
|
|
|
|
|
|
|
| |
There's probably still significant padding waste on x86-64 UNIXen, but
the difference in 32-bit compiles should be significant.
There are a lot of Expr nodes left that could lose a word this way.
llvm-svn: 117359
|
|
|
|
|
|
| |
anymore.
llvm-svn: 117357
|
|
|
|
|
|
|
|
|
|
|
| |
- tags with C linkage should ignore visibility=hidden
- functions and variables with explicit visibility attributes should
ignore the linkage of their types
Either of these should be sufficient to fix PR8457.
Also, FileCheck-ize a test case.
llvm-svn: 117351
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
getCanonicalType() to make sure that the type we got back is actually
canonical. This is the case for most types, which always build a
canonical type when given canonical components. However, some types that
involve expressions in their canonicalization (e.g., array types with
dependent sizes) don't always build canonical types from canonical
components, because there is no such thing as a "canonical"
expression. Therefore, we do this extra mapping to ensure that the
canonical types we store are actually canonical.
llvm-svn: 117344
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds them where missing, and traces them through PCH. We fix at least one
bug in the extents found by the Index library, and make a lot of refactoring
tools which care about the exact formulation of a constructor call easier to
write. Also some minor cleanups to more consistently follow the friend pattern
instead of the setter pattern when rebuilding a serialized AST.
Patch originally by Samuel Benzaquen.
llvm-svn: 117254
|
|
|
|
|
|
|
| |
as a function argument, one of the types is a transparent union type
and the other type is compatible with a union member
llvm-svn: 117243
|
|
|
|
|
|
| |
definition was completed.
llvm-svn: 117240
|
|
|
|
|
|
|
|
|
| |
completed.
In that case a chained PCH will record the updates to the DefinitionData pointer of forward references.
If a forward reference mutated into a definition re-write it into the chained PCH, this is too big of a change.
llvm-svn: 117239
|
|
|
|
|
|
|
|
|
|
|
|
| |
committed after
its initial creation/deserialization and store the changes in a chained PCH.
The idea is that the AST entities call methods on the ASTMutationListener to give notifications
of changes; the PCHWriter implements the ASTMutationListener interface and stores the incremental changes
of the updated entity. WIP
llvm-svn: 117235
|
|
|
|
| |
llvm-svn: 117201
|
|
|
|
|
|
|
|
| |
more closely parallel the computation of linkage. This gets us to a state
much closer to what gcc emits, modulo bugs, which will undoubtedly arise in
abundance.
llvm-svn: 117147
|