Update prebuilt Clang to r416183b from Android.
https://android.googlesource.com/platform/prebuilts/clang/host/
linux-x86/+/06a71ddac05c22edb2d10b590e1769b3f8619bef
clang 12.0.5 (based on r416183b) from build 7284624.
Change-Id: I277a316abcf47307562d8b748b84870f31a72866
Signed-off-by: Olivier Deprez <olivier.deprez@arm.com>
diff --git a/linux-x64/clang/include/llvm/XRay/FDRRecordProducer.h b/linux-x64/clang/include/llvm/XRay/FDRRecordProducer.h
index b530a85..043d915 100644
--- a/linux-x64/clang/include/llvm/XRay/FDRRecordProducer.h
+++ b/linux-x64/clang/include/llvm/XRay/FDRRecordProducer.h
@@ -27,7 +27,7 @@
class FileBasedRecordProducer : public RecordProducer {
const XRayFileHeader &Header;
DataExtractor &E;
- uint32_t &OffsetPtr;
+ uint64_t &OffsetPtr;
uint32_t CurrentBufferBytes = 0;
// Helper function which gets the next record by speculatively reading through
@@ -36,7 +36,7 @@
public:
FileBasedRecordProducer(const XRayFileHeader &FH, DataExtractor &DE,
- uint32_t &OP)
+ uint64_t &OP)
: Header(FH), E(DE), OffsetPtr(OP) {}
/// This producer encapsulates the logic for loading a File-backed
diff --git a/linux-x64/clang/include/llvm/XRay/FDRRecords.h b/linux-x64/clang/include/llvm/XRay/FDRRecords.h
index a8ce74b..d53e6aa 100644
--- a/linux-x64/clang/include/llvm/XRay/FDRRecords.h
+++ b/linux-x64/clang/include/llvm/XRay/FDRRecords.h
@@ -289,7 +289,7 @@
};
class CallArgRecord : public MetadataRecord {
- uint64_t Arg;
+ uint64_t Arg = 0;
friend class RecordInitializer;
public:
@@ -371,8 +371,8 @@
class FunctionRecord : public Record {
RecordTypes Kind;
- int32_t FuncId;
- uint32_t Delta;
+ int32_t FuncId = 0;
+ uint32_t Delta = 0;
friend class RecordInitializer;
static constexpr unsigned kFunctionRecordSize = 8;
@@ -417,16 +417,16 @@
class RecordInitializer : public RecordVisitor {
DataExtractor &E;
- uint32_t &OffsetPtr;
+ uint64_t &OffsetPtr;
uint16_t Version;
public:
static constexpr uint16_t DefaultVersion = 5u;
- explicit RecordInitializer(DataExtractor &DE, uint32_t &OP, uint16_t V)
+ explicit RecordInitializer(DataExtractor &DE, uint64_t &OP, uint16_t V)
: RecordVisitor(), E(DE), OffsetPtr(OP), Version(V) {}
- explicit RecordInitializer(DataExtractor &DE, uint32_t &OP)
+ explicit RecordInitializer(DataExtractor &DE, uint64_t &OP)
: RecordInitializer(DE, OP, DefaultVersion) {}
Error visit(BufferExtents &) override;
diff --git a/linux-x64/clang/include/llvm/XRay/FileHeaderReader.h b/linux-x64/clang/include/llvm/XRay/FileHeaderReader.h
index 1c9681c..30878f3 100644
--- a/linux-x64/clang/include/llvm/XRay/FileHeaderReader.h
+++ b/linux-x64/clang/include/llvm/XRay/FileHeaderReader.h
@@ -24,7 +24,7 @@
/// Convenience function for loading the file header given a data extractor at a
/// specified offset.
Expected<XRayFileHeader> readBinaryFormatHeader(DataExtractor &HeaderExtractor,
- uint32_t &OffsetPtr);
+ uint64_t &OffsetPtr);
} // namespace xray
} // namespace llvm
diff --git a/linux-x64/clang/include/llvm/XRay/Graph.h b/linux-x64/clang/include/llvm/XRay/Graph.h
index 0046815..d368f7e 100644
--- a/linux-x64/clang/include/llvm/XRay/Graph.h
+++ b/linux-x64/clang/include/llvm/XRay/Graph.h
@@ -126,14 +126,14 @@
/// set.
template <bool IsConst, bool IsOut,
typename BaseIt = typename NeighborSetT::const_iterator,
- typename T = typename std::conditional<IsConst, const EdgeValueType,
- EdgeValueType>::type>
+ typename T =
+ std::conditional_t<IsConst, const EdgeValueType, EdgeValueType>>
class NeighborEdgeIteratorT
: public iterator_adaptor_base<
NeighborEdgeIteratorT<IsConst, IsOut>, BaseIt,
typename std::iterator_traits<BaseIt>::iterator_category, T> {
using InternalEdgeMapT =
- typename std::conditional<IsConst, const EdgeMapT, EdgeMapT>::type;
+ std::conditional_t<IsConst, const EdgeMapT, EdgeMapT>;
friend class NeighborEdgeIteratorT<false, IsOut, BaseIt, EdgeValueType>;
friend class NeighborEdgeIteratorT<true, IsOut, BaseIt,
@@ -144,7 +144,7 @@
public:
template <bool IsConstDest,
- typename = typename std::enable_if<IsConstDest && !IsConst>::type>
+ typename = std::enable_if<IsConstDest && !IsConst>>
operator NeighborEdgeIteratorT<IsConstDest, IsOut, BaseIt,
const EdgeValueType>() const {
return NeighborEdgeIteratorT<IsConstDest, IsOut, BaseIt,
@@ -199,9 +199,9 @@
public:
using iterator = NeighborEdgeIteratorT<isConst, isOut>;
using const_iterator = NeighborEdgeIteratorT<true, isOut>;
- using GraphT = typename std::conditional<isConst, const Graph, Graph>::type;
+ using GraphT = std::conditional_t<isConst, const Graph, Graph>;
using InternalEdgeMapT =
- typename std::conditional<isConst, const EdgeMapT, EdgeMapT>::type;
+ std::conditional_t<isConst, const EdgeMapT, EdgeMapT>;
private:
InternalEdgeMapT &M;
@@ -272,10 +272,10 @@
/// the number of elements in the range and whether the range is empty.
template <bool isConst> class VertexView {
public:
- using iterator = typename std::conditional<isConst, ConstVertexIterator,
- VertexIterator>::type;
+ using iterator =
+ std::conditional_t<isConst, ConstVertexIterator, VertexIterator>;
using const_iterator = ConstVertexIterator;
- using GraphT = typename std::conditional<isConst, const Graph, Graph>::type;
+ using GraphT = std::conditional_t<isConst, const Graph, Graph>;
private:
GraphT &G;
@@ -309,10 +309,10 @@
/// the number of elements in the range and whether the range is empty.
template <bool isConst> class EdgeView {
public:
- using iterator = typename std::conditional<isConst, ConstEdgeIterator,
- EdgeIterator>::type;
+ using iterator =
+ std::conditional_t<isConst, ConstEdgeIterator, EdgeIterator>;
using const_iterator = ConstEdgeIterator;
- using GraphT = typename std::conditional<isConst, const Graph, Graph>::type;
+ using GraphT = std::conditional_t<isConst, const Graph, Graph>;
private:
GraphT &G;
diff --git a/linux-x64/clang/include/llvm/XRay/InstrumentationMap.h b/linux-x64/clang/include/llvm/XRay/InstrumentationMap.h
index 5cbe5c4..aae9034 100644
--- a/linux-x64/clang/include/llvm/XRay/InstrumentationMap.h
+++ b/linux-x64/clang/include/llvm/XRay/InstrumentationMap.h
@@ -50,6 +50,8 @@
/// Whether the sled was annotated to always be instrumented.
bool AlwaysInstrument;
+
+ unsigned char Version;
};
struct YAMLXRaySledEntry {
@@ -59,6 +61,7 @@
SledEntry::FunctionKinds Kind;
bool AlwaysInstrument;
std::string FunctionName;
+ unsigned char Version;
};
/// The InstrumentationMap represents the computed function id's and indicated
@@ -120,6 +123,7 @@
IO.mapRequired("kind", Entry.Kind);
IO.mapRequired("always-instrument", Entry.AlwaysInstrument);
IO.mapOptional("function-name", Entry.FunctionName);
+ IO.mapOptional("version", Entry.Version, 0);
}
static constexpr bool flow = true;