- Nov 10, 2009
-
-
Ted Kremenek authored
Make -Wsemicolon-before-method-body opt-in (and part of -Wextra). Addresses <rdar://problem/7381735>. llvm-svn: 86731
-
Benjamin Kramer authored
llvm-svn: 86719
-
Douglas Gregor authored
handling template template parameters properly. This refactoring: - Parses template template arguments as id-expressions, representing the result of the parse as a template name (Action::TemplateTy) rather than as an expression (lame!). - Represents all parsed template arguments via a new parser-specific type, ParsedTemplateArgument, which stores the kind of template argument (type, non-type, template) along with all of the source information about the template argument. This replaces an ad hoc set of 3 vectors (one for a void*, which was either a type or an expression; one for a bit telling whether the first was a type or an expression; and one for a single source location pointing at the template argument). - Moves TemplateIdAnnotation into the new Parse/Template.h. It never belonged in the Basic library anyway. llvm-svn: 86708
-
- Nov 09, 2009
-
-
Eli Friedman authored
unless we start implementing command-line switches which override the default calling convention, so the effect is mostly to silence unknown attribute warnings.) llvm-svn: 86571
-
- Nov 07, 2009
-
-
Steve Naroff authored
Still a work in progress... llvm-svn: 86323
-
- Nov 06, 2009
-
-
Fariborz Jahanian authored
(radar 7370882). llvm-svn: 86291
-
Chris Lattner authored
llvm-svn: 86240
-
Douglas Gregor authored
llvm-svn: 86234
-
- Nov 05, 2009
-
-
Sebastian Redl authored
llvm-svn: 86135
-
- Nov 04, 2009
-
-
Douglas Gregor authored
single typename annotation token when backtracing. Fixes PR5350. llvm-svn: 86034
-
Douglas Gregor authored
conversion-function-ids; all clients have moved on to ParseUnqualifiedId. llvm-svn: 86028
-
Douglas Gregor authored
llvm-svn: 86027
-
John McCall authored
appears in a deprecated context. In the new strategy, we emit the warnings as usual unless we're currently parsing a declaration, where "declaration" is restricted to mean a decl group or a few special cases in Objective C. If we *are* parsing a declaration, we queue up the deprecation warnings until the declaration has been completely parsed, and then emit them only if the decl is not deprecated. We also standardize the bookkeeping for deprecation so as to avoid special cases. llvm-svn: 85998
-
Douglas Gregor authored
overloaded operators, e.g., p->template operator+<T>() llvm-svn: 85989
-
Douglas Gregor authored
operators, e.g., operator+<int> which now works in declarators, id-expressions, and member access expressions. This commit only implements the non-dependent case, where we can resolve the template-id to an actual declaration. llvm-svn: 85966
-
- Nov 03, 2009
-
-
Douglas Gregor authored
llvm-svn: 85942
-
John McCall authored
automatically shadowed by the ExtensionRAIIObject created by ParseStructDeclaration. llvm-svn: 85941
-
Douglas Gregor authored
llvm-svn: 85938
-
Douglas Gregor authored
"->" with a use of ParseUnqualifiedId. Collapse ActOnMemberReferenceExpr, ActOnDestructorReferenceExpr (both of them), ActOnOverloadedOperatorReferenceExpr, ActOnConversionOperatorReferenceExpr, and ActOnMemberTemplateIdReferenceExpr into a single, new action ActOnMemberAccessExpr that does the same thing more cleanly (and can keep more source-location information). llvm-svn: 85930
-
John McCall authored
anchor the vtable to Parser.cpp for good measure. llvm-svn: 85927
-
John McCall authored
declarators are parsed primarily within a single function (at least for these cases). Remove some excess diagnostics arising during parse failures. llvm-svn: 85924
-
Douglas Gregor authored
yet another copy of the unqualified-id parsing code. Also, use UnqualifiedId to simplify the Action interface for building id-expressions. ActOnIdentifierExpr, ActOnCXXOperatorFunctionIdExpr, ActOnCXXConversionFunctionExpr, and ActOnTemplateIdExpr have all been removed in favor of the new ActOnIdExpression action. llvm-svn: 85904
-
John McCall authored
it easier to track within Sema whether the parser is parsing a declaration. llvm-svn: 85855
-
Douglas Gregor authored
representation of a C++ unqualified-id, along with a single parsing function (Parser::ParseUnqualifiedId) that will parse all of the various forms of unqualified-id in C++. Replace the representation of the declarator name in Declarator with the new UnqualifiedId class, simplifying declarator-id parsing considerably and providing more source-location information to Sema. In the future, I hope to migrate all of the other unqualified-id-parsing code over to this single representation, then begin to merge actions that are currently only different because we didn't have a unqualified notion of the name in the parser. llvm-svn: 85851
-
- Oct 30, 2009
-
-
Douglas Gregor authored
partial specializations and explicit instantiations of non-templates. llvm-svn: 85620
-
Douglas Gregor authored
template<> struct foo<int> { ... }; where "foo" does not refer to a template. Fixes PR3844. llvm-svn: 85616
-
- Oct 29, 2009
-
-
Douglas Gregor authored
llvm-svn: 85491
-
- Oct 25, 2009
-
-
Chris Lattner authored
IIDecl cannot be null. There is no need to check for both C++ mode and presence of CXXRecordDecl. ObjC interfaces can't have ScopeSpecs. llvm-svn: 85057
-
Chris Lattner authored
type looking using getTypeName() and every property access was using NextToken() to do lookahead to see if the identifier is followed by a '.'. Rearrange this code to not need lookahead and only do the type lookup if we have "identifier." in the token stream. Also improve a diagnostic a bit. llvm-svn: 85056
-
- Oct 23, 2009
-
-
Fariborz Jahanian authored
instead of crashing in code gen. llvm-svn: 84968
-
- Oct 22, 2009
-
-
Douglas Gregor authored
N::f<int> keep track of the full nested-name-specifier. This is mainly QoI and relatively hard to test; will try to come up with a printing-based test once we also retain the explicit template arguments past overload resolution. llvm-svn: 84869
-
- Oct 20, 2009
-
-
Fariborz Jahanian authored
Fixes <rdar://problem/7308503> clang should disallow the trailing semicolon in method definitions llvm-svn: 84645
-
Douglas Gregor authored
t->~T<A0, A1>() Fixes PR5213. llvm-svn: 84545
-
- Oct 18, 2009
-
-
Daniel Dunbar authored
are updated. llvm-svn: 84447
-
Daniel Dunbar authored
- strcmp -> == - OS.write(II->getName() ...) -> OS << II->getNameStr() - Avoid std::string concatenation - Use getNameStr().str() when an std::string is really needed. llvm-svn: 84437
-
Daniel Dunbar authored
llvm-svn: 84436
-
Daniel Dunbar authored
llvm-svn: 84378
-
- Oct 17, 2009
-
-
Daniel Dunbar authored
llvm-svn: 84339
-
Daniel Dunbar authored
annotation token. - I'm not sure what the best thing to print is, for now we just print the token location and 'at annotation token'. llvm-svn: 84312
-
- Oct 14, 2009
-
-
Douglas Gregor authored
unknown type name, e.g., foo::bar x; when "bar" does not refer to a type in "foo". With this change, the parser now calls into the action to perform diagnostics and can try to recover by substituting in an appropriate type. For example, this allows us to easily diagnose some missing "typename" specifiers, which we now do: test/SemaCXX/unknown-type-name.cpp:29:1: error: missing 'typename' prior to dependent type name 'A<T>::type' A<T>::type A<T>::f() { return type(); } ^~~~~~~~~~ typename Fixes PR3990. llvm-svn: 84053
-