clang 15 doesn't like our JIT code

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: clang 15 doesn't like our JIT code
Date: 2022-09-16 15:40:46
Message-ID: 3698111.1663342846@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

According to

https://bugzilla.redhat.com/show_bug.cgi?id=2127503

bleeding-edge clang complains thusly:

llvmjit_inline.cpp: In function 'std::unique_ptr<llvm::ModuleSummaryIndex> llvm_load_summary(llvm::StringRef)':
llvmjit_inline.cpp:771:37: error: incomplete type 'llvm::MemoryBuffer' used in nested name specifier
771 | llvm::MemoryBuffer::getFile(path);
| ^~~~~~~
In file included from /usr/include/c++/12/memory:76,
from /usr/include/llvm/ADT/SmallVector.h:28,
from /usr/include/llvm/ADT/ArrayRef.h:14,
from /usr/include/llvm/ADT/SetVector.h:23,
from llvmjit_inline.cpp:48:
/usr/include/c++/12/bits/unique_ptr.h: In instantiation of 'void std::default_delete<_Tp>::operator()(_Tp*) const [with _Tp = llvm::MemoryBuffer]':
/usr/include/c++/12/bits/unique_ptr.h:396:17: required from 'std::unique_ptr<_Tp, _Dp>::~unique_ptr() [with _Tp = llvm::MemoryBuffer; _Dp = std::default_delete<llvm::MemoryBuffer>]'
/usr/include/llvm/Support/ErrorOr.h:142:34: required from 'llvm::ErrorOr<T>::~ErrorOr() [with T = std::unique_ptr<llvm::MemoryBuffer>]'
llvmjit_inline.cpp:771:35: required from here
/usr/include/c++/12/bits/unique_ptr.h:93:23: error: invalid application of 'sizeof' to incomplete type 'llvm::MemoryBuffer'
93 | static_assert(sizeof(_Tp)>0,
| ^~~~~~~~~~~

I suspect this is less about clang and more about LLVM APIs,
but anyway it seems like we gotta fix something.

regards, tom lane

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Drouvot, Bertrand 2022-09-16 15:47:40 Re: Query Jumbling for CALL and SET utility statements
Previous Message Imseih (AWS), Sami 2022-09-16 15:08:59 Re: Query Jumbling for CALL and SET utility statements