Hans Wennborg
15439bcf79
Disallow reinterpret_cast from pointer to bool on Windows
...
This became allowed by accident in r131201, but triggers an assert.
That patch added an exception to allow conversion from pointers to
narrow integral types for MSVC compatibility. However, a pointer can
already be converted to bool in a civilized manner; allowing conversion
via reinterpret_cast is a bad idea.
Fixes PR16222.
llvm-svn: 183394
2013-06-06 09:16:36 +00:00
Aaron Ballman
317a77f1c7
Adding in parsing and the start of semantic support for __sptr and __uptr pointer type qualifiers. This patch also fixes the correlated __ptr32 and __ptr64 pointer qualifiers so that they are truly type attributes instead of declaration attributes.
...
For more information about __sptr and __uptr, see MSDN: http://msdn.microsoft.com/en-us/library/aa983399.aspx
Patch reviewed by Richard Smith.
llvm-svn: 182535
2013-05-22 23:25:32 +00:00
Eli Friedman
971bfa11c6
Unify the codepaths for emitting deprecation warnings. The test changes are just to account for us emitting notes more consistently.
...
llvm-svn: 161528
2012-08-08 21:52:41 +00:00
Aaron Ballman
478faed4b0
Reapplying the changes from r158717 as they were rolled back to avoid merge conflicts from a separate problematic patch.
...
llvm-svn: 158750
2012-06-19 22:09:27 +00:00
Jakob Stoklund Olesen
e1c0ae6fda
Revert r158700 and dependent patches r158716, r158717, and r158731.
...
The original r158700 caused crashes in the gcc test suite,
g++.abi/vtable3a.C among others. It also caused failures in the libc++
test suite.
llvm-svn: 158749
2012-06-19 21:48:43 +00:00
Aaron Ballman
38c9ad9e72
Improves parsing and semantic analysis for MS __declspec attributes. This includes support for the align (which fixes PR12631).
...
llvm-svn: 158717
2012-06-19 13:49:26 +00:00
Fariborz Jahanian
08a1eb77c5
with -Wdeprecated, include a note to its deprecated declaration
...
location. // rdar://10893232
llvm-svn: 155385
2012-04-23 20:30:52 +00:00
Aaron Ballman
96e7c09cad
Turned on support for __declspec(deprecated) in MS compatibility mode.
...
llvm-svn: 151225
2012-02-23 01:19:31 +00:00
Eli Friedman
59e41d046e
Shift Microsoft enum extensions from -fms-extensions to -fms-compatibility, so -fms-extensions doesn't affect enum semantics in incompatible ways. <rdar://problem/10657186>.
...
llvm-svn: 150663
2012-02-16 05:20:44 +00:00
Nico Weber
f8bb3de488
Fix crash on invalid in microsoft anonymous struct extension.
...
Fixes PR11847. Patch from Jason Haslam!
llvm-svn: 149460
2012-02-01 00:41:00 +00:00
Francois Pichet
6f7289d9c5
Add a Microsoft C test following r131201.
...
llvm-svn: 131202
2011-05-11 22:28:19 +00:00
Douglas Gregor
996a735b88
We need a longer long when testing this pathe Microsoft fixed-underlying-type extension for enumeration types
...
llvm-svn: 126250
2011-02-22 21:42:31 +00:00
Douglas Gregor
a1aec29a2d
Enable enumeration types with a fixed underlying type, e.g.,
...
enum X : long { Value = 0x100000000 };
when in Microsoft-extension mode (-fms-extensions). This (now C++0x)
feature has been supported since Microsoft Visual Studio .NET 2003.
llvm-svn: 126243
2011-02-22 20:32:04 +00:00
Francois Pichet
0c71f6c5d3
Microsoft C anonymous struct implementation.
...
Documentation: http://msdn.microsoft.com/en-us/library/z2cx9y4f.aspx
llvm-svn: 120000
2010-11-23 06:07:27 +00:00
Francois Pichet
a310806ae5
Microsoft enum extensions. 2 things will change on -fms-extensions:
...
1. enum underlying type is int by default.
2. Error "enumerator value is not representable in the underlying type"is a ExtWarning
llvm-svn: 116704
2010-10-18 15:01:13 +00:00
Chandler Carruth
a64aedb34b
Remove hard CRLF end-of-line markers from two files. These should be added
...
automatically when syncing due to the auto-props selecting svn:eol-style of
'native'.
llvm-svn: 115758
2010-10-06 06:50:05 +00:00
Francois Pichet
f657b639fd
Microsoft's flexible array rules relaxation:
...
- in union
- as the only element of a struct/class.
llvm-svn: 113909
2010-09-15 00:14:08 +00:00