[llvm-dev] Function name demangle on clang vs clang++

David Blaikie via llvm-dev llvm-dev at lists.llvm.org
Mon Oct 28 15:44:27 PDT 2019


This is more of a general C and C++ question than one suitable to the LLVM
discussion list, I think?

You can modify the source itself -
https://en.cppreference.com/w/cpp/language/language_linkage - discusses the
extern "C" directive and how it can be used to expose C-linkage functions
from C++ translation units (so, if you have a function with C API, but an
implementation written in C++, this is how to do that)

On Mon, Oct 28, 2019 at 3:37 PM Syed Ahmed via llvm-dev <
llvm-dev at lists.llvm.org> wrote:

> Hi all,
>
> I'm a LLVM newbie and am working on a LLVM 3.5 code base. The project (
> https://github.com/zhguanw/lin-analyzer) makes use of clang and reads C
> code. I'm trying to make it read C++ code. When I compile a kernel written
> in C with clang++, I get the following difference in the IR for a function
> declaration:
>
> When compiled with clang:
> declare void @convolution3d(float*, float*) #1
>
> When compiled with clang++:
> declare void @_Z13convolution3dPfS_(float*, float*) #2
>
> The project breaks if I compile with clang++ because it expects the
> function name to not have the @_Z13*PfS. Does anyone know how I can get
> the function name in the IR generated by clang++ to not have the mangled
> characters? Once again, this is in LLVM 3.5.
>
> Best,
>
> Syed Ahmed
> PhD Student
> Implementation of Computation Group
> UPenn
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20191028/82764b26/attachment.html>


More information about the llvm-dev mailing list