5354e77e60e82828c7c2361f5c688c2667ab59cc |
|
24-Aug-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Now that ASTMultiPtr is nothing more than a array reference, make it a MutableArrayRef. This required changing all get() calls to data() and using the simpler constructors. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162501 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
3fe198bf0d6118c7b080c17c3bb28d7c84e458b9 |
|
23-Aug-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Rip out remnants of move semantic emulation and smart pointers in Sema. These were nops for quite a while and only lead to confusion. ASTMultiPtr now behaves like a proper dumb array reference. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162475 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
0963017dcbc32176c79a251c3ab23bc35ac784e5 |
|
28-Jun-2012 |
Douglas Gregor <dgregor@apple.com> |
Support the use of "=delete" and "=default" with delayed template parsing. Fixes <rdar://problem/11700604>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159380 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
ca5233044ef679840d1ad1c46a36b16e2ee8a6e1 |
|
10-Jun-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
PR13064: Store whether an in-class initializer uses direct or copy initialization, and use that information to produce the right kind of initialization during template instantiation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158288 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
268efba18e171d47e847ccdf313498905c32acfa |
|
17-May-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
CXXThisScopeRAII objects aren't free, don't compute one if it's unused. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156987 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
9257664568bf375b7790131a84d9a4fa30a5b7e3 |
|
07-May-2012 |
John McCall <rjmccall@apple.com> |
Refactor DelayedDiagnostics so that it keeps diagnostics in separate pools owned by the RAII objects that keep pushing decl state. This gives us quite a bit more flexibility. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156289 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
a058fd4f0a944174295f77169b438510dad389f8 |
|
03-May-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Revert most of r154844, which was disabled in r155975. Keep around the refactorings in that revision, and some of the subsequent bugfixes, which seem to be relevant even without delayed exception specification parsing. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156031 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
74e2fc332e07c76d4e69ccbd0e9e47a0bafd3908 |
|
16-Apr-2012 |
Douglas Gregor <dgregor@apple.com> |
Implement the last part of C++ [class.mem]p2, delaying the parsing of exception specifications on member functions until after the closing '}' for the containing class. This allows, for example, a member function to throw an instance of its own class. Fixes PR12564 and a fairly embarassing oversight in our C++98/03 support. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154844 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
cefc3afac14d29de5aba7810cc8fe6c858949e9d |
|
16-Apr-2012 |
Douglas Gregor <dgregor@apple.com> |
Implement C++11 [expr.prim.general]p3, which permits the use of 'this' in the declaration of a non-static member function after the (optional) cv-qualifier-seq, which in practice means in the exception specification and late-specified return type. The new scheme here used to manage 'this' outside of a member function scope is more general than the Scope-based mechanism previously used for non-static data member initializers and late-parsesd attributes, because it can also handle the cv-qualifiers on the member function. Note, however, that a separate pass is required for static member functions to determine whether 'this' was used, because we might not know that we have a static function until after declaration matching. Finally, this introduces name mangling for 'this' and for the implicit 'this', which is intended to match GCC's mangling. Independent verification for the new mangling test case would be appreciated. Fixes PR10036 and PR12450. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154799 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
ca8937111cccdbf7d17c349487a332d6c7c97f91 |
|
20-Mar-2012 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Fix the other place where C++98 work for initializer lists was necessary. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153129 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
84407ba82a10235962901ce269b7b3276d17f01d |
|
14-Mar-2012 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Parse brace initializers as default arguments. PR12236. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152721 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
4e4d08403ca5cfd4d558fa2936215d3a4e5a528d |
|
11-Mar-2012 |
David Blaikie <dblaikie@gmail.com> |
Unify naming of LangOptions variable/get function across the Clang stack (Lex to AST). The member variable is always "LangOpts" and the member function is always "getLangOpts". Reviewed by Chris Lattner git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152536 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
d78ef5b941ce2937228b010e8443f92025f9d683 |
|
08-Mar-2012 |
Douglas Gregor <dgregor@apple.com> |
Streamline BalancedDelimiterTracker, by eliminating the duplicate paren/brace/bracket tracking (the Consume* functions already did it), removing the use of ConsumeAnyToken(), and moving the hot paths inline with the error paths out-of-line. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152274 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
e9ee382c32a83e9807a2fe4cfd52b5a11169a4b8 |
|
22-Feb-2012 |
Eli Friedman <eli.friedman@gmail.com> |
Improve diagnostics a bit for bad member initializers, and fix an obscure bug involving packs. Fixes PR12049. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151130 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
552e29985a710f4ced62b39d70557501bd31ca9b |
|
21-Feb-2012 |
Douglas Gregor <dgregor@apple.com> |
Implement name mangling for lambda expressions that occur within the initializers of data members (both static and non-static). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151017 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
ccc1b5eebc6ca8a904c58c0468b9a71483b7c7cf |
|
21-Feb-2012 |
Douglas Gregor <dgregor@apple.com> |
Implement name mangling for lambda expressions that occur within the default arguments of function parameters. This simple-sounding task is complicated greatly by two issues: (1) Default arguments aren't actually a real context, so we need to maintain extra state within lambda expressions to track when a lambda was actually in a default argument. (2) At the time that we parse a default argument, the FunctionDecl doesn't exist yet, so lambda closure types end up in the enclosing context. It's not clear that we ever want to change that, so instead we introduce the notion of the "effective" context of a declaration for the purposes of name mangling. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151011 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
d7c56e1114bfe7d461786903bb720d2c6efc05a1 |
|
29-Dec-2011 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Change the diagnostics which said 'accepted as an extension' to instead say 'is an extension'. The former is inappropriate and confusing when building with -Werror/-pedantic-errors. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147357 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
e1fca502e7f1349e9b4520a4ca9a02413bcf2b14 |
|
08-Dec-2011 |
Francois Pichet <pichet2000@gmail.com> |
Remove unused parameter from the LateParsedTemplatedFunction constructor. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146145 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
9d38dbc9a16017fff3e34b7876a6590413a7d56b |
|
19-Nov-2011 |
Francois Pichet <pichet2000@gmail.com> |
Enable delayed template parsing for friend functions declared at template class scope. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144980 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
c430ef4f92eedea7d3378f05a2b05982ed3713dc |
|
10-Nov-2011 |
Richard Smith <richard-llvm@metafoo.co.uk> |
PR11148: Fix crash-on-invalid if an invalid member declaration is marked as defaulted or deleted. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144270 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
45fa560c72441069d9e4eb1e66efd87349caa552 |
|
07-Nov-2011 |
Douglas Gregor <dgregor@apple.com> |
When we notice that a member function is defined with "= delete" or "= default", make a note of which is used when creating the initial declaration. Previously, we would wait until later to handle default/delete as a definition, but this is too late: when adding the declaration, we already treated the declaration as "user-provided" when in fact it was merely "user-declared". Fixes PR10861 and PR10442, along with a bunch of FIXMEs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144011 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
a2b4e5d9292688bc67b583592918dbeecae31ea3 |
|
17-Oct-2011 |
Douglas Gregor <dgregor@apple.com> |
When we end up having to parse the initializer of a C++ member early in -fms-extensions mode, make sure we actually use that initializer after having handled the declaration. Fixes PR11150. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142195 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
7fe6208c3fa91f835813bb78236ef5c2bbf81053 |
|
15-Oct-2011 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Implement -Wc++98-compat warnings for the parser. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142056 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
5f1c822def3efffe1d8f7299fbbbc3b1cdd4833d |
|
13-Oct-2011 |
Erik Verbruggen <erikjv@me.com> |
Allow for annotate attributes after access specifiers. When such attributes are found, propagate them to subsequent declarations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141861 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
2c712f50cd56eaf3662989b556e9c6b1e8fcd11a |
|
11-Oct-2011 |
Kaelyn Uhrain <rikka@google.com> |
Move some bool flags out of function parameter lists. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141610 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
147545d698972cfd34ece30a5d55e8180784161e |
|
10-Oct-2011 |
Douglas Gregor <dgregor@apple.com> |
Parse the initializer for a class member after handling its declarator, so that the declarator is in scope for the initializer. Fixes PR9989. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141539 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
a891a32d3762ee641a29c091d286f2a7432671a5 |
|
30-Sep-2011 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Fix a bug in the token caching for inline constructors in C++11, and improve error recovery in both dialects. This should fix the GCC test suite failures as well. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140847 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
1991b7139a92d73420336690a870f049e88cfad6 |
|
29-Sep-2011 |
Richard Smith <richard-llvm@metafoo.co.uk> |
PR11000: Fix crash on invalid. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140802 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
6df6548e44a61c444bd85dccd0398cba047c79b1 |
|
24-Sep-2011 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Correctly parse braced member initializers (even in delayed parsing) and correctly pass the information on to Sema. There's still an incorrectness in the way template instantiation works now, but that is due to a far larger underlying representational problem. Also add a test case for various list initialization cases of scalars, which test this commit as well as the previous one. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140460 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
10904527359605a76561a49769a2199351a072d8 |
|
24-Sep-2011 |
Matt Beaumont-Gay <matthewbg@google.com> |
Fix a crash-on-invalid. The token stream was not getting properly reset when leaving ParseLexedMethodDef in some error cases. In the testcase, that caused later accesses to the token stream to touch memory which had been freed as we finished parsing the class definition. Major hat-tip to AddressSanitizer for helping pinpoint the use-after-free, including the allocation and deallocation points: ==21510== ERROR: AddressSanitizer heap-use-after-free on address 0x7feb3de87848 at pc 0x249f4e2 bp 0x7fff15a89df0 sp 0x7fff15a89ce0 READ of size 1 at 0x7feb3de87848 thread T0 #0 0x249f4e2 clang::TokenLexer::Lex() #1 0x1c834a0 clang::Parser::ConsumeToken() #2 0x1c7dc0f clang::Parser::ParseDeclarationOrFunctionDefinition() #3 0x1c7e16b clang::Parser::ParseDeclarationOrFunctionDefinition() <snip> 0x7feb3de87848 is located 1992 bytes inside of 3816-byte region [0x7feb3de87080,0x7feb3de87f68) freed by thread T0 here: #0 0x3a22c19 free #1 0x1d136a1 clang::Parser::LexedMethod::~LexedMethod() #2 0x1cef528 clang::Parser::DeallocateParsedClasses() #3 0x1cef676 clang::Parser::PopParsingClass() #4 0x1cea094 clang::Parser::ParseCXXMemberSpecification() #5 0x1ce7ae5 clang::Parser::ParseClassSpecifier() #6 0x1cfe588 clang::Parser::ParseDeclarationSpecifiers() #7 0x1c7dbe8 clang::Parser::ParseDeclarationOrFunctionDefinition() #8 0x1c7e16b clang::Parser::ParseDeclarationOrFunctionDefinition() <snip> previously allocated by thread T0 here: #0 0x3a2302d realloc #1 0x39d7c97 llvm::SmallVectorBase::grow_pod() #2 0x1ac588e llvm::SmallVectorImpl<>::push_back() #3 0x1d12d8b clang::Parser::ConsumeAndStoreUntil() #4 0x1c9c24d clang::Parser::ConsumeAndStoreUntil() #5 0x1d12c1e clang::Parser::ConsumeAndStoreUntil() #6 0x1c9c24d clang::Parser::ConsumeAndStoreUntil() #7 0x1d10042 clang::Parser::ParseCXXInlineMethodDef() #8 0x1cec51a clang::Parser::ParseCXXClassMemberDeclaration() #9 0x1ce9de5 clang::Parser::ParseCXXMemberSpecification() #10 0x1ce7ae5 clang::Parser::ParseClassSpecifier() #11 0x1cfe588 clang::Parser::ParseDeclarationSpecifiers() #12 0x1c7dbe8 clang::Parser::ParseDeclarationOrFunctionDefinition() #13 0x1c7e16b clang::Parser::ParseDeclarationOrFunctionDefinition() <snip> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140427 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
7d100872341f233c81e1d7b72b40457e62c36862 |
|
04-Sep-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
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 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139086 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
5cee1195584fa8672253139c86e922daeda69b9e |
|
27-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Add support for C++0x unicode string and character literals, from Craig Topper! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136210 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
7a614d8380297fcd2bc23986241905d97222948c |
|
11-Jun-2011 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Implement support for C++11 in-class initialization of non-static data members. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132878 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
e4246a633b13197634225971b25df0cbdcec0c5d |
|
12-May-2011 |
Sean Hunt <scshunt@csclub.uwaterloo.ca> |
Properly parse the 'default' and 'delete' keywords. They are actually grammatically considered definitions and parsed accordingly. This fixes the outstanding bugs regarding defaulting functions after their declarations. We now really nicely diagnose the following construct (try it!) int foo() = delete, bar; Still todo: Defaulted functions other than default constructors Test cases (including for the above construct) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131228 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
6a24747beed797b2f1184c66ca45beb4db20eb08 |
|
11-May-2011 |
Francois Pichet <pichet2000@gmail.com> |
In Microsoft mode, allow pure specifier (=0) on inline functions declared at class scope. This removes 2 errors when parsing MFC code with clang Example: class A { virtual void f() = 0 { } } git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131175 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
81542fd91bd5e7e65ebae3eaad117bdaeaf7d737 |
|
25-Apr-2011 |
Chandler Carruth <chandlerc@gmail.com> |
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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130124 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
d4a0caf78e7c18e7aca65fbfd799a6c024ff51fb |
|
23-Apr-2011 |
Francois Pichet <pichet2000@gmail.com> |
Correctly emit a diagnostic for multiple templated function definitions in -flate-template-parsing mode. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130030 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
8387e2a41eef6fa17fb140a18c29b6eee9dd2b8a |
|
23-Apr-2011 |
Francois Pichet <pichet2000@gmail.com> |
Add -fdelayed-template-parsing option. Using this option all templated function definitions are parsed at the end of the translation unit only if it is required by an actual instantiation. As such all the symbols of the TU are available during name lookup. Using this flag is necessary for compatibility with Microsoft template code. This also provides some parsing speed improvement. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130022 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
87f106462ce49a4a9b812b9de92aadd4e54567bd |
|
15-Apr-2011 |
Douglas Gregor <dgregor@apple.com> |
If the declaration of a C++ member function with an inline definition is so broken that Sema can't form a declaration for it, don't bother trying to parse the definition later. Fixes <rdar://problem/9221993>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129547 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
844c25d4383ccaf44765687cc4a7e591b3fe1472 |
|
25-Mar-2011 |
Anders Carlsson <andersca@mac.com> |
Remove warnings about using override control keywords in inline function definitions; they will be allowed in the next C++0x draft. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128273 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
b1f39680a2e3bce508dba0600665860e5ba5fb70 |
|
25-Mar-2011 |
Anders Carlsson <andersca@mac.com> |
Remove 'new' from virt-specifier since it's going to be removed in the next C++0x draft git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128271 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
c9977d09a2de7f7d2245973413d4caf86c736640 |
|
16-Mar-2011 |
Douglas Gregor <dgregor@apple.com> |
Make sure that we always pop a function's scope *before* we call ActOnFinishFunctionBody/ActOnBlockStmtExpr. This way, we ensure that we diagnose undefined labels before the jump-scope checker gets run, since the jump-scope checker requires (as its invariant) that all of the GotoStmts be wired up correctly. Fixes PR9495. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127738 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
eee1d5434ebfa955ffc3c493aecd68bb7b3f4838 |
|
14-Feb-2011 |
John McCall <rjmccall@apple.com> |
When parsing an out-of-line member function declaration, we must delay access-control diagnostics which arise from the portion of the declarator following the scope specifier, just in case access is granted by friending the individual method. This can also happen with in-line member function declarations of class templates due to templated-scope friend declarations. We were really playing fast-and-loose before with this sort of thing, and it turned out to work because *most* friend functions are in file scope. Making us delay regardless of context exposed several bugs with how we were manipulating delay. I ended up needing a concept of a context that's independent of the declarations in which it appears, and then I actually had to make some things save contexts correctly, but delay should be much cleaner now. I also encapsulated all the delayed-diagnostics machinery in a single subobject of Sema; this is a pattern we might want to consider rolling out to other components of Sema. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125485 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
4867347e82648d3baf09524b98b09c297a5a198f |
|
28-Jan-2011 |
Nico Weber <nicolasweber@gmx.de> |
PR9037: Allow override, final, and new as an extension on inline members. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124477 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
69a87357310260c4b2c5dce2cdcd10c3fd3a0a58 |
|
20-Jan-2011 |
Anders Carlsson <andersca@mac.com> |
Pass the VirtSpecifiers along to Sema::ActOnCXXMemberDeclarator. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123878 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
075f8f1b6bed4d1b224c74f87508534cc6392ce6 |
|
10-Dec-2010 |
Abramo Bagnara <abramo.bagnara@gmail.com> |
Added ParenType type node. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121488 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
d54eb4410330383f48d3cc22b2ad8d23f120836b |
|
12-Oct-2010 |
Douglas Gregor <dgregor@apple.com> |
Parse default arguments within member functions in source order, from Manuel Klimek! Fixes PR7715. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116311 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
be0f7bd61c7b2879d02ae75aad7a91d92f819d94 |
|
11-Sep-2010 |
Douglas Gregor <dgregor@apple.com> |
When parsing default function arguments, do not mark any declarations used in the default function argument as "used". Instead, when we actually use the default argument, make another pass over the expression to mark any used declarations as "used" at that point. This addresses two kinds of related problems: 1) We were marking some declarations "used" that shouldn't be, because we were marking them too eagerly. 2) We were failing to mark some declarations as "used" when we should, if the first time it was instantiated happened to be an unevaluated context, we wouldn't mark them again at a later point. I've also added a potentially-handy visitor class template EvaluatedExprVisitor, which only visits the potentially-evaluated subexpressions of an expression. I bet this would have been useful for noexcept... Fixes PR5810 and PR8127. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113700 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
f312b1ea179f1c44371f9ee0cd0bc006f612de11 |
|
27-Aug-2010 |
John McCall <rjmccall@apple.com> |
One who seeks knowledge learns something new every day. One who seeks the Tao unlearns something new every day. Less and less remains until you arrive at non-action. When you arrive at non-action, nothing will be left undone. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112244 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
60d7b3a319d84d688752be3870615ac0f111fb16 |
|
24-Aug-2010 |
John McCall <rjmccall@apple.com> |
OwningExprResult -> ExprResult. This patch brought to you by M-x query-replace-regexp \(Sema::\|Action::\|Parser::\|\)Owning\(Expr\|Stmt\)Result -> \2Result git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111903 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
9ae2f076ca5ab1feb3ba95629099ec2319833701 |
|
24-Aug-2010 |
John McCall <rjmccall@apple.com> |
Kill off ExprArg (now just Expr*) and StmtArg (now just Stmt*). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111863 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
d226f65006733ed7f709c3174f22ce33391cb58f |
|
21-Aug-2010 |
John McCall <rjmccall@apple.com> |
DeclPtrTy -> Decl * git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111733 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
19510856727e0e14a3696b2a72c35163bff2a71f |
|
20-Aug-2010 |
John McCall <rjmccall@apple.com> |
Another step in the process of making the parser depend on Sema: - move DeclSpec &c into the Sema library - move ParseAST into the Parse library Reflect this change in a thousand different includes. Reflect this change in the link orders. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111667 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
219cffcad343aef5939ca34d5abb59fbc7da1c36 |
|
09-Aug-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Change warning about incomplete parsing of C++ default arg to error and provide a test case; thanks Doug! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110603 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
f315fd6ebb9dbc47619315284c9af1ce5ec5f834 |
|
09-Aug-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Replace a parser assertion with a warning, suggestion by Doug. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110568 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
2b602adf9798eaf13850efaf8ed41c69d3cf7da6 |
|
06-Aug-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Introduce a new token kind 'cxx_defaultarg_end' to mark the end of C++ default arguments that were part of lexed method declarations. This avoid interference with tokens coming after the point where the default arg tokens were 'injected', e.g. for typedef struct Inst { void m(int x=0); } *InstPtr; when parsing '0' the next token would be '*' and things would be messed up. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110436 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
23c94dbb6631fecdb55ba401aa93722803d980c6 |
|
02-Jul-2010 |
Douglas Gregor <dgregor@apple.com> |
Move the "current scope" state from the Parser into Action. This allows Sema some limited access to the current scope, which we only use in one way: when Sema is performing some kind of declaration that is not directly driven by the parser (e.g., due to template instantiatio or lazy declaration of a member), we can find the Scope associated with a DeclContext, if that DeclContext is still in the process of being parsed. Use this to make the implicit declaration of special member functions in a C++ class more "scope-less", rather than using the NULL Scope hack. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107491 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
8f9359f5ae1227f3b489d1d261225d8180b64ed3 |
|
19-Jun-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Cure for Doug's insomnia. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106394 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
7558cd00a5ac620990174f3cba86aea4bd9a000a |
|
17-Jun-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Make sure the caching mechanism in Parser::ParseLexedMethodDefs is robust against the parser reading too few tokens. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106214 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
252485e6bf88064e8cce5b47da2481e6c795c21d |
|
17-Jun-2010 |
Ted Kremenek <kremenek@apple.com> |
Per conversation with Doug, remove two assertions in ParseLexedMethodDefs() that didn't indicate violated invariants but that we weren't recovering well. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106195 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
14b91628961ab50cc6e724bbcd408fdee100662d |
|
23-Apr-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Make Parser::ConsumeAndStoreUntil() more consistent with Parser::SkipUntil(). ConsumeAndStoreUntil would stop at tok::unknown when caching an inline method definition while SkipUntil would go past it while parsing the method. Fixes PR 6903. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102214 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
4cd8494d9a2f99cbf38147bca80be18cdff83734 |
|
15-Apr-2010 |
Sean Hunt <rideau3@gmail.com> |
Fix 80-cols violtaions git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101311 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
d6ca8da0f5a4115813055729faaa5128e994806d |
|
10-Apr-2010 |
John McCall <rjmccall@apple.com> |
Diagnose misordered initializers in constructor templates immediately instead of when they're instantiated. Merge the note into the -Wreorder warning; it doesn't really contribute much, and it was splitting a thought across diagnostics anyway. Don't crash in the parser when a constructor's initializers end in a comma and there's no body; the recovery here is still terrible, but anything's better than a crash. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100922 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
c50a5e09c6c49577ecee7fb49ece97dc38ee1219 |
|
31-Mar-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Add a few asserts to be on the safe side. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99973 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
7fd3a6456a88cdd225b92ae1606144f24c7f51d4 |
|
31-Mar-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
When "delayed parsing" C++ default arguments, if there is an error, there may be tokens left in the token stream that will interfere (they will be parsed as if they are after the class' '}') and a crash will occur because the CachedTokens that holds them will be deleted while the lexer is still using them. Make sure that the tokens of default args are removed from the token stream. Fixes PR6647. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99939 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
7a1dc562d4ad59237ed9fe7e8cef56f9eaa7a26c |
|
19-Dec-2009 |
John McCall <rjmccall@apple.com> |
Refactor to remove more dependencies on PreDeclaratorDC. I seem to have made the redeclaration problems in the [temp.explicit]p3 testcase worse, but I can live with that; they'll need to be fixed more holistically anyhow. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91771 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
d1a7846699a82f85ff3ce6b2e383409537c3f5c5 |
|
25-Nov-2009 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Have the parser tell sema whether a member declaration is a function definition. This allows sema to not emit spurious diagnostics in some invalid code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89816 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
bbbcdd9cc06b6078939129330ecc9bda3310984d |
|
11-Sep-2009 |
John McCall <rjmccall@apple.com> |
Alter Action's friend interface to prepare for templated friend declarations and to stop making promises we can't currently keep. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81571 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
1eb4433ac451dc16f4133a88af2d002ac26c58ef |
|
09-Sep-2009 |
Mike Stump <mrs@apple.com> |
Remove tabs, and whitespace cleanups. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81346 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
efd5bdad3c2b746db46452c6b13bd3c462dd761d |
|
24-Aug-2009 |
Douglas Gregor <dgregor@apple.com> |
Make sure to adjust function template declarations to their templated declarations (e.g., FunctionTemplateDecl -> CXXConstructorDecl) before performing semantic analysis on the declarations. Fixes PR4761. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79911 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
d83d04041f64a2c89123d227fa8003b482391279 |
|
22-Aug-2009 |
Douglas Gregor <dgregor@apple.com> |
Implement delayed parsing for member function templates. Fixes PR4608. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79709 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
37b372b76a3fafe77186d7e6079e5642e2017478 |
|
21-Aug-2009 |
Douglas Gregor <dgregor@apple.com> |
Initial support for parsing and representation of member function templates. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79570 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
3f9a8a60614b763785d54ad08821745d03a4af70 |
|
11-Aug-2009 |
John McCall <rjmccall@apple.com> |
Argument-dependent lookup for friend declarations. Add a new decl type, FriendFunctionDecl, and create instances as appropriate. The design of FriendFunctionDecl is still somewhat up in the air; you can befriend arbitrary types of functions --- methods, constructors, etc. --- and it's not clear that this representation captures that very well. We'll have a better picture when we start consuming this data in access control. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78653 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
67d1a67f3db2f1aa69083c5c94164d6e0ee05b32 |
|
06-Aug-2009 |
John McCall <rjmccall@apple.com> |
First pass at friend semantics. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78274 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
d33133cdc1af466f9c276249b2621be03867888b |
|
22-Jul-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Fix the parsing of default arguments for inline member function definitions. I'm not very familiar with this code, so please review. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76796 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
393612e6c7727f1fee50039254d9f434364cc0b2 |
|
22-Jul-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Patch to accomodate Doug's comment on default destruction of base/members for each destructor AST. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76663 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
560de45ccbf21c5e4dbeef3fc49f932e499cc181 |
|
16-Jul-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Added ASTs to destructor decl AST for default destruction of object's base/members. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75849 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
0849d38128536b0b33377d91bf02d005308319ef |
|
14-Jul-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Build AST for default ctor-initializer when constructor has out of line definition. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75668 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
d01c915dda27bb0045687f0a08bbcab1dd40e652 |
|
14-Jul-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Patch to build AST for ctor's initializer list according to semantics of order of construction [class.init]. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75649 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
6569d68745c8213709740337d2be52b031384f58 |
|
28-May-2009 |
Douglas Gregor <dgregor@apple.com> |
Reimplement much of the way that we track nested classes in the parser. Rather than placing all of the delayed member function declarations and inline definitions into a single bucket corresponding to the top-level class, we instead mirror the nesting structure of the nested classes and place the delayed member functions into their appropriate place. Then, when we actually parse the delayed member function declarations, set up the scope stack the same way as it was when we originally saw the declaration, so that we can find, e.g., template parameters that are in scope. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72502 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
de1b60a9868f80f0872ed05d78df3b40a10ba5ca |
|
26-Apr-2009 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
The mysterious bug turns out to be an incredibly bone-headed mistake. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70160 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
d3a413d3b8eb39bcee5944bc545d9997c1abe492 |
|
26-Apr-2009 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Implement function-try-blocks. However, there's a very subtle bug that I can't track down. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70155 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
682bf92db408a6cbc3d37b5496a99b6ef85041ec |
|
29-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
Push DeclGroup much farther throughout the compiler. Now the various productions (except the already broken ObjC cases like @class X,Y;) in the parser that can produce more than one Decl return a DeclGroup instead of a Decl, etc. This allows elimination of the Decl::NextDeclarator field, and exposes various clients that should look at all decls in a group, but which were only looking at one (such as the dumper, printer, etc). These have been fixed. Still TODO: 1) there are some FIXME's in the code about potentially using DeclGroup for better location info. 2) ParseObjCAtDirectives should return a DeclGroup due to @class etc. 3) I'm not sure what is going on with StmtIterator.cpp, or if it can be radically simplified now. 4) I put a truly horrible hack in ParseTemplate.cpp. I plan to bring up #3/4 on the mailing list, but don't plan to tackle #1/2 in the short term. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68002 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
b28317a8e5e0e2953d1e5406d753d6c3c7f1e7d2 |
|
28-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
Introduce a new OpaquePtr<N> struct type, which is a simple POD wrapper for a pointer. Its purpose in life is to be a glorified void*, but which does not implicitly convert to void* or other OpaquePtr's with a different UID. Introduce Action::DeclPtrTy which is a typedef for OpaquePtr<0>. Change the entire parser/sema interface to use DeclPtrTy instead of DeclTy*. This makes the C++ compiler enforce that these aren't convertible to other opaque types. We should also convert ExprTy, StmtTy, TypeTy, AttrTy, BaseTy, etc, but I don't plan to do that in the short term. The one outstanding known problem with this patch is that we lose the bitmangling optimization where ActionResult<DeclPtrTy> doesn't know how to bitmangle the success bit into the low bit of DeclPtrTy. I will rectify this with a subsequent patch. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67952 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
f53597fb16142bdb4a66901f8c0b768db4f2a548 |
|
15-Mar-2009 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Convert a bunch of actions to smart pointers, and also bring PrintParserCallbacks a bit more in line with reality. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67029 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
40e9bc84a2ab49fc33c2b1a95c6674ab2b820e9e |
|
05-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
Simplify the interface to ParseFunctionStatementBody to not take locations that are the current tok loc. Note that inline C++ methods have a big fixme that could cause a crash. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66113 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
500d3297d2a21edeac4d46cbcbe21bc2352c2a28 |
|
29-Jan-2009 |
Chris Lattner <sabre@nondot.org> |
move library-specific diagnostic headers into library private dirs. Reduce redundant #includes. Patch by Anders Johnsen! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63271 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
20c6b3b85e186cd52d5d99489132d71d498159eb |
|
27-Jan-2009 |
Chris Lattner <sabre@nondot.org> |
Split the single monolithic DiagnosticKinds.def file into one .def file for each library. This means that adding a diagnostic to sema doesn't require all the other libraries to be rebuilt. Patch by Anders Johnsen! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63111 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
3218c4bb3b5d7250f12420de6db7ef3e3f805a75 |
|
09-Jan-2009 |
Douglas Gregor <dgregor@apple.com> |
When we see a reference to a struct, class, or union like "struct X" that is neither a definition nor a forward declaration and where X has not yet been declared as a tag, introduce a declaration into the appropriate scope (which is likely *not* to be the current scope). The rules for the placement of the declaration differ slightly in C and C++, so we implement both and test the various corner cases. This implementation isn't 100% correct due to some lingering issues with the function prototype scope (for a function parameter list) not being the same scope as the scope of the function definition. Testcase is FIXME'd; this probably isn't an important issue. Addresses <rdar://problem/6484805>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@62014 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
72b505b7904b3c9320a1312998800ba76e4f5841 |
|
16-Dec-2008 |
Douglas Gregor <dgregor@apple.com> |
Delay parsing of default arguments of member functions until the class is completely defined (C++ [class.mem]p2). Reverse the order in which we process the definitions of member functions specified inline. This way, we'll get diagnostics in the order in which the member functions were declared in the class. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61103 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
8935b8b49053122ddd3ab4cd59af0fe5eb9c23cf |
|
10-Dec-2008 |
Douglas Gregor <dgregor@apple.com> |
Use a scoped object to manage entry/exit from a parser scope rather than explicitly calling EnterScope/ExitScope git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@60830 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
3f08d181f620e6bf4971c436fc9878f98a02bbe3 |
|
10-Nov-2008 |
Douglas Gregor <dgregor@apple.com> |
Improve parser error recovery after a constructor initializer git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58989 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
7ad8390f7992ab7f19b1460c5f0b9d96f165c4e9 |
|
05-Nov-2008 |
Douglas Gregor <dgregor@apple.com> |
Initial implementation of parsing, semantic analysis, and AST-building for constructor initializations, e.g., class A { }; class B : public A { int m; public: B() : A(), m(17) { }; }; git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@58749 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
e2fc9cf2ae41393e6b4812828a9158150bb33152 |
|
25-Jun-2008 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
The only caller of this knows that the current token is l_brace, so this can be an assert; suggestion by Chris. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52696 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|
4cc18a4d5222e04bd568b1e3e4d86127dbbcdf3f |
|
25-Jun-2008 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Add parsing support for C++ classes. Note that Parser::ParseCXXMemberSpecification is temporarily disabled until the Sema support is in place. Once ParseCXXMemberSpecification is enabled, the Parser/cxx-class.cpp test will pass. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@52694 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/lib/Parse/ParseCXXInlineMethods.cpp
|