<div dir="ltr">So when comparing Clang's debug info strings to GCC's I came across a couple of disparities hinging on the inclusion of linkage names on certain functions. Here are a few differences:<br><br>* Clang includes linkage names on file-local (static or anon namespace) functions. GCC does not.<br>
* Clang does not include the linkage name of member functions of function-local classes. GCC does, if the function is non-static/non-anonymous namespace and inline (ie: the member function has linkonce-odr linkage, not internal linkage)<br>
* Clang does not include the linkage name for constructors and destructors - this may be necessary due to the difference (GCC duplicates, Clang has one version call the other) in implementations, but I doubt it. I assume we still emit multiple member functions, one to describe each version of the ctor/dtor we're emitting.<br>
<br>It looks like at least for the first case, this may've been deliberate ( <a href="http://llvm.org/viewvc/llvm-project?view=revision&revision=154570">http://llvm.org/viewvc/llvm-project?view=revision&revision=154570</a> which doesn't explain why and points to <span style="color:rgb(0,0,0);white-space:pre-wrap">rdar://11079003 which Jim Grosbach told didn't have a great deal more context</span>) but I don't have enough context to understand why and whether it's just a GCC bug that they don't emit it, or something tools should handle better, etc.<br>
<br>So - any thoughts on the disparity and if/why it's necessary?<br><br>- Dave</div>