|
17 | 17 | #include "llvm/Pass.h"
|
18 | 18 | #include "llvm/Bitcode/BitcodeWriter.h"
|
19 | 19 | #include "llvm/Support/Signals.h"
|
| 20 | +#if LLVM_VERSION_LT(16, 0) |
20 | 21 | #include "llvm/ADT/Optional.h"
|
| 22 | +#endif |
21 | 23 |
|
22 | 24 | #include <iostream>
|
23 | 25 |
|
@@ -708,7 +710,11 @@ enum class LLVMRustChecksumKind {
|
708 | 710 | SHA256,
|
709 | 711 | };
|
710 | 712 |
|
| 713 | +#if LLVM_VERSION_LT(16, 0) |
711 | 714 | static Optional<DIFile::ChecksumKind> fromRust(LLVMRustChecksumKind Kind) {
|
| 715 | +#else |
| 716 | +static std::optional<DIFile::ChecksumKind> fromRust(LLVMRustChecksumKind Kind) { |
| 717 | +#endif |
712 | 718 | switch (Kind) {
|
713 | 719 | case LLVMRustChecksumKind::None:
|
714 | 720 | return None;
|
@@ -787,8 +793,18 @@ extern "C" LLVMMetadataRef LLVMRustDIBuilderCreateFile(
|
787 | 793 | const char *Filename, size_t FilenameLen,
|
788 | 794 | const char *Directory, size_t DirectoryLen, LLVMRustChecksumKind CSKind,
|
789 | 795 | const char *Checksum, size_t ChecksumLen) {
|
| 796 | + |
| 797 | +#if LLVM_VERSION_LT(16, 0) |
790 | 798 | Optional<DIFile::ChecksumKind> llvmCSKind = fromRust(CSKind);
|
| 799 | +#else |
| 800 | + std::optional<DIFile::ChecksumKind> llvmCSKind = fromRust(CSKind); |
| 801 | +#endif |
| 802 | + |
| 803 | +#if LLVM_VERSION_LT(16, 0) |
791 | 804 | Optional<DIFile::ChecksumInfo<StringRef>> CSInfo{};
|
| 805 | +#else |
| 806 | + std::optional<DIFile::ChecksumInfo<StringRef>> CSInfo{}; |
| 807 | +#endif |
792 | 808 | if (llvmCSKind)
|
793 | 809 | CSInfo.emplace(*llvmCSKind, StringRef{Checksum, ChecksumLen});
|
794 | 810 | return wrap(Builder->createFile(StringRef(Filename, FilenameLen),
|
|
0 commit comments