Go to file
George Rimar 64091d5626 [ELF] - Also use DW_AT_linkage_name when gathering information about variables for error messages.
Currently, when LLD do a lookup for variables location, it uses DW_AT_name attribute.
That is not always enough.

Imagine code:

namespace A {
  int bar = 0;
}

namespace Z {
  int bar = 1;
}

int hoho;
In this case there are 3 variables and their debug attributes are following:

A::bar has: DW_AT_name [DW_FORM_string] ("bar") DW_AT_linkage_name [DW_FORM_strp] ( .debug_str[0x00000006] = "_ZN1A3barE")
Z::bar has: DW_AT_name [DW_FORM_string] ("bar") DW_AT_linkage_name [DW_FORM_strp] ( .debug_str[0x0000003f] = "_ZN1Z3barE")
hoho has: DW_AT_name [DW_FORM_strp] ( .debug_str[0x0000004a] = "hoho") and has NO DW_AT_linkage_name attribute. Because it would be
the same as DW_AT_name and DWARF producers avoids emiting excessive data.

Hence LLD should also use DW_AT_linkage_name when it is available.
(currently, LLD fails to report location correctly because thinks that A::bar and Z::bar are the same things)

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

llvm-svn: 333880
2018-06-04 10:28:45 +00:00
clang Reland "Move #include manipulation code to new lib/Tooling/Inclusions." 2018-06-04 09:04:12 +00:00
clang-tools-extra Reland "[clangd] Adapt file migration in r332720" 2018-06-04 09:04:28 +00:00
compiler-rt [TSan] FreeBSD / intercept thr_exit 2018-06-04 06:02:38 +00:00
debuginfo-tests [Darwin] Specify DWARF 2/4 when running apple accelerator tests. 2018-02-26 20:56:45 +00:00
libclc Add initial support for half precision builtins 2018-05-17 22:55:30 +00:00
libcxx Mark __c11_atomic_load as const 2018-06-01 18:02:53 +00:00
libcxxabi private_typeinfo: limit is_dst_type_derived_from_static_type optimization 2018-05-18 20:51:38 +00:00
libunwind [OR1K] Add the EPCR special-purpose register to register state. 2018-05-16 19:09:48 +00:00
lld [ELF] - Also use DW_AT_linkage_name when gathering information about variables for error messages. 2018-06-04 10:28:45 +00:00
lldb AppleDWARFIndex: Get function method-ness directly from debug info 2018-06-04 09:05:27 +00:00
llgo irgen: Create functions instead of global variables for builtin hash and equal algorithms. 2017-06-04 22:11:28 +00:00
llvm [AArch64] Audit on rL333634 to fix FP16 Disasm BitPatterns 2018-06-04 09:41:32 +00:00
openmp [OMPT] Rename ompt_wait_id to omp_wait_id 2018-05-28 08:16:08 +00:00
parallel-libs [Axccel] Remove -Wno-missing-braces in build 2016-12-19 21:34:07 +00:00
polly partitionSetParts from C to C++ interface. 2018-06-01 19:12:00 +00:00
README.md Add an svn project to contain the files that appear at the root of the 2017-10-19 21:09:49 +00:00

README.md

Low Level Virtual Machine (LLVM)

This directory and its subdirectories contain source code for LLVM, a toolkit for the construction of highly optimized compilers, optimizers, and runtime environments.