[cfe-dev] Using C++11 in clang/tools/extra

Chandler Carruth chandlerc at google.com
Wed Nov 28 19:39:31 PST 2012


On Wed, Nov 28, 2012 at 7:28 PM, Nick Kledzik <kledzik at apple.com> wrote:
> On Nov 28, 2012, at 10:45 AM, Marshall Clow wrote:
>> On Nov 28, 2012, at 7:15 AM, "Vane, Edwin" <edwin.vane at intel.com> wrote:
>>> It came up in a recent code review (http://llvm-reviews.chandlerc.com/D136) that C++11 features aren't allowed in the codebase. I can understand the reason for this in the LLVM and clang codebases as they're both widely used. However, would it be a problem to use C++11 officially in clang/tools/extra? It's not nearly as widely used and has less of a chance of impacting critical work in the community. Are there other problems I'm missing? If not, could the use of C++11 in clang/tools/extra be officially blessed?
>>
>> One of the problems with doing this (as we've found with lld), is that you need to link it against a set of clang libraries that are also built with C++11.
>
> I've had no problem building lld with C++11 and llvm with C++03.    The one change I did need to make to the llvm build was to build with -stdlib=libc++.  That is, use the new libc++ standard library for both projects.

I suspect that what Marshall has hit is that libstdc++ has
ABI-breaking changes when compiled in C++11 mode vs. C++03 mode. I
don't know if anyone has audited libc++ for such changes, it took us
some time to find them in libstdc++, but they led to moderately
terrible bugs.

-Chandler




More information about the cfe-dev mailing list