summaryrefslogtreecommitdiffstats
path: root/clang/lib/Parse/ParseStmt.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Replaced bool parameters in SkipUntil function with single bit-based parameter.Alexey Bataev2013-11-181-21/+20
| | | | llvm-svn: 194994
* PR8455: Handle an attribute between a goto label and a variable declaration perRichard Smith2013-11-151-5/+34
| | | | | | | the GNU documentation: the attribute only appertains to the label if it is followed by a semicolon. Based on a patch by Aaron Ballman! llvm-svn: 194869
* Diagnose C++11 attributes before fp_contract pragmas.Richard Smith2013-11-151-0/+1
| | | | llvm-svn: 194850
* Avoid diagnosing twice on non-x86 targetsAlp Toker2013-10-301-8/+10
| | | | | | The PowerPC and ARM native builders spotted this. llvm-svn: 193688
* Recover instead of crashing on MS assembly when no target is loadedAlp Toker2013-10-301-6/+7
| | | | | | | It's possible to embed the frontend in applications that haven't initialized backend targets so we need to handle this condition gracefully. llvm-svn: 193685
* Fix a parser crash when there are #pragmas in a context which requires a singleRichard Smith2013-10-281-0/+15
| | | | | | statement (after a case label, if, etc). Patch by Olivier Goffart! llvm-svn: 193545
* Revert r193073 and the attempt to fix it in r193170.Chandler Carruth2013-10-221-26/+0
| | | | | | | | | | This patch wasn't reviewed, and isn't correctly preserving the behaviors relied upon by QT. I don't have a direct example of fallout, but it should go through the standard code review process. For example, it should never have removed the QT test case that was added when fixing those users. llvm-svn: 193174
* Reenable 'break' in 'for' specifier to allow compilation of QT macro 'foreach'Serge Pavlov2013-10-221-0/+4
| | | | | | | | This is a fix to PR17649, caused by fix in r193073. QT uses 'break' statement to implement their 'foreach' macro. To enable build of QT, this fix reenables break but only in 'for' statement specifier and only in the third expression. llvm-svn: 193170
* Fix to PR8880 (clang dies processing a for loop).Serge Pavlov2013-10-211-0/+22
| | | | | | | | | | | | | | | | Due to statement expressions supported as GCC extension, it is possible to put 'break' or 'continue' into a loop/switch statement but outside its body, for example: for ( ; ({ if (first) { first = 0; continue; } 0; }); ) Such usage must be diagnosed as an error, GCC rejects it. To recognize this and similar patterns the flags BreakScope and ContinueScope are temporarily turned off while parsing condition expression. Differential Revision: http://llvm-reviews.chandlerc.com/D1762 llvm-svn: 193073
* Tidy up and improve error recovery for C++11 attributes in bad places. Based onRichard Smith2013-10-151-8/+7
| | | | | | a patch by Michael Han. llvm-svn: 192666
* Fix a typo suggestion regression introduced by r191544.Kaelyn Uhrain2013-10-011-1/+1
| | | | llvm-svn: 191798
* Don't suggest namespaces if the next token is a '.'Kaelyn Uhrain2013-09-271-0/+3
| | | | llvm-svn: 191589
* Don't give suggest things like function names on the left side of "=".Kaelyn Uhrain2013-09-271-0/+2
| | | | llvm-svn: 191545
* Avoid the hard-coded limit on the number of typo corrections attempted.Kaelyn Uhrain2013-09-271-15/+29
| | | | | | | | | | | | | | | Move some tests from typo-correction.cpp to typo-correction-pt2.cpp because they were running afoul of the hard-coded limit of 20 typos corrected. Some of the tests after it were still working due to the limit not applying to cached corrections and in cases where a non-NULL MemberContext is passed in to Sema::CorrectTypo. Most of the moved tests still passed after being moved, but the test involving "data_struct" had only been passing because the test had exceeded that limit so a fix for it is also included (most of the changes to ParseStmt.cpp are shared with and originated from another typo correction impovement that was split into a separate commit). llvm-svn: 191544
* Add some missing ProhibitAttributes calls to some declaration-like #pragmas.Richard Smith2013-09-161-0/+2
| | | | llvm-svn: 190806
* Fix the MCTargetAsmParser API change.Joey Gouly2013-09-121-3/+3
| | | | llvm-svn: 190601
* const'ify Sema::ActOnCXXTryBlock byRobert Wilhelm2013-08-221-1/+1
| | | | | | | | changing Parameter from MutableArrayRef to ArrayRef. No functionality change intended. llvm-svn: 188994
* Remove Extension warning for GNU local labels.Eli Friedman2013-08-201-1/+0
| | | | | | | | | We generally don't warn about extensions involving keywords reserved for the implementation, so we shouldn't warn here either: the standard doesn't require it, and it doesn't provide useful information to the user. llvm-svn: 188840
* const'ify Sema::ActOnCompoundStmt byRobert Wilhelm2013-08-191-4/+2
| | | | | | | | changing Parameter of Sema::ActOnCompoundStmt from MutableArrayRef to ArrayRef. No functionality change intended. llvm-svn: 188705
* OpenMP: basic support for #pragma omp parallelAlexey Bataev2013-07-191-3/+2
| | | | llvm-svn: 186647
* ArrayRef'ize Sema::FinalizeDeclaratorGroup, Sema::BuildDeclaratorGroup andRafael Espindola2013-07-091-2/+2
| | | | | | | | Sema::ActOnDocumentableDecls. Patch by Robert Wilhelm. llvm-svn: 185931
* Update to pass in pointers intead of references.Bill Wendling2013-06-181-1/+1
| | | | llvm-svn: 184176
* Update for LLVM interface change in r181680.Rafael Espindola2013-05-131-1/+1
| | | | llvm-svn: 181681
* Move parsing of identifiers in MS-style inline assembly intoJohn McCall2013-05-031-2/+395
| | | | | | | | | | | | | | | | | | | | | the actual parser and support arbitrary id-expressions. We're actually basically set up to do arbitrary expressions here if we wanted to. Assembly operands permit things like A::x to be written regardless of language mode, which forces us to embellish the evaluation context logic somewhat. The logic here under template instantiation is incorrect; we need to preserve the fact that an expression was unevaluated. Of course, template instantiation in general is fishy here because we have no way of delaying semantic analysis in the MC parser. It's all just fishy. I've also fixed the serialization of MS asm statements. This commit depends on an LLVM commit. llvm-svn: 180976
* Parser support for #pragma clang __debug capturedTareq A. Siraj2013-04-161-0/+3
| | | | | | | | | | | | | | | This patch implements parsing ‘#pragma clang __debug’ as a first step for implementing captured statements. Captured statements are a mechanism for doing outlining in the AST. see http://lists.cs.uiuc.edu/pipermail/cfe-dev/2013-January/027540.html. Currently returns StmtEmpty Author: Andy Zhang <andy.zhang@intel.com> Differential Revision: http://llvm-reviews.chandlerc.com/D369 llvm-svn: 179614
* Support C11 _Atomic type qualifier. This is more-or-less just syntactic ↵Richard Smith2013-03-281-0/+3
| | | | | | sugar for the _Atomic type specifier. llvm-svn: 178210
* OpenMP threadprivate directive parsing and semantic analysisAlexey Bataev2013-03-221-0/+5
| | | | llvm-svn: 177705
* Fix a crash-on-valid where a block capture copy expression wasJohn McCall2013-03-221-1/+1
| | | | | | | | | | | | picking up cleanups from earlier in the statement. Also fix a crash-on-invalid where a reference to an invalid decl from an enclosing scope was causing an expression to fail to build, but only *after* a cleanup was registered from that statement, causing an assertion downstream. The crash-on-valid is rdar://13459289. llvm-svn: 177692
* [libclang] Fix a crash with invalid code, while skip function bodies is enabled.Argyrios Kyrtzidis2013-02-221-1/+1
| | | | llvm-svn: 175860
* Process and handle attributes on conditions and for loop variables. Process andRichard Smith2013-02-201-3/+0
| | | | | | | diagnose attributes on alias declarations, using directives, and attribute declarations. llvm-svn: 175649
* When a statement is dropped from the AST because it was invalid, make sureArgyrios Kyrtzidis2013-02-151-5/+0
| | | | | | | we don't do the scope checks otherwise we are going to hit assertion checks since a label may not have been actually added. llvm-svn: 175281
* Implement C++11 [dcl.align]p1 and C11 6.7.5/2 rules for alignas and _Alignas.Richard Smith2013-01-291-7/+12
| | | | llvm-svn: 173779
* [ms-inline asm] Remove the -fenable-experimental-ms-inline-asm flag. MS-styleChad Rosier2013-01-221-15/+0
| | | | | | inline assembly can be enable with -fasm-blocks or -fms-extensions alone. llvm-svn: 173186
* [ms-inline asm] Remove a warning about ms-style inline assembly not beingChad Rosier2013-01-221-3/+0
| | | | | | supported. llvm-svn: 173177
* Refactor to call ActOnFinishFullExpr on every full expression. TeachRichard Smith2013-01-141-4/+6
| | | | | | | | ActOnFinishFullExpr that some of its checks only apply to discarded-value expressions. This adds missing checks for unexpanded variadic template parameter packs to a handful of constructs. llvm-svn: 172485
* s/CXX0X/CXX11/g, except for __GNU_EXPERIMENTAL_CXX0X__, and update a few ↵Richard Smith2013-01-021-6/+6
| | | | | | nearby 'C++0x' comments. llvm-svn: 171372
* s/CPlusPlus0x/CPlusPlus11/gRichard Smith2013-01-021-3/+3
| | | | llvm-svn: 171367
* Simplify. No functionality change.Nico Weber2012-12-301-7/+2
| | | | llvm-svn: 171268
* Add a bit on FunctionDecl/ObjCMethodDecl to indicate if there was a bodyArgyrios Kyrtzidis2012-12-061-2/+2
| | | | | | that was skipped by the parser. llvm-svn: 169531
* [driver, ms-inline asm] MS-Style inline assembly is controlled by theChad Rosier2012-12-051-1/+1
| | | | | | | -fasm-blocks flag, not the -fms-extensions flag. rdar://12808010 llvm-svn: 169422
* Sort all of Clang's files under 'lib', and fix up the broken headersChandler Carruth2012-12-041-3/+3
| | | | | | | | | | | | | uncovered. This required manually correcting all of the incorrect main-module headers I could find, and running the new llvm/utils/sort_includes.py script over the files. I also manually added quite a few missing headers that were uncovered by shuffling the order or moving headers up to be main-module-headers. llvm-svn: 169237
* PR14381: Never skip constexpr function bodies when code-completing. We may needRichard Smith2012-11-191-2/+4
| | | | | | them in order to parse the rest of the file. llvm-svn: 168327
* Simplify function try/catch scope handling.David Blaikie2012-11-131-3/+3
| | | | | | Based on post-commit review feedback for r167766 by Richard Smith. llvm-svn: 167856
* Fix more try scoping bugs introduced by r167650.David Blaikie2012-11-121-1/+1
| | | | | | | Introduces more clear scoping flags & flag combinations which should hopefully be more understandable. llvm-svn: 167766
* PR14296: function parameter name collisions in function try/catchDavid Blaikie2012-11-101-6/+8
| | | | | | | | | | | | C++11 3.3.3/2 "A parameter name shall not be redeclared in the outermost block of the function definition nor in the outermost block of any handler associated with a function-try-block." It's not totally clear to me whether the "FIXME" case is covered by this, but Richard Smith thinks it probably should be. It's just a bit more involved to fix that case. llvm-svn: 167650
* Support interleaving of other pragmas with FP_CONTRACT at the beginning of aLang Hames2012-11-031-4/+45
| | | | | | compound statement. llvm-svn: 167363
* If skipping bodies is enabled outside code-completion, just skip the body ↵Argyrios Kyrtzidis2012-10-311-1/+7
| | | | | | | | directly without using tentative parsing. llvm-svn: 167142
* Removed an extra blank line.Mahesha S2012-10-271-1/+0
| | | | llvm-svn: 166867
* When used in a compound expression FP_CONTRACT should proceed all explicitLang Hames2012-10-211-3/+8
| | | | | | | declarations and statements. Emit an error if the FP_CONTRACT is used later in a compound statement. llvm-svn: 166383
* People put pragmas in crazy places; add more handling. PR14046.Eli Friedman2012-10-091-0/+20
| | | | | | | I think our general framework for parser pragmas needs a bit more work, but I'm not planning on working on it at the moment. llvm-svn: 165558
OpenPOWER on IntegriCloud