[llvm-symbolizer] Make --relative-address work with DWARF contexts
Summary:
Previously the relative address flag only affected PDB debug info. Now
both DIContext implementations always expect to be passed virtual
addresses. llvm-symbolizer is now responsible for adding ImageBase to
module offsets when --relative-offset is passed.
Reviewers: zturner
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D12883
llvm-svn: 249784
diff --git a/llvm/test/tools/llvm-symbolizer/Inputs/coff-dwarf.cpp b/llvm/test/tools/llvm-symbolizer/Inputs/coff-dwarf.cpp
new file mode 100644
index 0000000..9741439
--- /dev/null
+++ b/llvm/test/tools/llvm-symbolizer/Inputs/coff-dwarf.cpp
@@ -0,0 +1,19 @@
+// To generate the corresponding EXE, run:
+// clang-cl -O2 -gdwarf -c coff-dwarf.cpp && lld-link -debug coff-dwarf.obj
+
+extern "C" int puts(const char *str);
+
+void __declspec(noinline) foo() {
+ puts("foo1");
+ puts("foo2");
+}
+
+// LLVM should inline this into main.
+static void bar() {
+ foo();
+}
+
+int main() {
+ bar();
+ return 0;
+}