summaryrefslogtreecommitdiffstats
path: root/test/cc-msvc.c
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2018-08-06 17:40:48 (GMT)
committerBrad King <brad.king@kitware.com>2018-08-06 17:50:49 (GMT)
commitae9312119f768840cddfee22d0996266c7a06848 (patch)
tree4a26080ae2a25fc6f03f762aa5b86c2f3917f353 /test/cc-msvc.c
parent6eb403d62df1a16d9d4b18775b747414f94a626d (diff)
downloadCastXML-ae9312119f768840cddfee22d0996266c7a06848.zip
CastXML-ae9312119f768840cddfee22d0996266c7a06848.tar.gz
CastXML-ae9312119f768840cddfee22d0996266c7a06848.tar.bz2
Detect: Add __STDCPP_DEFAULT_NEW_ALIGNMENT__ predefined VS macro
This macro is missing from the main MSVC predefined macro list but is documented by [1] and [2]. Also add `__STDCPP_STRICT_POINTER_SAFETY__` as documented by [2] in case MSVC ever starts defining it. [1] https://docs.microsoft.com/en-us/cpp/build/reference/zc-alignednew [2] https://en.cppreference.com/w/cpp/preprocessor/replace Fixes: #125
Diffstat (limited to 'test/cc-msvc.c')
-rw-r--r--test/cc-msvc.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/test/cc-msvc.c b/test/cc-msvc.c
index 45feff8..b20121e 100644
--- a/test/cc-msvc.c
+++ b/test/cc-msvc.c
@@ -6,14 +6,17 @@ int main(int argc, const char* argv[])
int cpp = 0;
const char* msc_ver = "1600";
const char* msvc_lang = 0;
+ const char* stdcpp_default_new_alignment = 0;
int i;
for (i = 1; i < argc; ++i) {
if (strncmp(argv[i], "--cc-define=", 12) == 0) {
fprintf(stdout, "\n#define %s 1", argv[i]+12);
} else if (strncmp(argv[i], "-msc=", 5) == 0) {
msc_ver = argv[i]+5;
- } else if (strncmp(argv[i], "-msvc_lang=", 8) == 0) {
+ } else if (strncmp(argv[i], "-msvc_lang=", 11) == 0) {
msvc_lang = argv[i]+11;
+ } else if (strncmp(argv[i], "-stdcpp_default_new_alignment=", 30) == 0) {
+ stdcpp_default_new_alignment = argv[i]+30;
} else if (strstr(argv[i], ".cpp")) {
cpp = 1;
}
@@ -34,6 +37,11 @@ int main(int argc, const char* argv[])
"#define _MSVC_LANG %s\n", msvc_lang
);
}
+ if(stdcpp_default_new_alignment) {
+ fprintf(stdout,
+ "#define __STDCPP_DEFAULT_NEW_ALIGNMENT__ %s\n",
+ stdcpp_default_new_alignment);
+ }
fprintf(stdout,
"#define __has_include(x) x\n"
"#define __has_include_next(x) x\n"