Update prebuilt Clang to match Android kernel.
Bug: 132428451
Change-Id: I8f6e2cb23f381fc0c02ddea99b867e58e925e5be
diff --git a/linux-x64/clang/include/llvm/ObjectYAML/COFFYAML.h b/linux-x64/clang/include/llvm/ObjectYAML/COFFYAML.h
index 78f021f..eec5af9 100644
--- a/linux-x64/clang/include/llvm/ObjectYAML/COFFYAML.h
+++ b/linux-x64/clang/include/llvm/ObjectYAML/COFFYAML.h
@@ -1,9 +1,8 @@
//===- COFFYAML.h - COFF YAMLIO implementation ------------------*- C++ -*-===//
//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
//
@@ -58,7 +57,13 @@
struct Relocation {
uint32_t VirtualAddress;
uint16_t Type;
+
+ // Normally a Relocation can refer to the symbol via its name.
+ // It can also use a direct symbol table index instead (with no name
+ // specified), allowing disambiguating between multiple symbols with the
+ // same name or crafting intentionally broken files for testing.
StringRef SymbolName;
+ Optional<uint32_t> SymbolTableIndex;
};
struct Section {
diff --git a/linux-x64/clang/include/llvm/ObjectYAML/CodeViewYAMLDebugSections.h b/linux-x64/clang/include/llvm/ObjectYAML/CodeViewYAMLDebugSections.h
index d620008..9cbacb8 100644
--- a/linux-x64/clang/include/llvm/ObjectYAML/CodeViewYAMLDebugSections.h
+++ b/linux-x64/clang/include/llvm/ObjectYAML/CodeViewYAMLDebugSections.h
@@ -1,9 +1,8 @@
//=- CodeViewYAMLDebugSections.h - CodeView YAMLIO debug sections -*- C++ -*-=//
//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
//
diff --git a/linux-x64/clang/include/llvm/ObjectYAML/CodeViewYAMLSymbols.h b/linux-x64/clang/include/llvm/ObjectYAML/CodeViewYAMLSymbols.h
index 791193c..7c05c9e 100644
--- a/linux-x64/clang/include/llvm/ObjectYAML/CodeViewYAMLSymbols.h
+++ b/linux-x64/clang/include/llvm/ObjectYAML/CodeViewYAMLSymbols.h
@@ -1,9 +1,8 @@
//===- CodeViewYAMLSymbols.h - CodeView YAMLIO Symbol implementation ------===//
//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
//
diff --git a/linux-x64/clang/include/llvm/ObjectYAML/CodeViewYAMLTypeHashing.h b/linux-x64/clang/include/llvm/ObjectYAML/CodeViewYAMLTypeHashing.h
index 344966f..d6cec8d 100644
--- a/linux-x64/clang/include/llvm/ObjectYAML/CodeViewYAMLTypeHashing.h
+++ b/linux-x64/clang/include/llvm/ObjectYAML/CodeViewYAMLTypeHashing.h
@@ -1,9 +1,8 @@
//==- CodeViewYAMLTypeHashing.h - CodeView YAMLIO Type hashing ----*- C++-*-==//
//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
//
diff --git a/linux-x64/clang/include/llvm/ObjectYAML/CodeViewYAMLTypes.h b/linux-x64/clang/include/llvm/ObjectYAML/CodeViewYAMLTypes.h
index 1b1306d..04b5e0b 100644
--- a/linux-x64/clang/include/llvm/ObjectYAML/CodeViewYAMLTypes.h
+++ b/linux-x64/clang/include/llvm/ObjectYAML/CodeViewYAMLTypes.h
@@ -1,9 +1,8 @@
//==- CodeViewYAMLTypes.h - CodeView YAMLIO Type implementation --*- C++ -*-==//
//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
//
diff --git a/linux-x64/clang/include/llvm/ObjectYAML/DWARFEmitter.h b/linux-x64/clang/include/llvm/ObjectYAML/DWARFEmitter.h
index ce32274..2ccc876 100644
--- a/linux-x64/clang/include/llvm/ObjectYAML/DWARFEmitter.h
+++ b/linux-x64/clang/include/llvm/ObjectYAML/DWARFEmitter.h
@@ -1,9 +1,8 @@
//===--- DWARFEmitter.h - ---------------------------------------*- C++ -*-===//
//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
/// \file
diff --git a/linux-x64/clang/include/llvm/ObjectYAML/DWARFYAML.h b/linux-x64/clang/include/llvm/ObjectYAML/DWARFYAML.h
index 705c887..78d736c 100644
--- a/linux-x64/clang/include/llvm/ObjectYAML/DWARFYAML.h
+++ b/linux-x64/clang/include/llvm/ObjectYAML/DWARFYAML.h
@@ -1,9 +1,8 @@
//===- DWARFYAML.h - DWARF YAMLIO implementation ----------------*- C++ -*-===//
//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
///
diff --git a/linux-x64/clang/include/llvm/ObjectYAML/ELFYAML.h b/linux-x64/clang/include/llvm/ObjectYAML/ELFYAML.h
index 92081f0..e194e59 100644
--- a/linux-x64/clang/include/llvm/ObjectYAML/ELFYAML.h
+++ b/linux-x64/clang/include/llvm/ObjectYAML/ELFYAML.h
@@ -1,9 +1,8 @@
//===- ELFYAML.h - ELF YAMLIO implementation --------------------*- C++ -*-===//
//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
///
@@ -44,6 +43,8 @@
LLVM_YAML_STRONG_TYPEDEF(uint8_t, ELF_ELFOSABI)
// Just use 64, since it can hold 32-bit values too.
LLVM_YAML_STRONG_TYPEDEF(uint64_t, ELF_EF)
+// Just use 64, since it can hold 32-bit values too.
+LLVM_YAML_STRONG_TYPEDEF(uint64_t, ELF_DYNTAG)
LLVM_YAML_STRONG_TYPEDEF(uint32_t, ELF_PF)
LLVM_YAML_STRONG_TYPEDEF(uint32_t, ELF_SHT)
LLVM_YAML_STRONG_TYPEDEF(uint32_t, ELF_REL)
@@ -68,6 +69,7 @@
ELF_ELFCLASS Class;
ELF_ELFDATA Data;
ELF_ELFOSABI OSABI;
+ llvm::yaml::Hex8 ABIVersion;
ELF_ET Type;
ELF_EM Machine;
ELF_EF Flags;
@@ -107,8 +109,14 @@
StringRef sectionNameOrType;
};
+struct DynamicEntry {
+ ELF_DYNTAG Tag;
+ llvm::yaml::Hex64 Val;
+};
+
struct Section {
enum class SectionKind {
+ Dynamic,
Group,
RawContent,
Relocation,
@@ -121,13 +129,23 @@
ELF_SHF Flags;
llvm::yaml::Hex64 Address;
StringRef Link;
- StringRef Info;
llvm::yaml::Hex64 AddressAlign;
Optional<llvm::yaml::Hex64> EntSize;
Section(SectionKind Kind) : Kind(Kind) {}
virtual ~Section();
};
+
+struct DynamicSection : Section {
+ std::vector<DynamicEntry> Entries;
+
+ DynamicSection() : Section(SectionKind::Dynamic) {}
+
+ static bool classof(const Section *S) {
+ return S->Kind == SectionKind::Dynamic;
+ }
+};
+
struct RawContentSection : Section {
yaml::BinaryRef Content;
llvm::yaml::Hex64 Size;
@@ -153,6 +171,7 @@
// Members of a group contain a flag and a list of section indices
// that are part of the group.
std::vector<SectionOrType> Members;
+ StringRef Signature; /* Info */
Group() : Section(SectionKind::Group) {}
@@ -170,6 +189,7 @@
struct RelocationSection : Section {
std::vector<Relocation> Relocations;
+ StringRef RelocatableSec; /* Info */
RelocationSection() : Section(SectionKind::Relocation) {}
@@ -214,6 +234,7 @@
} // end namespace ELFYAML
} // end namespace llvm
+LLVM_YAML_IS_SEQUENCE_VECTOR(llvm::ELFYAML::DynamicEntry)
LLVM_YAML_IS_SEQUENCE_VECTOR(llvm::ELFYAML::ProgramHeader)
LLVM_YAML_IS_SEQUENCE_VECTOR(std::unique_ptr<llvm::ELFYAML::Section>)
LLVM_YAML_IS_SEQUENCE_VECTOR(llvm::ELFYAML::Symbol)
@@ -297,6 +318,11 @@
};
template <>
+struct ScalarEnumerationTraits<ELFYAML::ELF_DYNTAG> {
+ static void enumeration(IO &IO, ELFYAML::ELF_DYNTAG &Value);
+};
+
+template <>
struct ScalarEnumerationTraits<ELFYAML::ELF_RSS> {
static void enumeration(IO &IO, ELFYAML::ELF_RSS &Value);
};
@@ -351,6 +377,10 @@
static void mapping(IO &IO, ELFYAML::LocalGlobalWeakSymbols &Symbols);
};
+template <> struct MappingTraits<ELFYAML::DynamicEntry> {
+ static void mapping(IO &IO, ELFYAML::DynamicEntry &Rel);
+};
+
template <> struct MappingTraits<ELFYAML::Relocation> {
static void mapping(IO &IO, ELFYAML::Relocation &Rel);
};
diff --git a/linux-x64/clang/include/llvm/ObjectYAML/MachOYAML.h b/linux-x64/clang/include/llvm/ObjectYAML/MachOYAML.h
index cec4f86..d7e1c03 100644
--- a/linux-x64/clang/include/llvm/ObjectYAML/MachOYAML.h
+++ b/linux-x64/clang/include/llvm/ObjectYAML/MachOYAML.h
@@ -1,9 +1,8 @@
//===- MachOYAML.h - Mach-O YAMLIO implementation ---------------*- C++ -*-===//
//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
///
diff --git a/linux-x64/clang/include/llvm/ObjectYAML/ObjectYAML.h b/linux-x64/clang/include/llvm/ObjectYAML/ObjectYAML.h
index 00ce864..56f5f39 100644
--- a/linux-x64/clang/include/llvm/ObjectYAML/ObjectYAML.h
+++ b/linux-x64/clang/include/llvm/ObjectYAML/ObjectYAML.h
@@ -1,9 +1,8 @@
//===- ObjectYAML.h ---------------------------------------------*- C++ -*-===//
//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
diff --git a/linux-x64/clang/include/llvm/ObjectYAML/WasmYAML.h b/linux-x64/clang/include/llvm/ObjectYAML/WasmYAML.h
index 8cd08e5..f5260bb 100644
--- a/linux-x64/clang/include/llvm/ObjectYAML/WasmYAML.h
+++ b/linux-x64/clang/include/llvm/ObjectYAML/WasmYAML.h
@@ -1,9 +1,8 @@
//===- WasmYAML.h - Wasm YAMLIO implementation ------------------*- C++ -*-===//
//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
///
@@ -74,6 +73,12 @@
wasm::WasmInitExpr InitExpr;
};
+struct Event {
+ uint32_t Index;
+ uint32_t Attribute;
+ uint32_t SigIndex;
+};
+
struct Import {
StringRef Module;
StringRef Field;
@@ -83,6 +88,7 @@
Global GlobalImport;
Table TableImport;
Limits Memory;
+ Event EventImport;
};
};
@@ -116,6 +122,11 @@
StringRef Name;
};
+struct ProducerEntry {
+ std::string Name;
+ std::string Version;
+};
+
struct SegmentInfo {
uint32_t Index;
StringRef Name;
@@ -176,6 +187,21 @@
yaml::BinaryRef Payload;
};
+struct DylinkSection : CustomSection {
+ DylinkSection() : CustomSection("dylink") {}
+
+ static bool classof(const Section *S) {
+ auto C = dyn_cast<CustomSection>(S);
+ return C && C->Name == "dylink";
+ }
+
+ uint32_t MemorySize;
+ uint32_t MemoryAlignment;
+ uint32_t TableSize;
+ uint32_t TableAlignment;
+ std::vector<StringRef> Needed;
+};
+
struct NameSection : CustomSection {
NameSection() : CustomSection("name") {}
@@ -202,6 +228,19 @@
std::vector<Comdat> Comdats;
};
+struct ProducersSection : CustomSection {
+ ProducersSection() : CustomSection("producers") {}
+
+ static bool classof(const Section *S) {
+ auto C = dyn_cast<CustomSection>(S);
+ return C && C->Name == "producers";
+ }
+
+ std::vector<ProducerEntry> Languages;
+ std::vector<ProducerEntry> Tools;
+ std::vector<ProducerEntry> SDKs;
+};
+
struct TypeSection : Section {
TypeSection() : Section(wasm::WASM_SEC_TYPE) {}
@@ -262,6 +301,16 @@
std::vector<Global> Globals;
};
+struct EventSection : Section {
+ EventSection() : Section(wasm::WASM_SEC_EVENT) {}
+
+ static bool classof(const Section *S) {
+ return S->Type == wasm::WASM_SEC_EVENT;
+ }
+
+ std::vector<Event> Events;
+};
+
struct ExportSection : Section {
ExportSection() : Section(wasm::WASM_SEC_EXPORT) {}
@@ -334,11 +383,13 @@
LLVM_YAML_IS_SEQUENCE_VECTOR(llvm::WasmYAML::LocalDecl)
LLVM_YAML_IS_SEQUENCE_VECTOR(llvm::WasmYAML::Relocation)
LLVM_YAML_IS_SEQUENCE_VECTOR(llvm::WasmYAML::NameEntry)
+LLVM_YAML_IS_SEQUENCE_VECTOR(llvm::WasmYAML::ProducerEntry)
LLVM_YAML_IS_SEQUENCE_VECTOR(llvm::WasmYAML::SegmentInfo)
LLVM_YAML_IS_SEQUENCE_VECTOR(llvm::WasmYAML::SymbolInfo)
LLVM_YAML_IS_SEQUENCE_VECTOR(llvm::WasmYAML::InitFunction)
LLVM_YAML_IS_SEQUENCE_VECTOR(llvm::WasmYAML::ComdatEntry)
LLVM_YAML_IS_SEQUENCE_VECTOR(llvm::WasmYAML::Comdat)
+LLVM_YAML_IS_SEQUENCE_VECTOR(llvm::WasmYAML::Event)
namespace llvm {
namespace yaml {
@@ -411,6 +462,10 @@
static void mapping(IO &IO, WasmYAML::NameEntry &NameEntry);
};
+template <> struct MappingTraits<WasmYAML::ProducerEntry> {
+ static void mapping(IO &IO, WasmYAML::ProducerEntry &ProducerEntry);
+};
+
template <> struct MappingTraits<WasmYAML::SegmentInfo> {
static void mapping(IO &IO, WasmYAML::SegmentInfo &SegmentInfo);
};
@@ -471,6 +526,10 @@
static void enumeration(IO &IO, WasmYAML::RelocType &Kind);
};
+template <> struct MappingTraits<WasmYAML::Event> {
+ static void mapping(IO &IO, WasmYAML::Event &Event);
+};
+
} // end namespace yaml
} // end namespace llvm
diff --git a/linux-x64/clang/include/llvm/ObjectYAML/YAML.h b/linux-x64/clang/include/llvm/ObjectYAML/YAML.h
index 163cd8d..a14bfbc 100644
--- a/linux-x64/clang/include/llvm/ObjectYAML/YAML.h
+++ b/linux-x64/clang/include/llvm/ObjectYAML/YAML.h
@@ -1,9 +1,8 @@
//===- YAML.h ---------------------------------------------------*- C++ -*-===//
//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//