[PATCH] [libcxx] Distinguish between MSVC, MSVCRT, and Windows-specific code

Nico Rieck nico.rieck at gmail.com
Thu Aug 1 05:23:10 PDT 2013


Currently _MSC_VER and _WIN32 are used to guard code which is
MSVC-specific, MSVCRT-specific, or Windows-specific. Because Clang can
also define _MSC_VER, and MSVCRT is not necessarily the only C runtime,
these macros should not be used interchangeably.

This patch divides all Windows-related bits into the aforementioned
categories. Two new macros are introduced:

- _LIBCPP_MSVC: Defined when compiling with MSVC. Detected using
   _MSC_VER, excluding Clang.
- _LIBCPP_MSVCRT: Defined when using the Microsoft CRT. This is the default
    when _WIN32 is defined.

This leaves _WIN32 for code using the Windows API.

This also corrects the spelling of _LIBCP_HAS_IS_BASE_OF to _LIBCPP_HAS_IS_BASE_OF.

http://llvm-reviews.chandlerc.com/D1256

Files:
  include/__config
  include/__locale
  include/algorithm
  include/cctype
  include/cmath
  include/cstdio
  include/cstdlib
  include/cstring
  include/cwchar
  include/limits
  include/locale
  include/string
  include/support/win32/limits_win32.h
  include/support/win32/math_win32.h
  include/support/win32/support.h
  include/type_traits
  include/vector
  src/locale.cpp
  src/string.cpp
  test/support/platform_support.h
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D1256.1.patch
Type: text/x-patch
Size: 26247 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20130801/4b3e4491/attachment.bin>


More information about the cfe-commits mailing list