| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
MSVC permits declarations in these places as conforming extension (it is
a constraint violation otherwise).
This fixes PR28782.
llvm-svn: 277352
|
|
|
|
|
|
|
| |
For completeness, add a test-case for the equivalent stringize operator
diagnostic too.
llvm-svn: 265177
|
|
|
|
|
|
|
| |
The attribute '__declspec(noalias)' communicates that the function only
accesses memory pointed to by its pointer-typed arguments.
llvm-svn: 242728
|
|
|
|
|
|
|
|
|
|
|
|
| |
attribute blocks"
This reverts commit r239846 and r239879. They caused clang's
-fms-extensions behavior to incorrectly parse lambdas and includes a
testcase to ensure we don't regress again.
This issue was found in PR24027.
llvm-svn: 241668
|
|
|
|
|
|
| |
Address post-commit commit about the wording of the warning.
llvm-svn: 239879
|
|
|
|
|
|
|
|
|
|
|
| |
MS attributes do not permit empty attribute blocks. Correctly diagnose those.
We continue to parse to ensure that we recover correctly. Because the block is
empty, we do not need to skip any tokens.
Bonus: tweak the comment that I updated but forgot to remove the function name
in a previous commit.
llvm-svn: 239846
|
|
|
|
|
|
|
|
| |
Switch to using BalancedDelimiterTracker to get better diagnostics for
unbalanced delimiters. This still does not handle any of the attributes, simply
improves the parsing.
llvm-svn: 239758
|
|
|
|
|
|
|
|
|
|
|
|
| |
__declspec(align(...)) is unlike all other attributes in that it is not
applied to a variable if it appears before the class-key. If the
tag in question isn't part of a variable declaration, it is not ignored.
Instead, the alignment attribute is applied to the tag.
This fixes PR18024.
llvm-svn: 235272
|
|
|
|
|
|
|
|
|
|
| |
__declspec(restrict) and __attribute(malloc) are both handled
identically by clang: they are allowed to the noalias LLVM attribute.
Seeing as how noalias models the C99 notion of 'restrict', rename the
internal clang attribute to Restrict from Malloc.
llvm-svn: 228120
|
|
|
|
|
|
| |
MSVC parses and ignores these with a warning.
llvm-svn: 223413
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 212393
|
|
|
|
| |
llvm-svn: 212392
|
|
|
|
|
|
| |
post-commit review feedback. Amends r206186.
llvm-svn: 206229
|
|
|
|
|
|
|
|
|
|
| |
argument lists when the arguments are elided. eg)
__declspec(deprecated()) // error
__declspec(deprecated) // OK
__declspec(deprecated("")) // OK
llvm-svn: 206191
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
'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
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
Microsoft inline asm crashes on the hexagon bot for unknown reasons.
This reverts commit r193124.
llvm-svn: 193128
|
|
|
|
| |
llvm-svn: 193124
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
hookup. For more information about safebuffers, see MSDN: http://msdn.microsoft.com/en-us/library/dd778695(v=vs.110).aspx
llvm-svn: 181123
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
suggestion.
llvm-svn: 173367
|
|
|
|
|
|
| |
supported.
llvm-svn: 173177
|
|
|
|
|
|
|
|
| |
option. MS-style inline asm can now be enabled by either -fasm-blocks or
-fms-extensions.
rdar://12808010
llvm-svn: 169445
|
|
|
|
|
|
|
| |
-fasm-blocks flag, not the -fms-extensions flag.
rdar://12808010
llvm-svn: 169422
|
|
|
|
| |
llvm-svn: 163149
|
|
|
|
|
|
| |
Also a minor fix to __except printing in StmtPrinter.cpp. Thanks to Aaron Ballman for review.
llvm-svn: 163083
|
|
|
|
|
|
| |
just to account for us emitting notes more consistently.
llvm-svn: 161528
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
conflicts from a separate problematic patch.
llvm-svn: 158750
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
includes support for the align (which fixes PR12631).
llvm-svn: 158717
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
Microsoft mode, from Will Wilson!
llvm-svn: 156940
|
|
|
|
|
|
| |
really works.
llvm-svn: 152757
|
|
|
|
| |
llvm-svn: 151798
|
|
|
|
|
|
| |
on declarators written as types.
llvm-svn: 140931
|
|
|
|
|
|
| |
Patch by Chris Cudmore!
llvm-svn: 138533
|
|
|
|
| |
llvm-svn: 134869
|
|
|
|
|
|
|
| |
only a few lines of the file. Also set their properties to have explicitly
native eol sytle.
llvm-svn: 130124
|
|
|
|
|
|
| |
GUID.
llvm-svn: 122226
|
|
|
|
| |
llvm-svn: 122220
|
|
|
|
| |
llvm-svn: 122021
|
|
|
|
|
|
| |
skipped and not inserted into the AST for now.
llvm-svn: 116203
|
|
|
|
|
|
|
| |
__assume
__noop
llvm-svn: 116202
|
|
|
|
| |
llvm-svn: 115785
|
|
|
|
| |
llvm-svn: 115004
|