Unbreak -fms-extensions with GNU libc headers
GNU libc uses '__uptr' as a member name in C mode, conflicting with the
eponymous MSVC pointer modifier keyword.
Detect and mark the token as an identifier when these specific conditions are
met. __uptr will continue to work as a keyword for the remainder of the
translation unit.
Fixes PR17824.
llvm-svn: 195710
diff --git a/clang/test/Sema/Inputs/ms-keyword-system-header.h b/clang/test/Sema/Inputs/ms-keyword-system-header.h
new file mode 100644
index 0000000..13cfe3a
--- /dev/null
+++ b/clang/test/Sema/Inputs/ms-keyword-system-header.h
@@ -0,0 +1,6 @@
+/* "System header" for testing GNU libc keyword conflict workarounds */
+
+typedef union {
+ union w *__uptr;
+ int *__iptr;
+} WS __attribute__((__transparent_union__));