Benjamin Kramer
e56f393249
Mass rename C1x references to C11. The name hasn't proliferated like "C++0x" so this patch is surprisingly small.
...
Also drop -Wc1x-extensions in favor of -Wc11-extensions. I don't think we need to keep this around for compatibility.
llvm-svn: 147221
2011-12-23 17:00:35 +00:00
DeLesley Hutchins
36f5d8518b
Allow empty argument lists in thread safety attributes
...
llvm-svn: 146580
2011-12-14 19:36:06 +00:00
Fariborz Jahanian
88d510da9d
Add ability to supply additional message to availability macros,
...
// rdar://10095131
llvm-svn: 146304
2011-12-10 00:28:41 +00:00
Fariborz Jahanian
329b351807
deprecated enum should not warn when used initializing another deprecated enumerator.
...
// rdar://10535640
llvm-svn: 146218
2011-12-09 01:15:54 +00:00
David Blaikie
15a430a368
Support decltype in nested-name-specifiers.
...
llvm-svn: 145785
2011-12-04 05:04:18 +00:00
Richard Smith
b3041feaf7
Revert most of r145372 for now. Lookahead beyond the ';' in a function
...
declaration tickles a bug in the way we handle visibility pragmas.
The improvement to error recovery for template function definitions declared
with the 'typedef' specifier in r145372 is unrelated and not reverted here.
llvm-svn: 145541
2011-11-30 23:45:35 +00:00
Richard Smith
675ea99a2a
PR10101: Recover better from a common copy-paste error: if a function
...
declaration at namespace scope is followed by a semicolon and an open-brace
(or in C++, a 'try', ':' or '='), then the error is probably a function
definition with a spurious ';', rather than a mysterious '{'.
llvm-svn: 145372
2011-11-29 05:27:40 +00:00
Douglas Gregor
df593fbeda
Tighten up the conditions under which we consider ourselves to be
...
entering the context of a nested-name-specifier. Fixes
<rdar://problem/10397846>.
llvm-svn: 143967
2011-11-07 17:33:42 +00:00
Peter Collingbourne
ccbcce0219
Simplify parsing ellipsis in Parser::ParseAlignArgument, spotted by Doug.
...
llvm-svn: 142814
2011-10-24 17:56:00 +00:00
Peter Collingbourne
7d33cd3a2f
Fix grammar for C++11 alignment specifiers, and add a few FIXMEs.
...
llvm-svn: 142760
2011-10-23 20:07:52 +00:00
Richard Smith
09f76ee63c
Improve the diagnostic when a comma ends up at the end of a declarator group
...
instead of a semicolon (as sometimes happens during refactorings). When such a
comma is seen at the end of a line, and is followed by something which can't
possibly be a declarator (or even something which might be a plausible typo for
a declarator), suggest that a semicolon was intended.
llvm-svn: 142544
2011-10-19 21:33:05 +00:00
Douglas Gregor
e248eea214
Improve the warning for cv-qualifiers on free functions, from Ahmed Charles!
...
llvm-svn: 142478
2011-10-19 06:04:55 +00:00
Fariborz Jahanian
7f73302b4f
objc: allow class name qualified with protocols in
...
iboutletcollection attribute. But ignore protocol
list. // rdar://10296078
llvm-svn: 142459
2011-10-18 23:13:50 +00:00
Fariborz Jahanian
6b70865ec0
objc: diagnose invalid argument to an
...
iboutletcollection attribute intead of crashing.
// rdar://10296078
llvm-svn: 142364
2011-10-18 17:11:10 +00:00
Richard Smith
b12bf69769
Refactor __attribute__ parsing, and add a diagnostic if the r_paren at the end
...
of an attrib is missing. gcc does not allow the closing parenthesis to be omitted.
llvm-svn: 142255
2011-10-17 21:20:17 +00:00
Richard Smith
5d164bc5e0
Implement -Wc++98-compat warnings for the parser.
...
llvm-svn: 142056
2011-10-15 05:09:34 +00:00
Anton Korobeynikov
f0c267e6e0
Provide half floating point support as a storage only type.
...
Lack of half FP was a regression compared to llvm-gcc.
llvm-svn: 142016
2011-10-14 23:23:15 +00:00
Douglas Gregor
e7a8e3b612
Introduce BalancedDelimiterTracker, to better track open/close
...
delimiter pairs and detect when we exceed the implementation limit for
nesting depth, from Aaron Ballman!
llvm-svn: 141782
2011-10-12 16:37:45 +00:00
Kaelyn Uhrain
85308c6ecd
Add typo correction for type names.
...
The main motivation was to do typo correction in C++ "new" statements,
though picking it up in other places where type names are expected was
pretty much a freebie.
llvm-svn: 141621
2011-10-11 01:02:41 +00:00
Eli Friedman
0dfb889575
Support for C1x _Atomic specifier (see testcase). This is primarily being committed at the moment to help support C++0x <atomic>, but it should be a solid base for implementing the full specification of C1x _Atomic.
...
Thanks to Jeffrey Yasskin for the thorough review!
llvm-svn: 141330
2011-10-06 23:00:33 +00:00
Peter Collingbourne
485b80fecc
OpenCL: add a non-standard extension, cl_clang_storage_class_specifiers,
...
which enables support for C99 storage-class specifiers.
This extension is intended to be used by implementations to implement
OpenCL C built-in functions.
llvm-svn: 141271
2011-10-06 03:01:00 +00:00
John McCall
a55902bf98
Parse attributes written in an ObjC method parameter type as
...
attributes on the parameter declaration.
llvm-svn: 140944
2011-10-01 09:56:14 +00:00
Peter Collingbourne
2f3cf4b158
Add support for alignment-specifiers in C1X and C++11, remove
...
support for the C++0x draft [[align]] attribute and add the C1X
standard header file stdalign.h
llvm-svn: 140796
2011-09-29 18:04:28 +00:00
Peter Collingbourne
70188b3fc2
Add support for parsing the optional attribute-specifier-seq at the
...
end of a decl-specifier-seq
llvm-svn: 140793
2011-09-29 18:03:57 +00:00
David Blaikie
751c558d8e
ArrayRef-ifying the fields passed to Sema::ActOnFields
...
llvm-svn: 140293
2011-09-22 02:58:26 +00:00
Francois Pichet
0706d203cf
Rename LangOptions::Microsoft to LangOptions::MicrosoftExt to make it clear that this flag must be used only for Microsoft extensions and not emulation; to avoid confusion with the new LangOptions::MicrosoftMode flag.
...
Many of the code now under LangOptions::MicrosoftExt will eventually be moved under the LangOptions::MicrosoftMode flag.
llvm-svn: 139987
2011-09-17 17:15:52 +00:00
Argyrios Kyrtzidis
635a9b4dcf
Record the full source range of an attribute.
...
llvm-svn: 139599
2011-09-13 16:05:53 +00:00
Douglas Gregor
2820e6923a
__module_private__ is inherited by redeclarations of an entity, and
...
must also be present of the first declaration of that entity.
llvm-svn: 139384
2011-09-09 19:05:14 +00:00
Douglas Gregor
26701a4371
Modules: introduce the __module_private__ declaration specifier, which
...
indicates that a declaration is only visible within the module it is
declared in.
llvm-svn: 139348
2011-09-09 02:06:17 +00:00
Caitlin Sadowski
990d571226
Thread safety: added support for function scopes in attribute arguments.
...
This patch was written by DeLesley Hutchins.
llvm-svn: 139302
2011-09-08 17:42:31 +00:00
Caitlin Sadowski
9385dd7415
Thread Safety: Patch to implement delayed parsing of attributes within a
...
class scope.
This patch was also written by DeLesley Hutchins.
llvm-svn: 139301
2011-09-08 17:42:22 +00:00
Douglas Gregor
8b7d403684
Allow C++0x enumerations with a fixed underlying type in
...
Objective-C. The @encode'ing of such an enumeration type is the same
as its underlying type. <rdar://problem/5276348>.
llvm-svn: 139297
2011-09-08 17:18:35 +00:00
Richard Smith
5065864151
PR10458: Last part of providing 'auto' type specifier as an extension in C++98: permit it within type-ids.
...
llvm-svn: 139103
2011-09-04 20:24:20 +00:00
Richard Smith
58c7433709
PR10458: Finesse behaviour of C++0x features when in pre-0x mode. Accept for-range and auto with an ExtWarn, and produce a -Wc++0x-compat warning in C++98 mode when auto is used as a storage class.
...
llvm-svn: 139102
2011-09-04 19:54:14 +00:00
Argyrios Kyrtzidis
5cec2aea3f
Support code-completion for C++ inline methods and ObjC buffering methods.
...
Previously we would cut off the source file buffer at the code-completion
point; this impeded code-completion inside C++ inline methods and,
recently, with buffering ObjC methods.
Have the code-completion inserted into the source buffer so that it can
be buffered along with a method body. When we actually hit the code-completion
point the cut-off lexing or parsing.
Fixes rdar://10056932&8319466
llvm-svn: 139086
2011-09-04 03:32:15 +00:00
Fariborz Jahanian
59b75285f6
objc - fixes a regression in declaring c decls nested in
...
objective-c containers due to recent changes to objc decl
contexts. // rdar://10041908
llvm-svn: 138803
2011-08-30 17:10:52 +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
Fariborz Jahanian
8d382dc781
Restore patch I reversed in r138040. Known buildbot
...
failures are resolved.
llvm-svn: 138234
2011-08-22 15:54:49 +00:00
Fariborz Jahanian
9a3b269ea1
Revers r138040. Need to look at a few buildbot failures.
...
llvm-svn: 138049
2011-08-19 18:02:47 +00:00
Fariborz Jahanian
d6d866d6fa
objective-c: Bring objective-c handling of decl context
...
to modernity. Instead of passing down individual
context objects from parser to sema, establish decl
context in parser and have sema access current context
as needed. I still need to take of Doug's comment for
minor cleanups.
llvm-svn: 138040
2011-08-19 16:06:57 +00:00
Francois Pichet
17ed020569
Add support for MSVC __unaligned attribute. Necessary to parse MSVC headers in 64-bit mode (ie: when _M_IA64 or _M_AMD64 is defined)
...
more info: http://msdn.microsoft.com/en-us/library/ms177389.aspx
llvm-svn: 137935
2011-08-18 09:59:55 +00:00
Caitlin Sadowski
4b1e8399c2
Thread Safety: Added basic argument parsing for all new attributes.
...
This patch special cases the parser for thread safety attributes so that all
attribute arguments are put in the argument list (instead of a special
parameter) since arguments may not otherwise resolve correctly without two-token
lookahead.
This patch also adds checks to make sure that attribute arguments are
lockable objects.
llvm-svn: 137130
2011-08-09 17:59:31 +00:00
Douglas Gregor
db0b9f1264
Parsing of C++0x lambda expressions, from John Freeman with help from
...
David Blaikie!
llvm-svn: 136876
2011-08-04 15:30:47 +00:00
Chris Lattner
0e62c1cc0b
remove unneeded llvm:: namespace qualifiers on some core types now that LLVM.h imports
...
them into the clang namespace.
llvm-svn: 135852
2011-07-23 10:55:15 +00:00
Douglas Gregor
ad69e65a39
Add 'mutable' to the function declarator chunk, to be used when
...
parsing lambda expressions, from John Freeman!
llvm-svn: 135090
2011-07-13 21:47:47 +00:00
John McCall
cb432faf6d
Properly protect colons when parsing a nested-name-specifier as part
...
of an enum specifier in dialects which permit fixed underlying types.
Fixes the rejects-valid part of PR10264.
llvm-svn: 134468
2011-07-06 05:58:41 +00:00
Douglas Gregor
9e66af44ad
Clean up and refactor ParseFunctionDeclarator to reduce code
...
repetition and better reflect the actual grammar, from John Freeman!
llvm-svn: 134417
2011-07-05 16:44:18 +00:00
Richard Smith
cd1c055528
Fix AST representations of alias-declarations which define tag types. Inside classes, the tag types need to have an associated access specifier, and inside function definitions, they need to be included in the declarations of the DeclStmt. These issues manifested as assertions during template instantiation, and also in a WIP constexpr patch.
...
llvm-svn: 134250
2011-07-01 19:46:12 +00:00
Argyrios Kyrtzidis
c0c5dd2651
Introduce DelayedCleanupPool useful for simplifying clean-up of certain resources that, while their
...
lifetime is well-known and restricted, cleaning them up manually is easy to miss and cause a leak.
Use it to plug the leaking of TemplateIdAnnotation objects. rdar://9634138.
llvm-svn: 133610
2011-06-22 06:09:49 +00:00
Francois Pichet
e878cb6bd1
Handle decltype keyword in Parser::isDeclarationSpecifier.
...
Fixes PR10154. Found by parsing MFC 2010 code with clang.
llvm-svn: 133380
2011-06-19 08:02:06 +00:00