From 86d8bfe991d304e3ae96abbe918d388730d66baf Mon Sep 17 00:00:00 2001 From: Richard Smith <richard-llvm@metafoo.co.uk> Date: Thu, 12 Dec 2013 02:42:17 +0000 Subject: [PATCH] Update user manual to note that implementation for C++11 and C++1y is complete, and fix a bunch of other issues here. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@197120 91177308-0d34-0410-b5e6-96231b3b80d8 --- docs/UsersManual.rst | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/docs/UsersManual.rst b/docs/UsersManual.rst index ce2c7ab1b98..fb5cda5059d 100644 --- a/docs/UsersManual.rst +++ b/docs/UsersManual.rst @@ -1233,23 +1233,23 @@ Microsoft extensions -------------------- clang has some experimental support for extensions from Microsoft Visual -C++; to enable it, use the -fms-extensions command-line option. This is +C++; to enable it, use the ``-fms-extensions`` command-line option. This is the default for Windows targets. Note that the support is incomplete. -Some constructs such as dllexport on classes are ignored with a warning, +Some constructs such as ``dllexport`` on classes are ignored with a warning, and others such as `Microsoft IDL annotations <http://msdn.microsoft.com/en-us/library/8tesw2eh.aspx>`_ are silently ignored. -clang has a -fms-compatibility flag that makes clang accept enough +clang has a ``-fms-compatibility`` flag that makes clang accept enough invalid C++ to be able to parse most Microsoft headers. For example, it allows `unqualified lookup of dependent base class members <http://clang.llvm.org/compatibility.html#dep_lookup_bases>`_, which is a common compatibility issue with clang. This flag is enabled by default for Windows targets. --fdelayed-template-parsing lets clang delay all template instantiation -until the end of a translation unit. This flag is enabled by default for -Windows targets. +``-fdelayed-template-parsing`` lets clang delay parsing of function template +definitions until the end of a translation unit. This flag is enabled by +default for Windows targets. - clang allows setting ``_MSC_VER`` with ``-fmsc-version=``. It defaults to 1700 which is the same as Visual C/C++ 2012. Any number is supported @@ -1275,8 +1275,8 @@ C++ Language Features ===================== clang fully implements all of standard C++98 except for exported -templates (which were removed in C++11), and `many C++11 -features <http://clang.llvm.org/cxx_status.html>`_ are also implemented. +templates (which were removed in C++11), and all of standard C++11 +and the current draft standard for C++1y. Controlling implementation limits --------------------------------- @@ -1328,8 +1328,8 @@ Darwin (Mac OS/X), Linux, FreeBSD, and Dragonfly BSD: it has been tested to correctly compile many large C, C++, Objective-C, and Objective-C++ codebases. -On ``x86_64-mingw32``, passing i128(by value) is incompatible to Microsoft -x64 calling conversion. You might need to tweak +On ``x86_64-mingw32``, passing i128(by value) is incompatible with the +Microsoft x64 calling conversion. You might need to tweak ``WinX86_64ABIInfo::classify()`` in lib/CodeGen/TargetInfo.cpp. ARM @@ -1380,7 +1380,8 @@ None Windows ^^^^^^^ -Experimental supports are on Cygming. +Clang has experimental support for targeting "Cygming" (Cygwin / MinGW) +platforms. See also :ref:`Microsoft Extensions <c_ms>`. -- GitLab