summaryrefslogtreecommitdiffstats
path: root/clang/lib/Parse
Commit message (Collapse)AuthorAgeFilesLines
...
* [OPENMP] Initial parsing and sema analysis for clause 'capture' in 'atomic' ↵Alexey Bataev2014-07-241-1/+2
| | | | | | directive. llvm-svn: 213842
* In unroll pragma syntax and loop hint metadata, change "enable" forms to a ↵Mark Heffernan2014-07-231-7/+12
| | | | | | new form using the string "full". llvm-svn: 213771
* [OPENMP] Initial parsing and sema analysis for 'update' clause of 'atomic' ↵Alexey Bataev2014-07-231-1/+3
| | | | | | directive. llvm-svn: 213735
* [OPENMP] Initial parsing an sema analysis for 'write' clause of 'atomic' ↵Alexey Bataev2014-07-231-1/+6
| | | | | | directive. llvm-svn: 213728
* [OPENMP] Initial parsing and sema analysis for 'read' clause in 'atomic' ↵Alexey Bataev2014-07-231-1/+5
| | | | | | directive. llvm-svn: 213717
* Disallowing GNU-style attributes in new expressions, since they are ↵Aaron Ballman2014-07-222-19/+28
| | | | | | prohibited by GCC as well. llvm-svn: 213650
* [OPENMP] Initial parsing and sema analysis for 'atomic' directive.Alexey Bataev2014-07-221-2/+4
| | | | llvm-svn: 213639
* [OPENMP] Initial parsing and sema analysis for 'ordered' directive.Alexey Bataev2014-07-221-2/+5
| | | | llvm-svn: 213616
* Avoid crash if default argument parsed with errors.Serge Pavlov2014-07-222-3/+4
| | | | | | | | | | | | | | If function parameters have default values, and that of the second parameter is parsed with errors, function declaration would have a parameter without default value that follows a parameter with that. Such declaration breaks logic of selecting overloaded function. As a solution, put opaque object as default value in such case. This patch fixes PR20055. Differential Revision: http://reviews.llvm.org/D4378 llvm-svn: 213594
* -fms-extensions: Implement half of #pragma init_segReid Kleckner2014-07-222-5/+54
| | | | | | | | | | | | | | | | | | | | | | | | Summary: This pragma is very rare. We could *hypothetically* lower some uses of it down to @llvm.global_ctors, but given that GlobalOpt isn't able to optimize prioritized global ctors today, there's really no point. If we wanted to do this in the future, I would check if the section used in the pragma started with ".CRT$XC" and had up to two characters after it. Those two characters could form the 16-bit initialization priority that we support in @llvm.global_ctors. We would have to teach LLVM to lower prioritized global ctors on COFF as well. This should let us compile some silly uses of this pragma in WebKit / Blink. Reviewers: rsmith, majnemer Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D4549 llvm-svn: 213593
* Add support for '#pragma unroll'.Mark Heffernan2014-07-212-61/+163
| | | | llvm-svn: 213574
* [OPENMP] Initial parsing and sema analysis for 'flush' directive.Alexey Bataev2014-07-211-7/+28
| | | | llvm-svn: 213512
* [OPENMP] Parsing/Sema of the OpenMP directive 'critical'.Alexander Musman2014-07-211-4/+21
| | | | llvm-svn: 213510
* [MS-ABI] Assign SEH handler indices to __try blocksWarren Hunt2014-07-191-8/+40
| | | | | | | | | Assigns indices to try blocks. These indices will used in constructing tables that the mscrt function __except_handler3 reads during SEH. Testing will occur once we actually emit the tables, in a subsequent patch. llvm-svn: 213437
* [OPENMP] Initial parsing and sema analysis for 'taskwait' directive.Alexey Bataev2014-07-182-7/+4
| | | | llvm-svn: 213363
* [OPENMP] Initial parsing and sema analysis for 'barrier' directive.Alexey Bataev2014-07-181-1/+3
| | | | llvm-svn: 213360
* [OPENMP] Initial parsing and sema analysis of 'taskyield' directive.Alexey Bataev2014-07-182-4/+14
| | | | llvm-svn: 213355
* Parse: Diagnose malformed 'message' arguments for 'availability' attrDavid Majnemer2014-07-181-1/+12
| | | | | | | The parsing code for 'availability' wasn't prepared for string literals like "a" L"b" showing up. Error if this occurs. llvm-svn: 213350
* Fix parsing certain kinds of strings in the MS section pragmasReid Kleckner2014-07-181-50/+99
| | | | | | | | | We were crashing on the relevant test case inputs. Also, refactor this code a bit so we can report failure and slurp the pragma tokens without returning a diagnostic id. This is more consistent with the rest of the parser and sema code. llvm-svn: 213337
* Wrap a comment to 80 columns, no code change.Nico Weber2014-07-171-1/+2
| | | | llvm-svn: 213288
* [OPENMP] Initial parsing and sema analysis of 'mergeable' clause.Alexey Bataev2014-07-171-1/+6
| | | | llvm-svn: 213262
* [OPENMP] Initial support for parsing and sema analysis of 'untied' clause.Alexey Bataev2014-07-171-1/+5
| | | | llvm-svn: 213257
* [OPENMP] Parsing/Sema analysis of directive 'master'Alexander Musman2014-07-171-2/+4
| | | | llvm-svn: 213237
* [OPENMP] Initial parsing and sema analysis for 'final' clause.Alexey Bataev2014-07-171-6/+13
| | | | llvm-svn: 213232
* Removing a FIXME from the attribute parsing code by now passing along the ↵Aaron Ballman2014-07-161-31/+35
| | | | | | scope and syntax information for attributes with custom parsing. It turns out not to matter too much because the FIXME wasn't quite true -- none of these attributes have a C++11 spelling. However, it's still a good change (for instance, we may add an attribute with a type arg in the future for which this code now behaves properly). llvm-svn: 213191
* Improve error recovery around colon.Serge Pavlov2014-07-162-24/+34
| | | | | | | | | | | | Recognize additional cases, when '::' is mistyped as ':'. This is a fix to RP18587 - colons have too much protection in member-declarations Review is tracked by http://reviews.llvm.org/D3653. This is an attempt to recommit the fix, initially committed as r212957 but then reverted in r212965 as it broke self-build. In the updated patch ParseDirectDeclarator turns on colon protection in for context as well. llvm-svn: 213120
* Don't get confused on the number of braces when braces start after the first ↵Ehsan Akhgari2014-07-151-2/+1
| | | | | | | | | | | | | | | | __asm Summary: Without this, we would not consume the closing brace which would cause the parser to start consuming C++ and bad things would happen. Reviewers: majnemer Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D4505 llvm-svn: 213032
* PR19751: (T())++ is not a cast-expression.Richard Smith2014-07-152-2/+6
| | | | llvm-svn: 213022
* Continue parsing an expression list even after an error is encountered.Kaelyn Takata2014-07-141-5/+8
| | | | | | | | | Otherwise, multiple errors such as having unknown identifiers for two arguments won't be diagnosed properly (e.g. only the first one would have a diagnostic message if typo correction fails even though both would be diagnosed if typo correction suggests a replacement). llvm-svn: 213003
* Revert "Improve error recovery around colon."Reid Kleckner2014-07-142-31/+24
| | | | | | | | This reverts commit r212957. It broke the self-host on code like this from LLVM's option library: for (auto Arg: filtered(Id0, Id1, Id2)) llvm-svn: 212965
* Improve error recovery around colon.Serge Pavlov2014-07-142-24/+31
| | | | | | | | | Recognize additional cases, when '::' is mistyped as ':'. This is a fix to RP18587 - colons have too much protection in member-declarations. Differential Revision: http://reviews.llvm.org/D3653 llvm-svn: 212957
* [CMake] Reorder libdeps by alphabetical order.NAKAMURA Takumi2014-07-141-2/+2
| | | | llvm-svn: 212919
* [OPENMP] Parsing and sema analysis for 'omp task' directive.Alexey Bataev2014-07-111-8/+4
| | | | llvm-svn: 212804
* [OPENMP] Parsing and sema analysis for 'omp parallel sections' directive.Alexey Bataev2014-07-081-2/+8
| | | | llvm-svn: 212516
* [OPENMP] Added initial support for 'omp parallel for'.Alexey Bataev2014-07-071-8/+26
| | | | llvm-svn: 212453
* Sema: Check that __leave is contained in a __try block.Nico Weber2014-07-061-1/+2
| | | | | | | | | Give scope a SEHTryScope bit, set that in ParseSEHTry(), and let Sema walk the scope chain to find the SEHTry parent on __leave statements. (They are rare enough that it seems better to do the walk instead of giving Scope a SEHTryParent pointer -- this is similar to AtCatchScope.) llvm-svn: 212422
* Add parser support for __leave (sema and onward still missing).Nico Weber2014-07-061-0/+15
| | | | llvm-svn: 212421
* Add support for nested blocks in Microsoft inline assemblyEhsan Akhgari2014-07-061-17/+49
| | | | | | This fixes http://llvm.org/PR20204. llvm-svn: 212389
* [OPENMP] Parsing and sema analysis for 'copyprivate' clause.Alexey Bataev2014-06-271-3/+5
| | | | llvm-svn: 211886
* [OPENMP] Initial parsing and sema analysis for 'single' directive.Alexey Bataev2014-06-261-2/+4
| | | | llvm-svn: 211774
* [OPENMP] Initial parsing and sema analysis for 'section' directive.Alexey Bataev2014-06-261-3/+5
| | | | llvm-svn: 211767
* Convert StringLiteralParser constructor to use ArrayRef instead of a pointer ↵Craig Topper2014-06-262-2/+2
| | | | | | and count. llvm-svn: 211763
* [OPENMP] Initial support for 'sections' directive.Alexey Bataev2014-06-251-3/+6
| | | | llvm-svn: 211685
* Fix parsing nested __if_exists blocksReid Kleckner2014-06-251-6/+8
| | | | | | | | | | | Rather than having kw___if_exists be a special case of ParseCompoundStatementBody, we can look for kw___if_exists in the big switch over for valid statement tokens in ParseStatementOrDeclaration. Nested __if_exists blocks are used in the DECLARE_REGISTRY_RESOURCEID macro from atlcom.h. llvm-svn: 211654
* Provide a better diagnostic when braces are put before the identifier.Richard Trieu2014-06-241-6/+116
| | | | | | | | | | | | | | | | | When a user types: int [4] foo; assume that the user means: int foo[4]; Update the information for 'foo' to prevent additional errors, and provide a fix-it hint to move the brackets to the correct location. Additionally, suggest parens for types that require it, such as: int [4] *foo; to: int (*foo)[4]; llvm-svn: 211641
* Objective-C. When we use @selector(save:), etc. there may be more Fariborz Jahanian2014-06-241-3/+10
| | | | | | | | | | | | | than one method with mismatched type of same selector name. clang issues a warning to point this out since it may cause undefined behavior. There are cases though that some APIs don't care about user methods and such warnings are perceived as noise. This patch allows users to add paren delimiters around selector name to turn off such warnings. So, @selector((save:)) will turn off the warning. It also provides 'fixit' so user knows what to do. // rdar://16458579 llvm-svn: 211611
* Propagate isAddressOfMember into typo correction so that we don't correct ↵Nick Lewycky2014-06-231-1/+3
| | | | | | &qualified-id into &unqualified-id. Also make sure to set the naming class when we find the qualified-id in a different class than the nested name specifier specified so far. Fixes PR19681! llvm-svn: 211551
* Parse: Simplify construction of the clobber listDavid Majnemer2014-06-231-4/+1
| | | | | | | | This avoids going over the clobber list twice. No functionality change. llvm-svn: 211485
* [C++1z] Implement N3928: message in static_assert is optional.Richard Smith2014-06-201-14/+24
| | | | llvm-svn: 211394
* Fix PR20081: Parsing templates in the presence of -x cuda -std=c++11Eli Bendersky2014-06-201-2/+5
| | | | | | http://reviews.llvm.org/D4222 llvm-svn: 211357
OpenPOWER on IntegriCloud