|
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