| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
of an artificial function gets an artificial location as well.
llvm-svn: 187074
|
|
|
|
|
|
|
|
| |
__byref_variable_layout.
rdar://problem/14386148
llvm-svn: 186898
|
|
|
|
|
|
| |
Fixes rdar://problem/14386148
llvm-svn: 186894
|
|
|
|
| |
llvm-svn: 186638
|
|
|
|
| |
llvm-svn: 186557
|
|
|
|
|
|
|
| |
use the conversion to bool to check if we've managed to get a type
that isn't default constructed - as we meant to in the first place.
llvm-svn: 186556
|
|
|
|
| |
llvm-svn: 186555
|
|
|
|
| |
llvm-svn: 186554
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
inspired by CodegenFunction::LexicalScope.
- NoLocation temporarily turns off debug locations altogether.
This is useful for emitting instructions that should be
counted towards the function prologue.
- BuiltinLocation temporarily switches to an artificial debug location
that has a valid scope, but no line information. This is useful when
emitting compiler-generated helper functions that have no source
location associated with them.
llvm-svn: 186552
|
|
|
|
| |
llvm-svn: 186551
|
|
|
|
| |
llvm-svn: 186550
|
|
|
|
| |
llvm-svn: 186542
|
|
|
|
|
|
|
| |
BlockLiteralGenericSet and replace with a call to isType() on the
BlockLiteralGeneric.
llvm-svn: 186293
|
|
|
|
| |
llvm-svn: 186292
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
emit the full definition of a type in -flimit-debug-info
This simplifies the core benefit of -flimit-debug-info by taking a more
systematic approach to avoid emitting debug info definitions for types
that only require declarations. The previous ad-hoc approach (3 cases
removed in this patch) had many holes.
The general approach (adding a bit to TagDecl and callback through
ASTConsumer) has been discussed with Richard Smith - though always open
to revision.
llvm-svn: 186262
|
|
|
|
|
|
|
|
|
|
|
| |
Test coverage for non-dependent pack expansions doesn't demonstrate a
failure prior to this patch (a follow-up commit improving debug info
will cover this commit specifically) but covers a related hole in our
test coverage.
Reviewed by Richard Smith & Eli Friedman.
llvm-svn: 186261
|
|
|
|
|
|
|
|
|
|
|
| |
Do not generate VLAs as complex variables any more, as they are now
correctly represented as breg+0 locations in the backend.
(Paired commit with LLVM: r185966)
rdar://problem/13658587
llvm-svn: 185967
|
|
|
|
|
|
|
| |
No functionality change. It should suffice to check the type of a debug info
metadata, instead of calling Verify.
llvm-svn: 185463
|
|
|
|
|
|
| |
Differential Revision: http://llvm-reviews.chandlerc.com/D1051
llvm-svn: 185115
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The old implementation of ms_struct in RecordLayoutBuilder was a
complete mess: it depended on complicated conditionals which didn't
really reflect the underlying logic, and placed a burden on users of
the resulting RecordLayout. This commit rips out almost all of the
old code, and replaces it with simple checks in
RecordLayoutBuilder::LayoutBitField.
This commit also fixes <rdar://problem/14252115>, a bug where class
inheritance would cause us to lay out bitfields incorrectly.
llvm-svn: 185018
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The goal of this sugar node is to be able to look at an arbitrary
FunctionType and tell if any of the parameters were decayed from an
array or function type. Ultimately this is necessary to implement
Microsoft's C++ name mangling scheme, which mangles decayed arrays
differently from normal pointers.
Reviewers: rsmith
Differential Revision: http://llvm-reviews.chandlerc.com/D1014
llvm-svn: 184763
|
|
|
|
|
|
|
|
|
|
| |
There's still a problem here - since we're not appropriately using the
signedness/range of the enum to chooset the encoding and emission of
enumerators, but GCC has some bugs around this too so I assume that's
not /such/ a high priority though I may get to it soon out of
completeness.
llvm-svn: 184695
|
|
|
|
|
|
| |
and parameter packs
llvm-svn: 184644
|
|
|
|
|
|
| |
No functionality change intended.
llvm-svn: 184614
|
|
|
|
|
|
| |
later require definitions
llvm-svn: 184594
|
|
|
|
| |
llvm-svn: 184512
|
|
|
|
|
|
|
|
|
|
|
| |
This just seems a bit tidier/more principled. Based on a patch provided
by Adrian - with the only minor tweak that it needed to use
"getTypeOrNull" rather than "getCompletedTypeOrNull" since we don't
store declarations in the CompletedTypes cache.
No intended functionality change.
llvm-svn: 184509
|
|
|
|
|
|
|
|
|
|
| |
limited debug info.
This is another small addendum to r184252.
rdar://problem/14101097
llvm-svn: 184473
|
|
|
|
|
|
|
|
|
|
| |
parameters are stored indirectly
This is to fix the location information for such parameters to refer to
the object accessible through the pointer rather than to the pointer
parameter itself.
llvm-svn: 184367
|
|
|
|
|
|
| |
rdar://problem/14101097
llvm-svn: 184259
|
|
|
|
|
|
|
|
|
|
| |
limiting debug info.
FIXME: There is still work left to do here, the testcase should work even with -flimit-debug-info.
rdar://problem/14101097
llvm-svn: 184252
|
|
|
|
| |
llvm-svn: 183586
|
|
|
|
|
|
|
|
|
|
| |
- factor the name construction part out from constructSetterName
- rename constructSetterName to the more appropriate constructSetterSelector
no functionality change intended.
rdar://problem/14035789
llvm-svn: 183582
|
|
|
|
| |
llvm-svn: 183475
|
|
|
|
|
|
|
|
| |
the default names, not just when the isImplicit flag is set.
rdar://problem/14035789
llvm-svn: 183474
|
|
|
|
| |
llvm-svn: 183473
|
|
|
|
|
|
|
|
|
|
| |
There seems to have been some erroneous code attempting to describe the
ABI of parameters (non-trivial record parameters are passed by
reference). This would break the type of the function (especially when
it caused a mismatch between the type of a declaration & a definition)
causing PR14763 and PR14645.
llvm-svn: 183329
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
used via typedefs
In an effort to make -flimit-debug-info more consistent I over-shot the
mark & made types used via typedefs never produce definitions in the
debug info (even if the type was used in a way that would require a
definition).
The fix for this is to do exactly what I was hoping to do at some point
- plumb the declaration/definition choice through the various layers of
"CreateType" in CGDebugInfo. In this way we can produce declarations
whenever they are sufficient & definitions otherwise - including when
qualifiers are used, for example (discovered in PR14467). This may not
be complete (there may be other types/situations where we need to
propagate the "declaration/definition" choice) but it lays the basic
foundation which we can enhance in future iterations.
llvm-svn: 183296
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
To make this more consistent with 'getOrCreateType' & clarify the
distinction between the two. The only thing I couldn't quite communicate
in the name is that getOrCreateTypeDeclaration may actually produce a
full definition (in -fno-limit-debug-info) but the point is to call it
whenever only a declaration is needed & the implementation can choose
whether to provide a declaration or definition.
(also, unfortunately, getOrCreateType can produce declarations too - we
should sure this up by making it not do that - any caller that can
tolerate a declaration should be calling getOrCreateTypeDeclaration
instead)
llvm-svn: 182674
|
|
|
|
|
|
|
|
|
|
|
|
| |
types
Perhaps we should just suppress this, rather than erroring, but since we
have the infrastructure for it I figured I'd use it - if this is
determined to be not the right thing we should probably remove that
infrastructure entirely. I guess it's lying around from the early days
of implementing debug info support.
llvm-svn: 182673
|
|
|
|
| |
llvm-svn: 182533
|
|
|
|
|
|
| |
rdar://problem/13359718
llvm-svn: 182524
|
|
|
|
|
|
|
|
|
| |
- The return type should be a pointer to the class type.
- Make the condition more specific.
rdar://problem/13359718
llvm-svn: 182504
|
|
|
|
|
|
| |
duplicate lookup in the insertion case
llvm-svn: 182404
|
|
|
|
|
|
|
|
| |
them from
(no intended behavior change)
llvm-svn: 182403
|
|
|
|
| |
llvm-svn: 182400
|
|
|
|
|
|
|
|
|
| |
This resolves the last of the PR14606 failures in the GDB 7.5 test
suite. (but there are still unresolved issues in the imported_decl case
- we need to implement optional/lazy decls for functions & variables
like we already do for types)
llvm-svn: 182329
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
of variables, types, and functions.""
This reverts commit r181947 (git d2990ce56a16050cac0d7937ec9919ff54c6df62 )
This addresses one of the two issues identified in r181947, ensuring
that types imported via using declarations only result in a declaration
being emitted for the type, not a definition. The second issue (emitting
using declarations that are unused) is hopefully an acceptable increase
as the real fix for this would be a bit difficult (probably at best we
could record which using directives were involved in lookups - but may
not have been the result of the lookup).
This also ensures that DW_TAG_imported_declarations (& directives) are
not emitted in line-tables-only mode as well as ensuring that typedefs
only require/emit declarations (rather than definitions) for referenced
types.
llvm-svn: 182231
|
|
|
|
| |
llvm-svn: 182178
|
|
|
|
|
|
|
|
| |
properties declared in a protocol.
rdar://problem/13798000
llvm-svn: 182176
|