Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

clang mangled names varies over time

We have encountered something, which about I don't find any documentation. It seems, that there are a lot of class members, etc. which gets different mangled names over time. So in one day, the compilation gives it, for instance,

_ZThn1128_N9TESTCLASS14ContentChangedEv

Then after some day of development, it gets something different prefix, like

_ZThn1140_N9TESTCLASS14ContentChangedEv

Do you have any idea, what is the varied prefix here? I thought, that maybe it is somehow connected with the line number, but not. Secondly, how we could ensure, that this does not vary over time? The prefix is surely just some extra, because the demangled name stays the same, if I change that number for instance.

Thanks in advance.

like image 654
newhouse Avatar asked Oct 11 '16 07:10

newhouse


1 Answers

_ZThn1128_N9TESTCLASS14ContentChangedEv is demangled to non-virtual thunk to TESTCLASS::ContentChanged(). This Q&A suggests that the change in the mangled symbol name may be stipulated by the change in the sizeof of one of the base classes of TESTCLASS.

like image 197
Leon Avatar answered Oct 20 '22 01:10

Leon