<HTML><HEAD>
<META content="text/html; charset=utf-8" http-equiv=Content-Type></HEAD>
<BODY>
<DIV>
<DIV style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri,sans-serif">Annoyingly the compiler that ships with Visual Studio 2013 is labelled MSVC 2012, always seems to be out by one :) <BR><BR>We are certainly using the windows build extensively with this compiler, so would rather it remained the lowest common denominator for adoption of c++11 features in the lldb code.<BR><BR>Colin<BR></DIV></DIV>
<DIV dir=ltr>
<HR>
<SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri,sans-serif; FONT-WEIGHT: bold">From: </SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri,sans-serif"><A href="mailto:tfiala@google.com">Todd Fiala</A></SPAN><BR><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri,sans-serif; FONT-WEIGHT: bold">Sent: </SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri,sans-serif">‎13/‎02/‎2014 18:15</SPAN><BR><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri,sans-serif; FONT-WEIGHT: bold">To: </SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri,sans-serif"><A href="mailto:gclayton@apple.com">Greg Clayton</A></SPAN><BR><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri,sans-serif; FONT-WEIGHT: bold">Cc: </SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri,sans-serif"><A href="mailto:lldb-dev@cs.uiuc.edu">lldb-dev</A></SPAN><BR><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri,sans-serif; FONT-WEIGHT: bold">Subject: </SPAN><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Calibri,sans-serif">Re: [lldb-dev] C++11 in LLDB source code.</SPAN><BR><BR></DIV>
<DIV dir=ltr>MSVC has a 2013 compiler.  I believe there are some C++ language improvements in it as well.</DIV>
<DIV class=gmail_extra><BR><BR>
<DIV class=gmail_quote>On Thu, Feb 13, 2014 at 10:12 AM, Greg Clayton <SPAN dir=ltr><<A href="mailto:gclayton@apple.com" target=_blank>gclayton@apple.com</A>></SPAN> wrote:<BR>
<BLOCKQUOTE class=gmail_quote style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">
<DIV><BR>On Feb 13, 2014, at 8:56 AM, Jean-Daniel Dupas <<A href="mailto:devlists@shadowlab.org">devlists@shadowlab.org</A>> wrote:<BR><BR>> Hello LLDB community,<BR>><BR>> I'm actually working on a thankless task which is to try to review most warnings produced by clang and other static code analyzer when almost all warnings are enabled in LLDB code base.<BR>><BR>> And I did found a lot of place where latent bug could be fixed by using C++11 features, the most notable bugs are the one about member initialization which can be solve either by explicitly using compiler generated copy constructor and operators (Constructor() = default;) or simply by using member initialization in declaration construct.<BR>><BR>> class Foo {<BR>><BR>> private:<BR>>    int m_flag = 0;<BR>> };<BR>><BR>> An other big source of latent bugs in LLDB source code are unexpected fall though in switch statements.<BR>> This kind of issue can be spotted and solved by enabling the proper warning in clang and annotating expected fall through using the C++11 attribute [[clang::fallthrough]]<BR>><BR>> So I have a simple question.<BR>> I see that LLDB already relies on many C++11 constructs (shared_ptr, for loop, …), so what are the acceptables C++11 features that can be used in LLDB, or to say it another way, what compiler LLDB is expected to support ?<BR><BR></DIV>The only limits we need to stick to are making sure we don't break any existing buildbots, or the windows MSVC build with the latest MSVC release. Some platforms have more complete C++11 support, but we should at least shoot for:<BR><BR>- current clang compiler<BR>- gcc 4.8.2 and later<BR>- MSVC 2012 and later (I believe this is the latest?)<BR><SPAN class=HOEnZb><FONT color=#888888><BR>Greg<BR></FONT></SPAN>
<DIV class=HOEnZb>
<DIV class=h5><BR><BR>_______________________________________________<BR>lldb-dev mailing list<BR><A href="mailto:lldb-dev@cs.uiuc.edu">lldb-dev@cs.uiuc.edu</A><BR><A href="http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev" target=_blank>http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev</A><BR></DIV></DIV></BLOCKQUOTE></DIV><BR><BR clear=all>
<DIV><BR></DIV>-- <BR>
<DIV dir=ltr>
<TABLE style="FONT-FAMILY: 'Times New Roman'; COLOR: rgb(136,136,136)" cellSpacing=0 cellPadding=0>
<TBODY>
<TR style="FONT-SIZE: small; FONT-FAMILY: sans-serif; COLOR: rgb(85,85,85)">
<TD style="BORDER-TOP: rgb(213,15,37) 2px solid" noWrap>Todd Fiala |</TD>
<TD style="BORDER-TOP: rgb(51,105,232) 2px solid" noWrap> Software Engineer |</TD>
<TD style="BORDER-TOP: rgb(0,153,57) 2px solid" noWrap> <A style="COLOR: rgb(17,85,204)" href="mailto:tfiala@google.com" target=_blank><SPAN style="COLOR: rgb(34,34,34); BACKGROUND-COLOR: rgb(255,255,204)">tfiala@google.com</SPAN></A> |</TD>
<TD style="BORDER-TOP: rgb(238,178,17) 2px solid" noWrap><FONT color=#1155cc> <A>650-943-3180</A></FONT></TD></TR></TBODY></TABLE><BR></DIV></DIV></BODY></HTML>