Aaron Ballman
1c8a5d75f1
The MicrosoftExtensions.c test file should not rely on -x objective-c++. Removed that from the RUN line, fixed obvious C++isms in the code, and moved some C++ tests into MicrosoftExtensions.cpp instead. As a drive-by, changed the line endings for MicrosoftExtensions.c to be LF instead of CRLF.
...
llvm-svn: 212417
2014-07-06 20:04:10 +00:00
Ehsan Akhgari
7e36a19b20
Move InterlockedBitTestAndSet into its own test file
...
Summary:
This gives us back the test coverage we lost when I made
MicrosoftExtensions.c x86-only.
Reviewers: majnemer
Subscribers: cfe-commits
Differential Revision: http://reviews.llvm.org/D4401
llvm-svn: 212414
2014-07-06 18:45:44 +00:00
Ehsan Akhgari
d2c3ba6fbe
Fix the MicrosoftExtensions.c target
...
llvm-svn: 212393
2014-07-06 05:58:55 +00:00
Ehsan Akhgari
d1e8abb1fb
Enable the InterlockedBitTestAndSet test
...
llvm-svn: 212392
2014-07-06 05:50:19 +00:00
Aaron Ballman
ef5d94caf0
Fixing a typo, updating the diagnostic wording and logic based on post-commit review feedback. Amends r206186.
...
llvm-svn: 206229
2014-04-15 00:36:39 +00:00
Aaron Ballman
95d570335c
Properly diagnose Microsoft __declspec attributes which have optional argument lists when the arguments are elided. eg)
...
__declspec(deprecated()) // error
__declspec(deprecated) // OK
__declspec(deprecated("")) // OK
llvm-svn: 206191
2014-04-14 16:44:26 +00:00
Aaron Ballman
fdd783a501
Unify __declspec attribute argument parsing with the common attribute argument parsing code.
...
This removes a diagnostic that is no longer required (the semantic engine now properly handles attribute syntax so __declspec and __attribute__ spellings no longer get mismatched). This caused several testcases to need updating for a slightly different wording.
llvm-svn: 205234
2014-03-31 18:18:43 +00:00
Ted Kremenek
b79ee57080
Implemented delayed processing of 'unavailable' checking, just like with 'deprecated'.
...
Fixes <rdar://problem/15584219> and <rdar://problem/12241361>.
This change looks large, but all it does is reuse and consolidate
the delayed diagnostic logic for deprecation warnings with unavailability
warnings. By doing so, it showed various inconsistencies between the
diagnostics, which were close, but not consistent. It also revealed
some missing "note:"'s in the deprecated diagnostics that were showing
up in the unavailable diagnostics, etc.
This change also changes the wording of the core deprecation diagnostics.
Instead of saying "function has been explicitly marked deprecated"
we now saw "'X' has been been explicitly marked deprecated". It
turns out providing a bit more context is useful, and often we
got the actual term wrong or it was not very precise
(e.g., "function" instead of "destructor"). By just saying the name
of the thing that is deprecated/deleted/unavailable we define
this issue away. This diagnostic can likely be further wordsmithed
to be shorter.
llvm-svn: 197627
2013-12-18 23:30:06 +00:00
Serge Pavlov
750db65bac
Warn on duplicate function specifier
...
This patch fixes PR8264. Duplicate qualifiers already are diagnozed,
now the same diagnostics is issued for duplicate function specifiers.
Differential Revision: http://llvm-reviews.chandlerc.com/D2025
llvm-svn: 194559
2013-11-13 06:57:53 +00:00
Reid Kleckner
3dd88b9140
Revert "Re-enable passing MS inline asm test."
...
Microsoft inline asm crashes on the hexagon bot for unknown reasons.
This reverts commit r193124.
llvm-svn: 193128
2013-10-21 22:56:09 +00:00
Reid Kleckner
c53738a025
Re-enable passing MS inline asm test.
...
llvm-svn: 193124
2013-10-21 22:30:53 +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
Aaron Ballman
444eb6e23c
Properly parsing __declspec(safebuffers), though there is no semantic hookup. For more information about safebuffers, see MSDN: http://msdn.microsoft.com/en-us/library/dd778695(v=vs.110).aspx
...
llvm-svn: 181123
2013-05-04 16:58:37 +00:00
Richard Smith
810ad3eb44
Downgrade 'attribute ignored when parsing type' from error to warning, to match
...
the diagnostic's warn_ name. Switch some places (notably C++11 attributes)
which really wanted an error over to a different diagnostic. Finally, suppress
the diagnostic entirely for __ptr32, __ptr64 and __w64, to avoid producing
diagnostics in important system headers.
llvm-svn: 173788
2013-01-29 10:02:16 +00:00
Chad Rosier
879edcd1a4
Fail these tests in a way that doesn't cause unexpected successes, per Daniel's
...
suggestion.
llvm-svn: 173367
2013-01-24 20:46:39 +00:00
Chad Rosier
33a6e11c21
[ms-inline asm] Remove a warning about ms-style inline assembly not being
...
supported.
llvm-svn: 173177
2013-01-22 18:18:22 +00:00
Chad Rosier
636386753a
[driver, ms-inline asm] Have -fms-extensions enable the AsmBlocks language
...
option. MS-style inline asm can now be enabled by either -fasm-blocks or
-fms-extensions.
rdar://12808010
llvm-svn: 169445
2012-12-05 23:08:09 +00:00
Chad Rosier
c8e56e8931
[driver, ms-inline asm] MS-Style inline assembly is controlled by the
...
-fasm-blocks flag, not the -fms-extensions flag.
rdar://12808010
llvm-svn: 169422
2012-12-05 21:08:21 +00:00
Joao Matos
566359c0bf
Revert r163083 per chandlerc's request.
...
llvm-svn: 163149
2012-09-04 17:49:35 +00:00
Joao Matos
c32a7e4d8e
Implemented parsing and AST support for the MS __leave exception statement. Also a minor fix to __except printing in StmtPrinter.cpp. Thanks to Aaron Ballman for review.
...
llvm-svn: 163083
2012-09-02 03:45:41 +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
Chad Rosier
43b7c021b3
[ms-style asm] Change the fatal error to an extension warning. Apparently, this
...
error was asserting on anything that included Windows.h. MS-style inline asm is
still dropped, but at least now we're not completely silent about it.
llvm-svn: 158833
2012-06-20 18:28:37 +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
John McCall
8d32c05ed4
Recognize the MS inheritance attributes and turn them into attributes
...
on the RecordDecl. Persist the MS portability type attributes and
ignore them in Sema rather than the parser.
Patch by João Matos!
llvm-svn: 157288
2012-05-22 21:28:12 +00:00
Douglas Gregor
6cda0715c3
Add _alignof and __builtin_alignof as aliases for __alignof in
...
Microsoft mode, from Will Wilson!
llvm-svn: 156940
2012-05-16 20:04:05 +00:00
Aaron Ballman
c42d838d9f
Adding some more specific tests for enum declspec parsing, to prove that it really works.
...
llvm-svn: 152757
2012-03-15 00:20:05 +00:00
Aaron Ballman
9ecff02a45
Added support for parsing declspecs on enumerations. Fixes PR8783
...
llvm-svn: 151798
2012-03-01 04:09:28 +00:00
John McCall
42856de542
Hey, maybe we shouldn't silently ignore decl attributes
...
on declarators written as types.
llvm-svn: 140931
2011-10-01 05:17:03 +00:00
Francois Pichet
f2fb411d4a
Add support for Microsoft __ptr32 keyword.
...
Patch by Chris Cudmore!
llvm-svn: 138533
2011-08-25 00:36:46 +00:00
Francois Pichet
4ad2a27065
Change __debugbreak signature to void __debugbreak(void); MSVC compatibility.
...
llvm-svn: 134869
2011-07-10 14:15:07 +00:00
Chandler Carruth
bc0f9aeac3
Remove some more hard CR-LF lines. These were particularly weird as they were
...
only a few lines of the file. Also set their properties to have explicitly
native eol sytle.
llvm-svn: 130124
2011-04-25 07:09:43 +00:00
Francois Pichet
9dddd40a1c
Emit an error if operator __uuidof() is called on a type with no associated GUID.
...
llvm-svn: 122226
2010-12-20 03:51:03 +00:00
Francois Pichet
7da1166da0
Validate Microsoft's uuid attribute string.
...
llvm-svn: 122220
2010-12-20 01:41:49 +00:00
Francois Pichet
4f64c5aa70
Microsoft's __uuidof operator returns a lvalue.
...
llvm-svn: 122021
2010-12-17 02:00:06 +00:00
Francois Pichet
c2bc5ac149
Add parsing support for Microsoft attributes. MS attributes will just be skipped and not inserted into the AST for now.
...
llvm-svn: 116203
2010-10-11 12:59:39 +00:00
Francois Pichet
d61f192b1a
Add 2 Microsoft compiler intrinsics that don't require prototypes:
...
__assume
__noop
llvm-svn: 116202
2010-10-11 12:00:10 +00:00
Francois Pichet
f804a97d4f
_inline is an alias for inline in MSVC.
...
llvm-svn: 115785
2010-10-06 13:02:48 +00:00
Chris Lattner
d7821e4ec4
enhance tentative parsing to handle ms extensions, patch by Martin Vejnar!
...
llvm-svn: 115004
2010-09-28 23:35:09 +00:00
Francois Pichet
9f4f2078d6
Microsoft's __uuidof operator implementation part 1.
...
llvm-svn: 113356
2010-09-08 12:20:18 +00:00
John McCall
0f8ccc4938
Allow multiple __declspec attributes after a class-key.
...
Patch by Francois Pichet!
llvm-svn: 110344
2010-08-05 17:13:11 +00:00
Douglas Gregor
3a8e0d7d57
Revert Microsoft-specific override of the "typedef requires a name"
...
diagnostic. Instead, put it and the "declaration does not declare
anything" warning into -Wmissing-declarations.
llvm-svn: 108527
2010-07-16 15:40:40 +00:00
Douglas Gregor
5692680e0e
Suppress the "typedef requires a name" warning in Microsoft-extensions mode
...
llvm-svn: 108526
2010-07-16 15:18:19 +00:00
Charles Davis
163855f46d
dllimport and dllexport are declspec attributes, too. They're also
...
Win32-specific.
Also, fix a test to use FileCheck instead of grepping LLVM IR.
llvm-svn: 96364
2010-02-16 18:27:26 +00:00
Chris Lattner
3859c74b32
fix the microsoft "charify" extension to return the charified token
...
as a character literal, not a string literal. This might fix
rdar://7486575
llvm-svn: 92025
2009-12-23 19:15:27 +00:00
Daniel Dunbar
8fbe78f6fc
Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'.
...
- This is designed to make it obvious that %clang_cc1 is a "test variable"
which is substituted. It is '%clang_cc1' instead of '%clang -cc1' because it
can be useful to redefine what gets run as 'clang -cc1' (for example, to set
a default target).
llvm-svn: 91446
2009-12-15 20:14:24 +00:00
Daniel Dunbar
f4a72b06c2
Use '-x' 'foo' instead of '-x=foo'.
...
llvm-svn: 90069
2009-11-29 09:32:31 +00:00
Mike Stump
11289f4280
Remove tabs, and whitespace cleanups.
...
llvm-svn: 81346
2009-09-09 15:08:12 +00:00
Mike Stump
753d120975
Prep for new warning.
...
llvm-svn: 76709
2009-07-22 00:43:08 +00:00