aboutsummaryrefslogtreecommitdiff
path: root/test/Parser
AgeCommit message (Collapse)Author
2009-11-17Don't #include <stdio.h> when tests don't need it, or use clang instead of ↵Daniel Dunbar
clang-cc when they do. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89070 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-14Fix broken tests, exposed by improved -verify.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88749 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-08Remove RUN: true lines.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86432 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-08Eliminate &&s in tests.Daniel Dunbar
- 'for i in $(find . -type f); do sed -e 's#\(RUN:.*[^ ]\) *&& *$#\1#g' $i | FileUpdate $i; done', for the curious. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86430 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-06Make fragile-abi test run happy.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86293 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-06Fix a bogus objective-c warning with -pedantic.Fariborz Jahanian
(radar 7370882). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86291 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-05Implement -Wsign-compare, or at least the actual comparison part of it.John McCall
Conditional operands are next. Fixes part of rdar://problem/7289584. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86083 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-30Improve diagnostics when parsing something likeDouglas Gregor
template<> struct foo<int> { ... }; where "foo" does not refer to a template. Fixes PR3844. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85616 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-27Disabling some MS extensions which cause these tests to failJohn Thompson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85236 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-23Diagnose misuse of '.*' and '->*' operators during parseFariborz Jahanian
instead of crashing in code gen. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84968 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-13test commitJohn Thompson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83945 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-08Improve checking for specializations of member classes of classDouglas Gregor
templates, and keep track of how those member classes were instantiated or specialized. Make sure that we don't try to instantiate an explicitly-specialized member class of a class template, when that explicit specialization was a declaration rather than a definition. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83547 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-26Rework the Parse-Sema interaction for friends to better support friendDouglas Gregor
class templates. We now treat friend class templates much more like normal class templates, except that they still get special name lookup rules. Fixes PR5057 and eliminates a bunch of spurious diagnostics in <iostream>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82848 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-25WIP implementation of explicit instantiation of function templates,Douglas Gregor
member functions of class template specializations, and static data members. The mechanics are (mostly) present, but the semantic analysis is very weak. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82789 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-12Add RUN line.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81654 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-12Add a test for PR3733.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81622 91177308-0d34-0410-b5e6-96231b3b80d8
2009-09-09Remove tabs, and whitespace cleanups.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81346 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-24Improve top-level-semicolon test a bitDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79913 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-24Top-level semicolons are allowed in C++0x. Fixes PR4755.Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79912 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-06First pass at friend semantics.John McCall
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78274 91177308-0d34-0410-b5e6-96231b3b80d8
2009-08-01Ok, ok, I give in. Fix tests for unused result warning.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77780 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-30PR3679 - handle #pragma weakRyan Flynn
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77573 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-25Implement C++ semantics for C-style and functional-style casts. This ↵Sebastian Redl
regresses Clang extension conversions, like vectors, but allows conversions via constructors and conversion operators. Add custom conversions to static_cast. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77076 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-25Disable this test: cxx-using-declaration.cppDaniel Dunbar
Something strange is going on here; this test randomly started failing after unrelated changes to TestRunner.py (even though it runs the same script). Argiris or Doug, can one of you investigate? git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77063 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-23Fix test case, which has a control-reaches-end-of-non-void warning that wasDaniel Dunbar
being masked by previous bug. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76858 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22Implement support for out-of-line definitions of the class members of classDouglas Gregor
templates, e.g., template<typename T> struct Outer { struct Inner; }; template<typename T> struct Outer<T>::Inner { // ... }; Implementing this feature required some extensions to ActOnTag, which now takes a set of template parameter lists, and is the precursor to removing the ActOnClassTemplate function from the parser Action interface. The reason for this approach is simple: the parser cannot tell the difference between a class template definition and the definition of a member of a class template; both have template parameter lists, and semantic analysis determines what that template parameter list means. There is still some cleanup to do with ActOnTag and ActOnClassTemplate. This commit provides the basic functionality we need, however. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76820 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22Implement parsing and semantic analysis for out-of-line definitions of staticDouglas Gregor
data members of class templates. We don't instantiate the definitions yet, however. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76756 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-22Prep for new warning.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76709 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-27Fix the parser error hanlding for __builtin_offsetof to actually print Eli Friedman
out an error for a malformed __builtin_offsetof. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74388 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-25Improved semantic analysis and AST respresentation for functionDouglas Gregor
templates. For example, this now type-checks (but does not instantiate the body of deref<int>): template<typename T> T& deref(T* t) { return *t; } void test(int *ip) { int &ir = deref(ip); } Specific changes/additions: * Template argument deduction from a call to a function template. * Instantiation of a function template specializations (just the declarations) from the template arguments deduced from a call. * FunctionTemplateDecls are stored directly in declaration contexts and found via name lookup (all forms), rather than finding the FunctionDecl and then realizing it is a template. This is responsible for most of the churn, since some of the core declaration matching and lookup code assumes that all functions are FunctionDecls. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74213 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-24Fix a clang crash caused by incorrect user code.Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74080 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-24Make sure that the template parameter lists get from the parser down to ↵Douglas Gregor
ActOnFunctionDeclarator for function template definitions git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74040 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-20Parsing and AST support for using declarations, from John Thompson!Douglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73812 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-17Diagnose class members that shadow a template parameter. FixesDouglas Gregor
<rdar://problem/6952203>. To do this, we actually remove a not-quite-correct optimization in the C++ name lookup routines. We'll revisit this optimization for the general case once more C++ is working. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73659 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-17Diagnose the use of attributes on namespace aliases, from Anis AhmadDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73626 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-14change ParseStatementOrDeclaration to emit the 'missing ;' withChris Lattner
ExpectAndConsume instead of custom diag logic. This gets us an insertion hint and positions the ; at the end of the line instead of on the next token. Before: t.c:5:1: error: expected ';' after return statement } ^ after: t.c:4:11: error: expected ';' after return statement return 4 ^ ; git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73315 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-05Update test to work with the limited Sema for #pragma weak.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72914 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-05Test for parsing #pragma weak.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72908 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-03Use "()" instead of "(void)" when pretty-printing a parameter-less function ↵Argyrios Kyrtzidis
type for C++. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72747 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-25PR4122: Tweak the ambiguity handling to handle (S())() correctly. I've Eli Friedman
left out handling for stuff like (S())++ for the moment. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72394 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-22Add a test case to make sure that an ambiguous paren expression is only ↵Argyrios Kyrtzidis
parsed once. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72298 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-22Handle correctly a very ugly part of the C++ syntax. We cannot disambiguate ↵Argyrios Kyrtzidis
between a parenthesized type-id and a paren expression without considering the context past the parentheses. Behold: (T())x; - type-id (T())*x; - type-id (T())/x; - expression (T()); - expression git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72260 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-22Parse typeof-specifier the same way as sizeof/alignof are parsed.Argyrios Kyrtzidis
-Makes typeof consistent with sizeof/alignof -Fixes a bug when '>' is in a typeof expression, inside a template type param: A<typeof(x>1)> a; git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72255 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-16Make the RAII extension warning silencing for __extension__ a bit Eli Friedman
narrower, so it doesn't catch expresions that aren't sub-expressions of __extension__ operator. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71967 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-16Fixup __extension__ i = 1 parsing. Thanks Eli!Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71927 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-15Fixup parsing for (throw,throw) and __extension__ throw 1.Mike Stump
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71897 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-12Refactor the parsing of declarations so that template declarations canDouglas Gregor
parse just a single declaration and provide a reasonable diagnostic when the "only one declarator per template declaration" rule is violated. This eliminates some ugly, ugly hackery where we used to require thatn the layout of a DeclGroup of a single element be the same as the layout of a single declaration. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71596 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-11For friend class decls, always use TK_Reference so we'll try to look up ↵Anders Carlsson
existing class decls first. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71481 91177308-0d34-0410-b5e6-96231b3b80d8
2009-05-06Add parsing of friend specifiers.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71067 91177308-0d34-0410-b5e6-96231b3b80d8
2009-04-29Have the parser communicate the exception specification to the action.Sebastian Redl
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70389 91177308-0d34-0410-b5e6-96231b3b80d8