r203714 - MS intrinsics: don't declare __readeflags and __writeeflags in Intrin.h
Hans Wennborg
hans at hanshq.net
Wed Mar 12 14:09:03 PDT 2014
Author: hans
Date: Wed Mar 12 16:09:03 2014
New Revision: 203714
URL: http://llvm.org/viewvc/llvm-project?rev=203714&view=rev
Log:
MS intrinsics: don't declare __readeflags and __writeeflags in Intrin.h
They're already defined in ia32intrin.h, and this would cause including Intrin.h
in 64-bit mode to fail because of conflicting types. Update ms-intrin.cpp to
also run in 64-bit mode to catch things like this.
Modified:
cfe/trunk/lib/Headers/Intrin.h
cfe/trunk/test/Headers/ms-intrin.cpp
Modified: cfe/trunk/lib/Headers/Intrin.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Headers/Intrin.h?rev=203714&r1=203713&r2=203714&view=diff
==============================================================================
--- cfe/trunk/lib/Headers/Intrin.h (original)
+++ cfe/trunk/lib/Headers/Intrin.h Wed Mar 12 16:09:03 2014
@@ -106,7 +106,6 @@ unsigned long __readcr3(void);
unsigned long __readcr4(void);
unsigned long __readcr8(void);
unsigned int __readdr(unsigned int);
-unsigned int __readeflags(void);
#ifdef __i386__
static __inline__
unsigned char __readfsbyte(unsigned long);
@@ -142,7 +141,6 @@ void __writecr3(unsigned int);
void __writecr4(unsigned int);
void __writecr8(unsigned int);
void __writedr(unsigned int, unsigned int);
-void __writeeflags(unsigned int);
void __writefsbyte(unsigned long, unsigned char);
void __writefsdword(unsigned long, unsigned long);
void __writefsqword(unsigned long, unsigned __int64);
Modified: cfe/trunk/test/Headers/ms-intrin.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Headers/ms-intrin.cpp?rev=203714&r1=203713&r2=203714&view=diff
==============================================================================
--- cfe/trunk/test/Headers/ms-intrin.cpp (original)
+++ cfe/trunk/test/Headers/ms-intrin.cpp Wed Mar 12 16:09:03 2014
@@ -3,6 +3,11 @@
// RUN: -ffreestanding -fsyntax-only -Werror \
// RUN: -isystem %S/Inputs/include %s
+// RUN: %clang_cc1 -triple x86_64-pc-win32 \
+// RUN: -fms-extensions -fms-compatibility -fmsc-version=1700 \
+// RUN: -ffreestanding -fsyntax-only -Werror \
+// RUN: -isystem %S/Inputs/include %s
+
// Intrin.h needs size_t, but -ffreestanding prevents us from getting it from
// stddef.h. Work around it with this typedef.
typedef __SIZE_TYPE__ size_t;
More information about the cfe-commits
mailing list