[clang] e35719d - [clang][Interp][NFC] Use std::byte for byte code.
Timm Bäder via cfe-commits
cfe-commits at lists.llvm.org
Thu Jul 13 05:10:34 PDT 2023
Author: Timm Bäder
Date: 2023-07-13T13:45:48+02:00
New Revision: e35719da5eaf256ecedfba55b50d7c07bfe596c2
URL: https://github.com/llvm/llvm-project/commit/e35719da5eaf256ecedfba55b50d7c07bfe596c2
DIFF: https://github.com/llvm/llvm-project/commit/e35719da5eaf256ecedfba55b50d7c07bfe596c2.diff
LOG: [clang][Interp][NFC] Use std::byte for byte code.
Added:
Modified:
clang/lib/AST/Interp/ByteCodeEmitter.cpp
clang/lib/AST/Interp/ByteCodeEmitter.h
clang/lib/AST/Interp/Function.h
clang/lib/AST/Interp/Source.h
Removed:
################################################################################
diff --git a/clang/lib/AST/Interp/ByteCodeEmitter.cpp b/clang/lib/AST/Interp/ByteCodeEmitter.cpp
index 359e774d12716d..3248877b5f4704 100644
--- a/clang/lib/AST/Interp/ByteCodeEmitter.cpp
+++ b/clang/lib/AST/Interp/ByteCodeEmitter.cpp
@@ -167,7 +167,7 @@ bool ByteCodeEmitter::bail(const SourceLocation &Loc) {
/// Helper to write bytecode and bail out if 32-bit offsets become invalid.
/// Pointers will be automatically marshalled as 32-bit IDs.
template <typename T>
-static void emit(Program &P, std::vector<char> &Code, const T &Val,
+static void emit(Program &P, std::vector<std::byte> &Code, const T &Val,
bool &Success) {
size_t Size;
diff --git a/clang/lib/AST/Interp/ByteCodeEmitter.h b/clang/lib/AST/Interp/ByteCodeEmitter.h
index a184ee071e9dfb..795534696d92ff 100644
--- a/clang/lib/AST/Interp/ByteCodeEmitter.h
+++ b/clang/lib/AST/Interp/ByteCodeEmitter.h
@@ -93,7 +93,7 @@ class ByteCodeEmitter {
/// Location of label relocations.
llvm::DenseMap<LabelTy, llvm::SmallVector<unsigned, 5>> LabelRelocs;
/// Program code.
- std::vector<char> Code;
+ std::vector<std::byte> Code;
/// Opcode to expression mapping.
SourceMap SrcMap;
diff --git a/clang/lib/AST/Interp/Function.h b/clang/lib/AST/Interp/Function.h
index 6fde5a616dec04..207fb294d6e047 100644
--- a/clang/lib/AST/Interp/Function.h
+++ b/clang/lib/AST/Interp/Function.h
@@ -164,7 +164,7 @@ class Function final {
bool HasThisPointer, bool HasRVO);
/// Sets the code of a function.
- void setCode(unsigned NewFrameSize, std::vector<char> &&NewCode,
+ void setCode(unsigned NewFrameSize, std::vector<std::byte> &&NewCode,
SourceMap &&NewSrcMap, llvm::SmallVector<Scope, 2> &&NewScopes,
bool NewHasBody) {
FrameSize = NewFrameSize;
@@ -192,7 +192,7 @@ class Function final {
/// Size of the argument stack.
unsigned ArgSize;
/// Program code.
- std::vector<char> Code;
+ std::vector<std::byte> Code;
/// Opcode-to-expression mapping.
SourceMap SrcMap;
/// List of block descriptors.
diff --git a/clang/lib/AST/Interp/Source.h b/clang/lib/AST/Interp/Source.h
index 3ca6dfd06402ac..f448081362b58d 100644
--- a/clang/lib/AST/Interp/Source.h
+++ b/clang/lib/AST/Interp/Source.h
@@ -64,9 +64,9 @@ class CodePtr final {
private:
friend class Function;
/// Constructor used by Function to generate pointers.
- CodePtr(const char *Ptr) : Ptr(Ptr) {}
+ CodePtr(const std::byte *Ptr) : Ptr(Ptr) {}
/// Pointer into the code owned by a function.
- const char *Ptr;
+ const std::byte *Ptr;
};
/// Describes the statement/declaration an opcode was generated from.
More information about the cfe-commits
mailing list