llvm/unittests
Zachary Turner e87e5c313d [PDB] Fix linking of function symbols and local variables.
The compiler outputs PROC32_ID symbols into the object files
for functions, and these symbols have an embedded type index
which, when copied to the PDB, refer to the IPI stream.  However,
the symbols themselves are also converted into regular symbols
(e.g. S_GPROC32_ID -> S_GPROC32), and type indices in the regular
symbol records refer to the TPI stream.  So this patch applies
two fixes to function records.
  1. It converts ID symbols to the proper non-ID record type.
  2. After remapping the type index from the object file's index
     space to the PDB file/IPI stream's index space, it then
     remaps that index to the TPI stream's index space by.

Besides functions, during the remapping process we were also
discarding symbol record types which we did not recognize.
In particular, we were discarding S_BPREL32 records, which is
what MSVC uses to describe local variables on the stack.  So
this patch fixes that as well by copying them to the PDB.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@310394 91177308-0d34-0410-b5e6-96231b3b80d8
2017-08-08 18:34:44 +00:00
..
ADT [ADT] Fix another "oops" spotted by eddyb and reported in IRC. 2017-07-10 05:41:14 +00:00
Analysis Avoid comparison between signed and unsigned in SCEVExitLimitForget tests 2017-08-04 06:03:51 +00:00
AsmParser Remove every uses of getGlobalContext() in LLVM (but the C API) 2016-04-14 21:59:01 +00:00
BinaryFormat Revert "Revert "Revert "Revert "Switch external cvtres.exe for llvm's own resource library."""" 2017-07-08 03:06:10 +00:00
Bitcode Re-sort #include lines for unittests. This uses a slightly modified 2017-06-06 11:06:56 +00:00
CodeGen [GlobalISel] Make GlobalISel a non-optional library. 2017-08-03 21:52:25 +00:00
DebugInfo [PDB] Fix linking of function symbols and local variables. 2017-08-08 18:34:44 +00:00
ExecutionEngine Delete Default and JITDefault code models 2017-08-03 02:16:21 +00:00
IR [unittest] Remove TODO comment which caused concern 2017-08-03 04:17:58 +00:00
LineEditor Remove autoconf support 2016-01-26 21:29:08 +00:00
Linker Re-sort #include lines for unittests. This uses a slightly modified 2017-06-06 11:06:56 +00:00
MC Move Object format code to lib/BinaryFormat. 2017-06-07 03:48:56 +00:00
MI Delete Default and JITDefault code models 2017-08-03 02:16:21 +00:00
Object Fix unittest for buildbot with mips host (32bit big endian) from r295174 2017-02-15 16:03:22 +00:00
ObjectYAML Move ObjectYAML code to a new library. 2016-03-01 19:15:06 +00:00
Option [GSoC] Flag value completion for clang 2017-06-20 16:31:31 +00:00
ProfileData [Coverage] Add an API to retrive all instantiations of a function (NFC) 2017-08-02 23:35:25 +00:00
Support [Support] Remove getPathFromOpenFD, it was unused 2017-08-04 17:43:49 +00:00
Target Delete Default and JITDefault code models 2017-08-03 02:16:21 +00:00
Transforms [Cloning] Move distinct GlobalVariable debug info metadata in CloneModule 2017-08-03 09:23:03 +00:00
XRay [XRay][graph] Disambiguate name of type from member name 2017-02-10 06:59:25 +00:00
CMakeLists.txt Move Object format code to lib/BinaryFormat. 2017-06-07 03:48:56 +00:00