Skip to content

Commit 5d0294f

Browse files
authored
[llvm] Support building with c++23 (#154372)
closes #154331 This PR addresses all minimum changes needed to compile LLVM and MLIR with the c++23 standard. It is a work in progress and to be reviewed for better methods of handling the parts of the build broken by c++23.
1 parent 88b71e2 commit 5d0294f

31 files changed

+114
-49
lines changed

llvm/include/llvm/CodeGen/MachineFunctionAnalysis.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ class MachineFunctionAnalysis
3636
std::unique_ptr<MachineFunction> MF;
3737

3838
public:
39-
Result(std::unique_ptr<MachineFunction> MF) : MF(std::move(MF)) {}
39+
Result(std::unique_ptr<MachineFunction> MF);
4040
MachineFunction &getMF() { return *MF; };
4141
LLVM_ABI bool invalidate(Function &, const PreservedAnalyses &PA,
4242
FunctionAnalysisManager::Invalidator &);

llvm/include/llvm/CodeGen/ResourcePriorityQueue.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ namespace llvm {
7575

7676
public:
7777
ResourcePriorityQueue(SelectionDAGISel *IS);
78+
~ResourcePriorityQueue();
7879

7980
bool isBottomUp() const override { return false; }
8081

llvm/include/llvm/DebugInfo/GSYM/GsymContext.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ class GsymReader;
3030
class GsymContext : public DIContext {
3131
public:
3232
GsymContext(std::unique_ptr<GsymReader> Reader);
33+
~GsymContext();
3334

3435
GsymContext(GsymContext &) = delete;
3536
GsymContext &operator=(GsymContext &) = delete;

llvm/include/llvm/DebugInfo/PDB/ConcreteSymbolEnumerator.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
#define LLVM_DEBUGINFO_PDB_CONCRETESYMBOLENUMERATOR_H
1111

1212
#include "llvm/DebugInfo/PDB/IPDBEnumChildren.h"
13+
#include "llvm/DebugInfo/PDB/PDBSymbol.h"
1314
#include "llvm/DebugInfo/PDB/PDBTypes.h"
1415
#include "llvm/Support/Casting.h"
1516
#include <algorithm>

llvm/include/llvm/DebugInfo/PDB/IPDBRawSymbol.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
#include "llvm/ADT/BitmaskEnum.h"
1414
#include "llvm/ADT/SmallVector.h"
1515
#include "llvm/DebugInfo/CodeView/CodeView.h"
16+
#include "llvm/DebugInfo/PDB/IPDBLineNumber.h"
1617
#include "llvm/Support/Compiler.h"
1718
#include <memory>
1819

llvm/include/llvm/DebugInfo/PDB/Native/InputFile.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,9 @@ class InputFile {
5555
getOrCreateTypeCollection(TypeCollectionKind Kind);
5656

5757
public:
58-
InputFile(PDBFile *Pdb) { PdbOrObj = Pdb; }
59-
InputFile(object::COFFObjectFile *Obj) { PdbOrObj = Obj; }
60-
InputFile(MemoryBuffer *Buffer) { PdbOrObj = Buffer; }
58+
InputFile(PDBFile *Pdb);
59+
InputFile(object::COFFObjectFile *Obj);
60+
InputFile(MemoryBuffer *Buffer);
6161
LLVM_ABI ~InputFile();
6262
InputFile(InputFile &&Other) = default;
6363

llvm/include/llvm/DebugInfo/PDB/PDBSymbolFunc.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
#define LLVM_DEBUGINFO_PDB_PDBSYMBOLFUNC_H
1111

1212
#include "llvm/DebugInfo/PDB/IPDBRawSymbol.h"
13+
#include "llvm/DebugInfo/PDB/PDBSymbolTypeFunctionSig.h"
1314
#include "llvm/Support/Compiler.h"
1415

1516
#include "PDBSymbol.h"
@@ -21,7 +22,6 @@ namespace pdb {
2122

2223
class PDBSymDumper;
2324
class PDBSymbolData;
24-
class PDBSymbolTypeFunctionSig;
2525
template <typename ChildType> class IPDBEnumChildren;
2626

2727
class LLVM_ABI PDBSymbolFunc : public PDBSymbol {

llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeBuiltin.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ namespace pdb {
2020
class LLVM_ABI PDBSymbolTypeBuiltin : public PDBSymbol {
2121
DECLARE_PDB_SYMBOL_CONCRETE_TYPE(PDB_SymType::BuiltinType)
2222
public:
23+
~PDBSymbolTypeBuiltin();
2324
void dump(PDBSymDumper &Dumper) const override;
2425

2526
FORWARD_SYMBOL_METHOD(getBuiltinType)

llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeEnum.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,11 @@
1111

1212
#include "PDBSymbol.h"
1313
#include "PDBTypes.h"
14+
#include "llvm/DebugInfo/PDB/IPDBLineNumber.h"
1415
#include "llvm/Support/Compiler.h"
1516

1617
#include "llvm/DebugInfo/PDB/IPDBRawSymbol.h"
18+
#include "llvm/DebugInfo/PDB/PDBSymbolTypeBuiltin.h"
1719

1820
namespace llvm {
1921

llvm/include/llvm/MC/MCGOFFStreamer.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,7 @@ class MCGOFFStreamer : public MCObjectStreamer {
2020
public:
2121
MCGOFFStreamer(MCContext &Context, std::unique_ptr<MCAsmBackend> MAB,
2222
std::unique_ptr<MCObjectWriter> OW,
23-
std::unique_ptr<MCCodeEmitter> Emitter)
24-
: MCObjectStreamer(Context, std::move(MAB), std::move(OW),
25-
std::move(Emitter)) {}
23+
std::unique_ptr<MCCodeEmitter> Emitter);
2624

2725
~MCGOFFStreamer() override;
2826

0 commit comments

Comments
 (0)