summaryrefslogtreecommitdiffstats
path: root/clang/Parse
Commit message (Collapse)AuthorAgeFilesLines
* Make a major restructuring of the clang tree: introduce a top-levelChris Lattner2008-03-1512-6993/+0
| | | | | | | | | | lib dir and move all the libraries into it. This follows the main llvm tree, and allows the libraries to be built in parallel. The top level now enforces that all the libs are built before Driver, but we don't care what order the libs are built in. This speeds up parallel builds, particularly incremental ones. llvm-svn: 48402
* handle __extension__ properly at block scope.Chris Lattner2008-03-131-2/+8
| | | | llvm-svn: 48332
* instead of passing in null end location info, pass in the same as start.Chris Lattner2008-03-131-3/+3
| | | | | | This still isn't right, but is slightly nicer. llvm-svn: 48331
* improve DeclStmt to be able to store SourceRange info correctly.Chris Lattner2008-03-133-10/+24
| | | | | | | Set the start of DeclStmt range. Right now the end is meaningless though. llvm-svn: 48330
* implement simple support for arbitrary token lookahead. Change the Chris Lattner2008-03-101-19/+13
| | | | | | | | objc @try parser to use it, fixing a FIXME. Update the objc-try-catch-1.m file to pass now that we get more reasonable errors. llvm-svn: 48129
* Add fastcall/stdcall attribute supportNate Begeman2008-03-071-0/+2
| | | | | | Generate CallingConv::Fast when fastcall attribute is present llvm-svn: 48017
* Add a bunch of attributes, patch by Nuno Lopes.Chris Lattner2008-03-031-2/+20
| | | | llvm-svn: 47837
* Fix http://llvm.org/bugs/show_bug.cgi?id=2106.Steve Naroff2008-02-291-1/+1
| | | | llvm-svn: 47768
* Add support for attribute(deprecated), patch by Nuno Lopes!Chris Lattner2008-02-291-1/+4
| | | | llvm-svn: 47753
* Added support for attribute "noreturn."Ted Kremenek2008-02-271-1/+2
| | | | llvm-svn: 47689
* add parsing, ast building and pretty printing support for C++ throw expressions.Chris Lattner2008-02-262-0/+28
| | | | | | Patch by Mike Stump! llvm-svn: 47582
* convert tabs to spaces, patch by Mike Stump!Chris Lattner2008-02-251-1/+1
| | | | llvm-svn: 47560
* Handle __attribute__((annotate("string")))Nate Begeman2008-02-211-0/+3
| | | | llvm-svn: 47451
* Collect and build and process type attributes on pointers. For Chris Lattner2008-02-211-8/+7
| | | | | | | example, we can now correctly build the type for things like: _AS1 float * _AS2 *B; llvm-svn: 47420
* add a method to AttributeList that converts an identifier to an enum.Chris Lattner2008-02-201-0/+45
| | | | llvm-svn: 47412
* ParseCompoundStatementBody expects to only be called with { as the currentChris Lattner2008-02-141-2/+12
| | | | | | token. Diagnose when the { is missing in objc @try blocks instead of aborting. llvm-svn: 47130
* Remove DeclSpec::Invalid, a recently added bool that allowed the parser to ↵Steve Naroff2008-02-141-6/+0
| | | | | | | | detect if the decl spec was invalid. For now, we will stick with the original strategy - clients of Parse::ParseDeclarationSpecifiers() should never have to know this. llvm-svn: 47104
* A much better fix for http://llvm.org/bugs/show_bug.cgi?id=1987.Steve Naroff2008-02-141-3/+14
| | | | llvm-svn: 47103
* Allow the parser to detect invalid DeclSpec's. This fixes ↵Steve Naroff2008-02-122-19/+28
| | | | | | | | | | http://llvm.org/bugs/show_bug.cgi?id=1987. This commit only "guards" the call to ParseDeclarationSpecifiers() in ParseDeclarationOrFunctionDefinition(). We could consider guarding all calls, however this is a bit radical (since it effectively stops parsing the declaration once we have a bad declspec). Will discuss with Chris tomorrow. llvm-svn: 46984
* Several cleanups surrounding Parser::ParseAsmStatement() and ↵Steve Naroff2008-02-112-2/+29
| | | | | | Parser::FuzzyParseMicrosoftAsmStatement(). llvm-svn: 46977
* Move policy on unnamed fields (a Microsoft extension) from ↵Steve Naroff2008-02-111-2/+1
| | | | | | Parser::ParseStructDeclaration() to the driver. llvm-svn: 46974
* Move Microsoft __declspec hack from the parser to the preprocessor. Since we ↵Steve Naroff2008-02-111-52/+0
| | | | | | have no plans to actually implement this construct, it is cleaner to limit the change to the preprocessor. llvm-svn: 46973
* Fix PR1999, by emitting a hard error only if an argument declarator is ↵Chris Lattner2008-02-101-7/+12
| | | | | | | | | completely missing. Otherwise, it is an implicit int case, which is valid in c90 and invalid elsewhere, but accepted as an extension. llvm-svn: 46938
* Behave correctly if a constraint expression is invalid.Anders Carlsson2008-02-091-10/+15
| | | | llvm-svn: 46910
* Use getLogicalLineNumber() in FuzzyParseMicrosoftAsmStatement(), it's more ↵Steve Naroff2008-02-081-15/+7
| | | | | | general and simplifies the code. llvm-svn: 46885
* Support fuzzy parsing MS line-oriented __asm's that originate from a macro ↵Steve Naroff2008-02-081-5/+16
| | | | | | (a case where we can't obtain source line info). As the test case indicates, we don't currently support line-oriented asm statements that mix file/macro body tokens. llvm-svn: 46878
* Put back the top-level asm code; all tests pass now.Anders Carlsson2008-02-081-9/+14
| | | | llvm-svn: 46868
* Back out 46855 for now, it causes test failures on Darwin.Anders Carlsson2008-02-081-12/+10
| | | | llvm-svn: 46867
* - Add support for fuzzy parsing line-oriented __asm's (yuck).Steve Naroff2008-02-072-7/+17
| | | | | | - Change handling of __w64 to a built-in macro. llvm-svn: 46864
* Handle top-level asm declarations.Anders Carlsson2008-02-071-10/+12
| | | | llvm-svn: 46855
* Minor cleanup from yesterday's -fms-extension commit. Move __int* MS ↵Steve Naroff2008-02-071-4/+0
| | | | | | keywords to predefined macros. This removes some of the MS-madness from Parser::ParseDeclarationSpecifiers(). llvm-svn: 46852
* Implement -fms-extensions. This allows us to fuzzy parse non-standard MS ↵Steve Naroff2008-02-072-3/+76
| | | | | | constructs used in "windows.h". llvm-svn: 46838
* Add a FIXME to clarify previous commit/experiment.Steve Naroff2008-02-051-0/+6
| | | | llvm-svn: 46782
* Handle simple asm statements correctly.Anders Carlsson2008-02-051-26/+36
| | | | llvm-svn: 46777
* Fix Parser::ParseObjCTryStmt() to allow for trailing @-keyword ↵Steve Naroff2008-02-052-25/+37
| | | | | | | | statements/expressions. This bug fix is the result of not having 2-token lookahead to recognize specific @-keywords. llvm-svn: 46768
* Implement support for __extension__ which silences extwarnings in its Chris Lattner2008-02-021-2/+12
| | | | | | scope. This is part of the fix for PR1966 llvm-svn: 46669
* Fix http://llvm.org/bugs/show_bug.cgi?id=1967.Steve Naroff2008-01-311-3/+1
| | | | llvm-svn: 46616
* Fix PR1965: missing diagnostics for parameters that are missingChris Lattner2008-01-311-0/+14
| | | | | | | type specifiers. This required updating some (buggy) tests, and the testcase was previously accidentally committed. llvm-svn: 46603
* Remainder of the __builtin_overload feedbackNate Begeman2008-01-311-6/+0
| | | | llvm-svn: 46601
* On an unexpected @foo keyword, return failure instead of a 'successful' null ↵Chris Lattner2008-01-301-3/+1
| | | | | | | | AST. This fixes a segfault on things like @foo. llvm-svn: 46574
* Fixed misc. issues raised by Chris L. on @synchronized implementation.Fariborz Jahanian2008-01-301-4/+7
| | | | llvm-svn: 46558
* AST for @synchronized.Fariborz Jahanian2008-01-291-1/+21
| | | | llvm-svn: 46524
* Bunch of type defs, etc. for @synchronized.Fariborz Jahanian2008-01-292-1/+10
| | | | llvm-svn: 46520
* Add more support for Apple's "private extern" extension...Steve Naroff2008-01-251-2/+1
| | | | llvm-svn: 46371
* Add support for dispatching an objc message to a variable Chris Lattner2008-01-252-3/+16
| | | | | | in an initializer list. llvm-svn: 46367
* First half of a fix for the "objc message send in initializer" bug. This onlyChris Lattner2008-01-251-1/+16
| | | | | | handles message sends with typenames to start with. llvm-svn: 46366
* Factor a complex predicate out to a helper method.Chris Lattner2008-01-251-3/+1
| | | | llvm-svn: 46365
* split the second half of ParseObjCMessageExpression into a new Chris Lattner2008-01-251-23/+31
| | | | | | ParseObjCMessageExpressionBody method. llvm-svn: 46363
* remove an implemented todoChris Lattner2008-01-251-2/+1
| | | | llvm-svn: 46362
* Implement basic overload support via a new builtin, __builtin_overload.Nate Begeman2008-01-171-0/+40
| | | | | | | | | | | | | | | | | | | | | | | | __builtin_overload takes 2 or more arguments: 0) a non-zero constant-expr for the number of arguments the overloaded functions will take 1) the arguments to pass to the matching overloaded function 2) a list of functions to match. The return type of __builtin_overload is inferred from the function whose args match the types of the arguments passed to the builtin. For example: float a; float sinf(float); int sini(int); float b = __builtin_overload(1, a, sini, sinf); Says that we are overloading functions that take one argument, and trying to pass an argument of the same type as 'a'. sini() does not match since it takes and argument of type int. sinf does match, so at codegen time this will turn into float b = sinf(a); llvm-svn: 46132
OpenPOWER on IntegriCloud