That code is actually from a copy of the llvm cxa_demangle.cpp (look at the 
comment around line 33 of that file.

We had to include this because the demangler that shipped with the system for 
certain OS X releases crashed for some bad input.  We couldn't get a fix into 
the OS right away, so we put a fixed version into lldb.  You will only use it 
if you define LLDB_USE_BUILTIN_DEMANGLER, presumably you wouldn't do that on 
Windows.

I don't think we need to muck with this code...

Jim


> On Feb 18, 2015, at 3:55 AM, Tamas Berghammer <tbergham...@google.com> wrote:
> 
> I removed the alias template from GDBRemoteCommunicationServerCommon.h but 
> there are still some template aliases in the code base. Based on my first 
> check (not necessarily complete) I find two more usage of template aliases in 
> source/Core/Mangled.cpp lines 4867 and 4868. I have no idea about how that 
> part of the code works and if it can cause any issue with MSVC or not but we 
> should consider removing it also (it is in the code base since 2013-10-30).
> 
> Tamas
> 
> On Tue, Feb 17, 2015 at 11:33 PM, Zachary Turner <ztur...@google.com> wrote:
> +lldb-dev@cs.uiuc.edu  since this is of general interest.
> 
> A little background: template aliases are a new C++11 feature.  If you aren't 
> familiar with it, then the simple TL;DR version of it is that it's like a 
> template typedef.  The syntax for using one looks like this:
> 
> template<class T>
> using Foo = std::list<T>   // Foo<T> is the same as std::list<T> now.
> 
> Up until last weekend, LLVM's minimum toolchain requirement was MSVC 2012, 
> which did not support template aliases at all, so they were banned.  Last 
> weekend we upgraded the minimum required version to MSVC 2013, which we 
> thought would allow template aliases to be used.  Unfortunately, this is not 
> the case.  A base install of MSVC 2013 with no updaets will still not compile 
> template aliases.  I believe we're actually requiring MSVC 2013 Update 4 as 
> the baseline, but sadly this doesn't fix the problem.  A fully updated MSVC 
> 2013 will compile them, but generate incorrect code.  This is more sinister, 
> since it means you can use them, but the code won't work.
> 
> As a result, template aliases are still banned until we upgrade the minimum 
> required version to 2015, which will still be a while as it's not officially 
> out yet.  Please keep this in mind and try not to use them when writing new 
> code.  Thanks!
> 
> 
> 
> On Tue Feb 17 2015 at 3:21:03 PM Vince Harron <vhar...@google.com> wrote:
> Hi Tamas,
> 
> zturner@ informed me that MSVC 2013 doesn't generate correct code for 
> template alases.  Can you remove your use on 
> 
> "GDBRemoteCommunicationServerCommon.h, lines 182 and 183"
> 
> Thanks,
> 
> Vince
> 
> 
> -- 
> 
> Vince Harron |         Technical Lead Manager |        vhar...@google.com |   
>  858-442-0868
> 
> 
> _______________________________________________
> lldb-dev mailing list
> lldb-dev@cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev


_______________________________________________
lldb-dev mailing list
lldb-dev@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev

Reply via email to