[lldb-dev] Can't use template aliases in LLDB

Tamas Berghammer tberghammer at google.com
Wed Feb 18 03:55:56 PST 2015


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 <zturner at google.com> wrote:

> +lldb-dev at cs.uiuc.edu <lldb-dev at 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 <vharron at 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 | vharron at google.com | 858-442-0868
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20150218/db29f5b7/attachment.html>


More information about the lldb-dev mailing list