1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 04:02:41 +01:00
llvm-mirror/lib/DebugInfo/CodeView
Reid Kleckner 1168067dff [CodeView] Lower __restrict and other pointer qualifiers correctly
Qualifiers on a pointer or reference type may apply to either the
pointee or the pointer itself. Consider 'const char *' and 'char *
const'. In the first example, the pointee data may not be modified
without casts, and in the second example, the pointer may not be updated
to point to new data.

In the general case, qualifiers are applied to types with LF_MODIFIER
records, which support the usual const and volatile qualifiers as well
as the __unaligned extension qualifier.

However, LF_POINTER records, which are used for pointers, references,
and member pointers, have flags for qualifiers applying to the
*pointer*. In fact, this is the only way to represent the restrict
qualifier, which can only apply to pointers, and cannot qualify regular
data types.

This patch causes LLVM to correctly fold 'const' and 'volatile' pointer
qualifiers into the pointer record, as well as adding support for
'__restrict' qualifiers in the same place.

Based on a patch from Aaron Smith

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

llvm-svn: 326260
2018-02-27 22:08:15 +00:00
..
AppendingTypeTableBuilder.cpp Split TypeTableBuilder into two classes. 2017-11-30 18:39:50 +00:00
CMakeLists.txt [CodeView] Teach clang to emit the .debug$H COFF section. 2017-12-13 22:33:58 +00:00
CodeViewError.cpp
CodeViewRecordIO.cpp [codeview] Fix YAML for LF_TYPESERVER2 by hoisting PDB_UniqueId 2017-07-17 23:59:44 +00:00
ContinuationRecordBuilder.cpp Fix non assert build warnings. 2017-11-28 18:50:08 +00:00
CVSymbolVisitor.cpp Remove redundant includes from lib/DebugInfo. 2017-12-13 21:30:49 +00:00
CVTypeVisitor.cpp Remove redundant includes from lib/DebugInfo. 2017-12-13 21:30:49 +00:00
DebugChecksumsSubsection.cpp
DebugCrossExSubsection.cpp
DebugCrossImpSubsection.cpp
DebugFrameDataSubsection.cpp
DebugInlineeLinesSubsection.cpp
DebugLinesSubsection.cpp
DebugStringTableSubsection.cpp
DebugSubsection.cpp
DebugSubsectionRecord.cpp
DebugSubsectionVisitor.cpp
DebugSymbolRVASubsection.cpp
DebugSymbolsSubsection.cpp
EnumTables.cpp CodeView: Provide a .def file with the register ids 2017-10-03 18:27:22 +00:00
Formatters.cpp [codeview] Fix YAML for LF_TYPESERVER2 by hoisting PDB_UniqueId 2017-07-17 23:59:44 +00:00
GlobalTypeTableBuilder.cpp [CodeView] Micro-optimizations to speed up type merging. 2018-01-30 17:12:04 +00:00
LazyRandomTypeCollection.cpp Teach llvm-pdbutil to dump types from object files. 2017-12-05 23:58:18 +00:00
Line.cpp
LLVMBuild.txt
MergingTypeTableBuilder.cpp [CodeView] Add support for content hashing CodeView type records. 2017-12-05 23:08:58 +00:00
RecordName.cpp [CodeView] Lower __restrict and other pointer qualifiers correctly 2018-02-27 22:08:15 +00:00
RecordSerialization.cpp [PDB] Improve GSI hash table dumping for publics and globals 2017-07-26 00:40:36 +00:00
SimpleTypeSerializer.cpp [CodeView] Refactor / Rewrite TypeSerializer and TypeTableBuilder. 2017-11-28 18:33:17 +00:00
StringsAndChecksums.cpp [llvm-pdbutil] Support dumping CodeView from object files. 2017-09-01 20:06:56 +00:00
SymbolDumper.cpp Remove redundant includes from lib/DebugInfo. 2017-12-13 21:30:49 +00:00
SymbolRecordMapping.cpp
SymbolSerializer.cpp [PDB] Serialize records into a stack-allocated buffer. 2017-08-21 20:17:19 +00:00
TypeDumpVisitor.cpp [CodeView] Lower __restrict and other pointer qualifiers correctly 2018-02-27 22:08:15 +00:00
TypeHashing.cpp [COFF] Teach LLD to use the COFF .debug$H section. 2017-12-14 18:07:04 +00:00
TypeIndex.cpp
TypeIndexDiscovery.cpp [DebugInfo] Fix register variables not showing up in pdb. 2017-12-07 22:51:16 +00:00
TypeRecordMapping.cpp [CodeView] Refactor / Rewrite TypeSerializer and TypeTableBuilder. 2017-11-28 18:33:17 +00:00
TypeStreamMerger.cpp [CodeView] Micro-optimizations to speed up type merging. 2018-01-30 17:12:04 +00:00
TypeTableCollection.cpp Remove redundant includes from lib/DebugInfo. 2017-12-13 21:30:49 +00:00