| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
In r253186, I changed the DIBuilder API to now take size and align
for reference types as well. This was done in preparation for upcoming
changes to the Verifier that will validate that sizes match between
DI types and IR values that are declared as having those types.
This updates clang to actually pass the information through.
llvm-svn: 253190
|
|
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D14266
llvm-svn: 252220
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A 'readonly' Objective-C property declared in the primary class can
effectively be shadowed by a 'readwrite' property declared within an
extension of that class, so long as the types and attributes of the
two property declarations are compatible.
Previously, this functionality was implemented by back-patching the
original 'readonly' property to make it 'readwrite', destroying source
information and causing some hideously redundant, incorrect
code. Simplify the implementation to express how this should actually
be modeled: as a separate property declaration in the extension that
shadows (via the name lookup rules) the declaration in the primary
class. While here, correct some broken Fix-Its, eliminate a pile of
redundant code, clean up the ARC migrator's handling of properties
declared in extensions, and fix debug info's naming of methods that
come from categories.
A wonderous side effect of doing this write is that it eliminates the
"AddedObjCPropertyInClassExtension" method from the AST mutation
listener, which in turn eliminates the last place where we rewrite
entire declarations in a chained PCH file or a module file. This
change (which fixes rdar://problem/18475765) will allow us to
eliminate the rewritten-decls logic from the serialization library,
and fixes a crash (rdar://problem/23247794) illustrated by the
test/PCH/chain-categories.m example.
llvm-svn: 251874
|
|
|
|
| |
llvm-svn: 250418
|
|
|
|
|
|
| |
Patch by Amaury Sechet!
llvm-svn: 250373
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add support for the `-fdebug-prefix-map=` option as in GCC. The syntax is
`-fdebug-prefix-map=OLD=NEW`. When compiling files from a path beginning with
OLD, change the debug info to indicate the path as start with NEW. This is
particularly helpful if you are preprocessing in one path and compiling in
another (e.g. for a build cluster with distcc).
Note that the linearity of the implementation is not as terrible as it may seem.
This is normally done once per file with an expectation that the map will be
small (1-2) entries, making this roughly linear in the number of input paths.
Addresses PR24619.
llvm-svn: 250094
|
|
|
|
|
|
| |
when building a module.
llvm-svn: 249282
|
|
|
|
|
|
| |
A forward declaration inside a module header does not belong to the module.
llvm-svn: 249157
|
|
|
|
| |
llvm-svn: 249155
|
|
|
|
|
|
| |
in their module scope when building a clang module.
llvm-svn: 249031
|
|
|
|
|
|
| |
building a clang module.
llvm-svn: 248974
|
|
|
|
|
|
| |
be modified in between. (NFC)
llvm-svn: 248826
|
|
|
|
| |
llvm-svn: 248511
|
|
|
|
|
|
| |
This way we don't need to rebuild the full module name for every decl.
llvm-svn: 248510
|
|
|
|
| |
llvm-svn: 248509
|
|
|
|
|
|
|
|
|
|
|
| |
when building a module. Clang already records the module signature when
building a skeleton CU to reference a clang module.
Matching the id in the skeleton with the one in the module allows a DWARF
consumer to verify that they found the correct version of the module
without them needing to know about the clang module format.
llvm-svn: 248345
|
|
|
|
| |
llvm-svn: 248184
|
|
|
|
| |
llvm-svn: 248127
|
|
|
|
|
|
| |
DIBuilder ignoers DICompileUnits that are passed in as scopes anyway.
llvm-svn: 248077
|
|
|
|
| |
llvm-svn: 248070
|
|
|
|
|
|
|
|
| |
of ASTSourceDescriptor. It was effectively a static function.
NFC.
llvm-svn: 248069
|
|
|
|
|
|
|
|
|
| |
We don't want a skeleton CU when generating debug info for the module
itself.
NFC.
llvm-svn: 248062
|
|
|
|
|
|
|
|
|
|
|
| |
The signature may not have been computed at the time the module reference
is generated (e.g.: in the future while emitting debug info for a clang
module). Using the full module name is safe because each clang module may
only have a single definition.
NFC.
llvm-svn: 248037
|
|
|
|
|
|
|
|
| |
Patch by Pedro Ferreira.
Reviewers: pekka.jaaskelainen
Differential Revision: http://reviews.llvm.org/D12855
llvm-svn: 247676
|
|
|
|
| |
llvm-svn: 247448
|
|
|
|
| |
llvm-svn: 247447
|
|
|
|
|
|
| |
in CGDebugInfo.cpp: MDString::get() copies its arguments.
llvm-svn: 247445
|
|
|
|
|
|
|
|
|
| |
clang modules, if -dwarf-ext-refs (DebugTypesExtRefs) is specified.
This reimplements r247369 in about a third of the amount of code.
Thanks to David Blaikie pointing this out in post-commit review!
llvm-svn: 247432
|
|
|
|
|
|
|
|
| |
defined in"
This reverts commit r247369 to facilitate reviewing of the following patch.
llvm-svn: 247431
|
|
|
|
|
|
| |
clang modules, if -dwarf-ext-refs (DebugTypesExtRefs) is specified.
llvm-svn: 247369
|
|
|
|
| |
llvm-svn: 247368
|
|
|
|
|
|
|
| |
The type of a member pointer is incomplete if it has no inheritance
model. This lets us reuse more general logic already embedded in clang.
llvm-svn: 247346
|
|
|
|
| |
llvm-svn: 247319
|
|
|
|
| |
llvm-svn: 247081
|
|
|
|
|
|
|
|
|
|
| |
When -fmodule-format is set to "obj", emit debug info for all types
declared in a module or referenced by a declaration into the module's
object file container.
This patch adds support for Objective-C types and methods.
llvm-svn: 247068
|
|
|
|
|
|
| |
them more than once. (NFC)
llvm-svn: 246231
|
|
|
|
|
|
|
|
|
|
|
| |
Usually debug info is created on the fly while during codegen.
With this API it becomes possible to create standalone debug info
for types that are not referenced by any code, such as emitting debug info
for a clang module or for implementing something like -gfull.
Because on-the-fly debug info generation may still insert retained types
on top of them, all RetainedTypes are uniqued in CGDebugInfo::finalize().
llvm-svn: 246210
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to enable the use of external type references in the debug info
(a.k.a. module debugging).
The driver expands -gmodules to "-g -fmodule-format=obj -dwarf-ext-refs"
and passes that to cc1. All this does at the moment is set a flag
codegenopts.
http://reviews.llvm.org/D11958
llvm-svn: 246192
|
|
|
|
|
|
|
|
| |
I stared at `false /*declaration*/` for quite some time before giving up
and checking the actual function to see what it meant. Replacing with
`/* isDefinition = */ false` to save myself effort later.
llvm-svn: 246095
|
|
|
|
|
|
|
|
|
|
| |
After r244870 flush() will only compare two null pointers and return,
doing nothing but wasting run time. The call is not required any more
as the stream and its SmallString are always in sync.
Thanks to David Blaikie for reviewing.
llvm-svn: 244928
|
|
|
|
|
|
| |
copied (rather than RVO'd) that would be broken, make it movable instead
llvm-svn: 244838
|
|
|
|
|
|
|
|
| |
Adjust to LLVM DIBuilder API changes in r243764, using
`createAutoVariable()` and `createParameterVariable()` in place of
`createLocalVariable()`. No real functionality change here.
llvm-svn: 243765
|
|
|
|
|
|
|
|
|
| |
Change `getOrCreateLimitedType()` to return a `DICompositeType` and
remove the casts from its callers. Inside, I've strengthened a `cast`
from `DICompositeTypeBase`, but the casts in the callers already prove
that this is safe. There should be no functionality change here.
llvm-svn: 243155
|
|
|
|
|
|
|
| |
Change `StaticDataMemberCache` to store references to `DIDerivedType`
directly, and remove now-unnecessary casts from the accessors.
llvm-svn: 243129
|
|
|
|
|
|
|
| |
standards. Remove several hilariously out-of-date and redundant comments
and move the non-redundant ones into the header file.
llvm-svn: 241733
|
|
|
|
|
|
|
|
|
|
| |
different function signatures. (Previously clang would emit all block
pointer types with the type of the first block pointer in the compile
unit.)
rdar://problem/21602473
llvm-svn: 241534
|
|
|
|
|
|
|
|
|
|
|
| |
(__block_literal_generic).
The arbitrary nature of the location confuses lldb and prevents type
uniquing.
rdar://problem/21602473
llvm-svn: 241511
|
|
|
|
|
|
|
|
|
|
| |
typedefs, and records"
Caused PR24008.
This reverts commit r241154.
llvm-svn: 241177
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
typedefs, and records
Function static variables, typedefs and records (class, struct or union) declared inside
a lexical scope were associated with the function as their parent scope, rather than the
lexical scope they are defined or declared in.
This fixes PR19238
Patch by: amjad.aboud@intel.com
Differential Revision: http://reviews.llvm.org/D9760
llvm-svn: 241154
|
|
|
|
| |
llvm-svn: 241088
|