Skip to content

Commit 4957e40

Browse files
committed
prepare-builtins: Fix build with LLVM 3.7
llvm-svn: 240552
1 parent 9d3f89a commit 4957e40

File tree

1 file changed

+19
-6
lines changed

1 file changed

+19
-6
lines changed

libclc/utils/prepare-builtins.cpp

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@
1414

1515
#include <system_error>
1616

17+
#define LLVM_360 \
18+
(LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR == 6)
19+
20+
1721
using namespace llvm;
1822

1923
static cl::opt<std::string>
@@ -30,7 +34,7 @@ int main(int argc, char **argv) {
3034
cl::ParseCommandLineOptions(argc, argv, "libclc builtin preparation tool\n");
3135

3236
std::string ErrorMessage;
33-
std::auto_ptr<Module> M;
37+
Module *M;
3438

3539
{
3640
ErrorOr<std::unique_ptr<MemoryBuffer>> BufferOrErr =
@@ -39,15 +43,24 @@ int main(int argc, char **argv) {
3943
if (std::error_code ec = BufferOrErr.getError())
4044
ErrorMessage = ec.message();
4145
else {
42-
ErrorOr<Module *> ModuleOrErr =
43-
parseBitcodeFile(BufferPtr.get()->getMemBufferRef(), Context);
46+
#if LLVM_360
47+
ErrorOr<Module *>
48+
#else
49+
ErrorOr<std::unique_ptr<Module>>
50+
#endif
51+
ModuleOrErr =
52+
parseBitcodeFile(BufferPtr.get()->getMemBufferRef(), Context);
4453
if (std::error_code ec = ModuleOrErr.getError())
4554
ErrorMessage = ec.message();
46-
M.reset(ModuleOrErr.get());
55+
#if LLVM_360
56+
M = ModuleOrErr.get().get();
57+
#else
58+
M = ModuleOrErr.get().release();
59+
#endif
4760
}
4861
}
4962

50-
if (M.get() == 0) {
63+
if (!M) {
5164
errs() << argv[0] << ": ";
5265
if (ErrorMessage.size())
5366
errs() << ErrorMessage << "\n";
@@ -81,7 +94,7 @@ int main(int argc, char **argv) {
8194
exit(1);
8295
}
8396

84-
WriteBitcodeToFile(M.get(), Out->os());
97+
WriteBitcodeToFile(M, Out->os());
8598

8699
// Declare success.
87100
Out->keep();

0 commit comments

Comments
 (0)