Commit Graph

178 Commits

Author SHA1 Message Date
Jonas Devlieghere e22dca5286 [dsymutil] Escape HTML special characters in plist.
When printing string in the Plist, we weren't escaping the characters
which lead to invalid XML. This patch adds the escape logic to
StringExtras.

rdar://39785334

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@333565 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-30 17:47:11 +00:00
Jonas Devlieghere 2071b7a8b2 [Support] Add color cl category.
This commit adds a color category so tools can document this option and
enables it for dwarfdump and dsymuttil.

rdar://problem/40498996

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@333176 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-24 11:36:57 +00:00
Jonas Devlieghere 74157fc710 [DebugInfo] Use absolute addresses in location lists
Rather than relying on the user to do the address calculating in
DW_AT_location we should just dump the absolute address.

rdar://problem/38513870

Differential revision: https://reviews.llvm.org/D47152

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@332873 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-21 19:36:54 +00:00
Shiva Chen a8a13bc662 [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label.
In order to set breakpoints on labels and list source code around
labels, we need collect debug information for labels, i.e., label
name, the function label belong, line number in the file, and the
address label located. In order to keep these information in LLVM
IR and to allow backend to generate debug information correctly.
We create a new kind of metadata for labels, DILabel. The format
of DILabel is

!DILabel(scope: !1, name: "foo", file: !2, line: 3)

We hope to keep debug information as much as possible even the
code is optimized. So, we create a new kind of intrinsic for label
metadata to avoid the metadata is eliminated with basic block.
The intrinsic will keep existing if we keep it from optimized out.
The format of the intrinsic is

llvm.dbg.label(metadata !1)

It has only one argument, that is the DILabel metadata. The
intrinsic will follow the label immediately. Backend could get the
label metadata through the intrinsic's parameter.

We also create DIBuilder API for labels to be used by Frontend.
Frontend could use createLabel() to allocate DILabel objects, and use
insertLabel() to insert llvm.dbg.label intrinsic in LLVM IR.

Differential Revision: https://reviews.llvm.org/D45024

Patch by Hsiangkai Wang.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@331841 91177308-0d34-0410-b5e6-96231b3b80d8
2018-05-09 02:40:45 +00:00
Jonas Devlieghere d0a066beee [dsymutil] Don't try to load Swift ASTs as objects.
With the threading refactoring, loading of object files happens before
checking whether we're dealing with a swift AST. While that's not an
issue per se, it causes a warning to be printed:

  warning: /path/to/a.swiftmodule: The file was not recognized as a valid object file
  note: while processing /path/to/a.swiftmodule

This suppresses the warning by checking for a Swift AST before
attempting to load is as an object file.

rdar://39240444

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@329553 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-09 09:09:59 +00:00
Jonas Devlieghere 760af163b4 [dsymutil] Don't crash on empty CU
Add some additional checks so we don't crash on empty compile units.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@329537 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-08 17:35:17 +00:00
Douglas Yung 9b666b71a3 Another attempt to fix papertrail-warnings.test on Windows bots by making expected message less case sensitive.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@329008 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-02 20:05:05 +00:00
Nico Weber 7d1af99a86 Attempt to fix papertrail-warnings.test on Windows bots.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328971 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-02 13:45:39 +00:00
Jonas Devlieghere 67eb8fdbb0 [dsymutil] Upstream emitting of papertrail warnings.
When running dsymutil as part of your build system, it can be desirable
for warnings to be part of the end product, rather than just being
emitted to the output stream. This patch upstreams that functionality.

Differential revision: https://reviews.llvm.org/D44639

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328965 91177308-0d34-0410-b5e6-96231b3b80d8
2018-04-02 10:40:43 +00:00
Jonas Devlieghere a8b19e082c [dsymutil] Rename llvm-dsymutil -> dsymutil
Now that almost all functionality of Apple's dsymutil has been
upstreamed, the open source variant can be used as a drop in
replacement. Hence we feel it's no longer necessary to have the llvm
prefix.

Differential revision: https://reviews.llvm.org/D44527

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327790 91177308-0d34-0410-b5e6-96231b3b80d8
2018-03-18 11:38:41 +00:00
Jonas Devlieghere 21cda30c18 [dsymutil] Print architecture in warning
Make the architecture part of the warning in the DebugMapParser. This
makes things consistent with the Apple's internal version of dsymutil.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327485 91177308-0d34-0410-b5e6-96231b3b80d8
2018-03-14 09:34:54 +00:00
Jonas Devlieghere cc46e391a2 [dsymutil] Unify error handling outside DwarfLinker.
This is a follow-up to r327137 where we unified error handling for the
DwarfLinker. This replaces calls to errs() and outs() with the
appropriate ostream wrapper everywhere in dsymutil.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327411 91177308-0d34-0410-b5e6-96231b3b80d8
2018-03-13 15:47:38 +00:00
Jonas Devlieghere b936520052 [dsymutil] Perform analyzeContextInfo and CloneDIEs in parallel
This patch makes dsymutil perform analyzeContextInfo and CloneDIEs in
parallel. For the same object file, there is a dependency between the
two. However, we can do analyzeContextInfo for the next object file
while cloning DIEs for the current. This is exactly the approach taken
in this patch.

For WebCore, this leads to a performance improvement of 29% and for
clang we see similar results with at 32% improvement.

A big thanks to Pete Cooper who came up with the original idea and
the PoC.

Differential revision: https://reviews.llvm.org/D43945

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327399 91177308-0d34-0410-b5e6-96231b3b80d8
2018-03-13 14:27:15 +00:00
Jonas Devlieghere beee6ae8b9 [dsymutil] Unify error handling and add color
We improved the handling of errors and warnings in dwarfdump's verifier
in rL314498. This patch does the same thing for dsymutil.

Differential revision: https://reviews.llvm.org/D44052

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@327137 91177308-0d34-0410-b5e6-96231b3b80d8
2018-03-09 15:22:42 +00:00
Jonas Devlieghere e5edcce9f5 [dsymutil] Embed toolchain in dSYM bundle
Allow us to embed the (Xcode) toolchain in the dSYM bundle's property
list.

Differential revision: https://reviews.llvm.org/D44151

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@326994 91177308-0d34-0410-b5e6-96231b3b80d8
2018-03-08 10:39:12 +00:00
Jonas Devlieghere 3cfa28f02f [dwarfdump] Only print CU relative offset in verbose mode
Instead of only printing the CU-relative offset in non-verbose mode, it
makes more sense to only printed the resolved address. In verbose mode
we still print both.

Differential revision: https://reviews.llvm.org/D44148

rdar://33525475

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@326903 91177308-0d34-0410-b5e6-96231b3b80d8
2018-03-07 16:28:53 +00:00
Jonas Devlieghere f521abc300 [dsymutil] Skip DW_AT_sibling attributes.
Following DW_AT_sibling attributes completely defeats the pruning pass.
Although clang doesn't generate the DW_AT_sibling attribute we should
still handle it correctly.

Differential revision: https://reviews.llvm.org/D43439

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@326231 91177308-0d34-0410-b5e6-96231b3b80d8
2018-02-27 19:24:36 +00:00
Jonas Devlieghere c4c59c309e [dsymutil][test] Add PowerPC test
Add test that verifies that we don't follow DWARF values with a
reference form class, such as DW_AT_sibling.

Since clang doesn't generate the latter attribute, we added a PowerPC
test generated on an old PowerBook G4. (Thanks Adrian!)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@326183 91177308-0d34-0410-b5e6-96231b3b80d8
2018-02-27 10:28:43 +00:00
Scott Linder 5e4b515c4b [DebugInfo] Support DWARF v5 source code embedding extension
In DWARF v5 the Line Number Program Header is extensible, allowing values with
new content types. In this extension a content type is added,
DW_LNCT_LLVM_source, which contains the embedded source code of the file.

Add new optional attribute for !DIFile IR metadata called source which contains
source text. Use this to output the source to the DWARF line table of code
objects. Analogously extend METADATA_FILE in Bitcode and .file directive in ASM
to support optional source.

Teach llvm-dwarfdump and llvm-objdump about the new values. Update the output
format of llvm-dwarfdump to make room for the new attribute on file_names
entries, and support embedded sources for the -source option in llvm-objdump.

Differential Revision: https://reviews.llvm.org/D42765



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@325970 91177308-0d34-0410-b5e6-96231b3b80d8
2018-02-23 23:01:06 +00:00
Jonas Devlieghere 35c4cd1eb5 [dsymutil] Correctly handle DW_TAG_label
This patch contains logic for handling DW_TAG_label that's present in
darwin's dsymutil implementation, but not yet upstream.

Differential revision: https://reviews.llvm.org/D43438

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@325600 91177308-0d34-0410-b5e6-96231b3b80d8
2018-02-20 17:34:29 +00:00
Jonas Devlieghere 8b9c4c3e78 [dwarfdump] Fix spurious verification errors for DW_AT_location attributes
Verifying any DWARF file that is optimized and contains at least one tag
with a DW_AT_location with a location list offset as a
DW_AT_form_dataXXX results in dwarfdump spuriously claiming that the
location list is invalid.

Differential revision: https://reviews.llvm.org/D40199

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@325430 91177308-0d34-0410-b5e6-96231b3b80d8
2018-02-17 13:06:37 +00:00
Douglas Yung cc227f84d7 Change "UNSUPPORTED: windows" to be "UNSUPPORTED: system-windows" so that test is actually skipped on Windows.
Reviewed by Paul Robinson



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@324632 91177308-0d34-0410-b5e6-96231b3b80d8
2018-02-08 18:45:16 +00:00
Jonas Devlieghere fd8aee0ade [test][dsymutil] Fix tests for Windows bots.
The UNSUPPORTED directive was not honored by the bot, presumably because
of the FIXME above it. This moves the comment down and removes the
remaining update check from basic-linking-x86.test.

This should un-break: llvm-clang-x86_64-expensive-checks-win/builds/7798/

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@324598 91177308-0d34-0410-b5e6-96231b3b80d8
2018-02-08 11:58:16 +00:00
Jonas Devlieghere 61693460a1 Re-land [dsymutil] Upstream update feature
This commit attempts to re-land the r324480 which was reverted in
r324493 because it broke the Windows bots. For now I disabled the two
update tests on Windows until I'm able to debug this.

Differential revision: https://reviews.llvm.org/D42880

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@324592 91177308-0d34-0410-b5e6-96231b3b80d8
2018-02-08 10:48:54 +00:00
Jonas Devlieghere 6bac809af9 Revert dsymutil -update commits
Revert "[dsymutil][test] Check the updated dSYM instead of companion file."
Revert "[dsymutil] Upstream update feature."

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@324493 91177308-0d34-0410-b5e6-96231b3b80d8
2018-02-07 17:35:27 +00:00
Jonas Devlieghere 3d6da040af [dsymutil][test] Check the updated dSYM instead of companion file.
This patch has llvm-dwarfdump check the whole dSYM, rather than the
hard-coded path to the Mach-O companion file. This might be what's
causing the Windows bot to fail.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@324483 91177308-0d34-0410-b5e6-96231b3b80d8
2018-02-07 15:18:21 +00:00
Jonas Devlieghere 87dba15eee [dsymutil] Upstream update feature.
Now that dsymutil can generate accelerator tables, we can upstream the
update logic that, as the name implies, updates the accelerator tables
in an existing dSYM bundle. In combination with `-minimize` this can be
used to remove redundant .debug_(inlines|pubtypes|pubnames).

Differential revision: https://reviews.llvm.org/D42880

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@324480 91177308-0d34-0410-b5e6-96231b3b80d8
2018-02-07 13:51:29 +00:00
Paul Robinson c849b2e28e [DWARF] Regularize dumping strings from line tables.
The major visible difference here is that in line-table dumps,
directory and file names are wrapped in double-quotes; previously,
directory names got single quotes and file names were not quoted at
all.

The improvement in this patch is that when a DWARF v5 line table
header has indirect strings, in a verbose dump these will all have
their section[offset] printed as well as the name itself.  This
matches the format used for dumping strings in the .debug_info
section.

Differential Revision: https://reviews.llvm.org/D42802

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@324270 91177308-0d34-0410-b5e6-96231b3b80d8
2018-02-05 20:43:15 +00:00
Jonas Devlieghere 2fa8e76d04 [dsymutil] Enable -minimize feature.
Passing -minimize to dsymutil prevents the emission of .debug_inlines,
.debug_pubnames, and .debug_pubtypes in favor of the Apple accelerator
tables.

The actual check in the DWARF linker was added in r323655. This patch
simply enables it.

Differential revision: https://reviews.llvm.org/D42688

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@323812 91177308-0d34-0410-b5e6-96231b3b80d8
2018-01-30 19:54:16 +00:00
Jonas Devlieghere a9aab590d5 [dsymutil] Generate Apple accelerator tables
This patch adds support for generating accelerator tables in dsymutil.
This feature was already present in our internal repository but not yet
upstreamed because it requires changes to the Apple accelerator table
implementation.

Differential revision: https://reviews.llvm.org/D42501

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@323655 91177308-0d34-0410-b5e6-96231b3b80d8
2018-01-29 14:52:50 +00:00
Jonas Devlieghere 231176041f [DebugInfo] Unify dumping of address ranges
Summary:
This patch unifies the printing of address ranges as [0x0, 0x1).

rdar://34822059

Reviewers: aprantl, dblaikie

Subscribers: mehdi_amini, llvm-commits

Differential Revision: https://reviews.llvm.org/D42056

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@322543 91177308-0d34-0410-b5e6-96231b3b80d8
2018-01-16 11:17:57 +00:00
Jonas Devlieghere 99c0370531 [dsymutil][test] Fix failing test when no lipo binary available
The invocation without -no-output would try to lipo the different debug
objects together. This wouldn't work on platforms that don't provide
that utility.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320605 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-13 18:35:39 +00:00
Jonas Devlieghere 4cac1c471e [dsymutil] Re-enable threading
Threading was disabled in r317263 because it broke a test in combination
with `-DLLVM_ENABLE_THREADS=OFF`. This was because a ThreadPool warning
was piped to llvm-dwarfdump which was expecting to read an object from
stdin.

This patch re-enables threading and fixes the offending test.
Unfortunately this required more than just moving the ThreadPool out of
the for loop because of the TempFile refactoring that took place in the
meantime.

Differential revision: https://reviews.llvm.org/D41180

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320601 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-13 18:03:04 +00:00
Jonas Devlieghere e75cd3860c [dsymutil] Accept line tables up to DWARFv5.
This patch removes the hard-coded check for DWARFv2 line tables. Now
dsymutil accepts line tables for DWARF versions 2 to 5 (inclusive).

Differential revision: https://reviews.llvm.org/D41084

rdar://35968319

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320469 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-12 11:32:21 +00:00
Jonas Devlieghere 5eb1a17437 [dsymutil] Add -verify option to run DWARF verifier after linking.
This patch adds support for running the DWARF verifier on the linked
debug info files. If the -verify options is specified and verification
fails, dsymutil exists with abort with non-zero exit code. This behavior
is *not* enabled by default.

Differential revision: https://reviews.llvm.org/D40777

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@320033 91177308-0d34-0410-b5e6-96231b3b80d8
2017-12-07 11:17:19 +00:00
Jonas Devlieghere bdc984ca3d [dsymutil] Upstream getBundleInfo implementation
This patch implements `getBundleInfo`, which uses CoreFoundation to
obtain information about the CFBundle. This information is needed to
populate the Plist in the dSYM bundle.

This change only applies to darwin and is an NFC as far as other
platforms are concerned.

Differential revision: https://reviews.llvm.org/D40244

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@319416 91177308-0d34-0410-b5e6-96231b3b80d8
2017-11-30 10:25:28 +00:00
Jonas Devlieghere 8856af92ca [llvm-dwarfdump] Display DW_AT_high_pc as absolute value
DWARF4 relative DW_AT_high_pc values are now displayed as absolute
addresses. The relative value is only shown when explicitly dumping the
forms, i.e. in show-form or verbose mode.

```
DW_AT_low_pc	(0x0000000000000049)
DW_AT_high_pc	(0x00000019)
```

becomes

```
DW_AT_low_pc	(0x0000000000000049)
DW_AT_high_pc	(0x0000000000000062)
```

Differential revision: https://reviews.llvm.org/D40317

rdar://35416943

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@319044 91177308-0d34-0410-b5e6-96231b3b80d8
2017-11-27 16:40:46 +00:00
Jonas Devlieghere 2f759d471a [dsymutil][doc] Improve wording in manpage and rename file.
- Improve wording
 - Rename llvm-dsymutil to dsymutil
 - Name -arch=<arch> argument

Differential revision: https://reviews.llvm.org/D39561

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@317226 91177308-0d34-0410-b5e6-96231b3b80d8
2017-11-02 18:44:54 +00:00
Jonas Devlieghere ef7a206359 [dsymutil][NFC} Rename thread related command line options
This makes the command line options consistent with llvm-cov and
llvm-profdata, which both use `-num-threads` and `-j`.

This also addresses the conflict reported after landing D39355.

Differential revision: https://reviews.llvm.org/D39496

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@317104 91177308-0d34-0410-b5e6-96231b3b80d8
2017-11-01 17:15:29 +00:00
Jonas Devlieghere 1ed02bf67f [test] Fix dsymutil/cmdline.test
This fixes dsymutil/cmdline.test on platforms where the dsymutil binary
has an extension.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@317001 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-31 14:19:02 +00:00
Jonas Devlieghere ac330efcdf [dsymutil] Implement the --threads option
This patch adds the --threads option to dsymutil to process
architectures in parallel. The feature is already present in the version
distributed with Xcode, but was not yet upstreamed.

This is NFC as far as the linking behavior is concerned. As threads are
used automatically, the current tests cover the change in
implementation.

Differential revision: https://reviews.llvm.org/D39355

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@316999 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-31 13:54:15 +00:00
Jonas Devlieghere f16734c62c Re-land "[dsymutil] Timestmap verification for __swift_ast"
This patch adds timestamp verification for swiftmodule files. A new flag
is provided to allows us to disable this check in order to allow testing
of this feature.

Differential revision: https://reviews.llvm.org/D38686

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@315684 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-13 14:41:23 +00:00
Jonas Devlieghere 35e0e29240 Revert "[dsymutil] Timestmap verification for __swift_ast"
This reverts commit r315456.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@315458 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-11 13:51:30 +00:00
Jonas Devlieghere d486e90488 [dsymutil] Timestmap verification for __swift_ast
This patch adds timestamp verification for swiftmodule files.

 - A new flag is provided to allows us to continue testing of the code
   for embedding the__swift_ast. (git doesn't maintain timestamps)
 - Adds a new test for fat (arm) binaries.

Differential revision: https://reviews.llvm.org/D38686

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@315456 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-11 13:34:52 +00:00
Jonas Devlieghere 771d209701 Re-land "[llvm-dwarfdump] Print type names in DW_AT_type DIEs"
This patch adds printing for DW_AT_type DIEs like it is already the case
for DW_AT_specification DIEs. This is a rather naive approach and only a
start. We should have pretty printers for different languages.

Recommit after being reverted in r315299.

Differential revision: https://reviews.llvm.org/D36993

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@315316 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-10 14:15:25 +00:00
Jonas Devlieghere 269a7003bb Revert "[llvm-dwarfdump] Print type names in DW_AT_type DIEs"
This reverts commit r315297.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@315299 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-10 11:49:56 +00:00
Jonas Devlieghere 098eeb5ecc [llvm-dwarfdump] Print type names in DW_AT_type DIEs
This patch adds printing for DW_AT_type DIEs like it is already the case
for DW_AT_specification DIEs. This is a rather naive approach and only a
start. We should have pretty printers for different languages.

Differential revision: https://reviews.llvm.org/D36993

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@315297 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-10 11:24:41 +00:00
Francis Ricci 87b0f4a33c [dsymutil] Emit valid debug locations when no symbol flags are set
Summary:
swiftc emits symbols without flags set, which led dsymutil to ignore
them when searching for global symbols, causing dwarf location data
to be omitted. Xcode's dsymutil handles this case correctly, and emits
valid location data. Add this functionality to llvm-dsymutil by
allowing parsing of symbols with no flags set.

Reviewers: aprantl, friss, JDevlieghere

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D38587

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@315218 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-09 17:27:47 +00:00
Francis Ricci 637eed4139 Revert "[dsymutil] Emit valid debug locations when no symbol flags are set"
This reverts commit r315082, which fails on non-darwin buildbots.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@315088 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-06 18:19:52 +00:00
Francis Ricci 066f09ec59 [dsymutil] Emit valid debug locations when no symbol flags are set
Summary:
swiftc emits symbols without flags set, which led dsymutil to ignore
them when searching for global symbols, causing dwarf location data
to be omitted. Xcode's dsymutil handles this case correctly, and emits
valid location data. Add this functionality to llvm-dsymutil by
allowing parsing of symbols with no flags set.

Reviewers: aprantl, friss, JDevlieghere

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D38587

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@315082 91177308-0d34-0410-b5e6-96231b3b80d8
2017-10-06 17:43:37 +00:00