hanchenye-llvm-project/clang/test/Parser
Justin Bogner ab403f463a Parse: Avoid crashing on unterminated top-level asm strings
When parsing invalid top-level asm statements, we were ignoring the
return code of the SkipUntil we used for recovery. This led to crashes
when we hit the end of file and tried to continue parsing anyway.

This fixes the crash and adds a couple of tests for parsing related
problems.

llvm-svn: 196961
2013-12-10 21:29:48 +00:00
..
CompoundStmtScope.c
DelayedTemplateParsing.cpp Parse: Disable delayed template parsing for constexpr functions 2013-10-23 21:31:20 +00:00
MicrosoftExtensions.c Warn on duplicate function specifier 2013-11-13 06:57:53 +00:00
MicrosoftExtensions.cpp Correct hyphenations in comments and assert messages 2013-12-05 04:47:09 +00:00
PR11000.cpp Add 'not' to commands that are expected to fail. 2013-07-04 16:16:58 +00:00
access-spec-attrs.cpp
altivec-csk-bool.c "bool" should be a context-sensitive keyword in Altivec mode. 2013-07-03 20:54:09 +00:00
altivec.c Stop AltiVec parsing from going down the 'implicit int' codepath as part of its 2012-05-09 18:56:43 +00:00
argument_qualified.c
argument_redef.c
argument_scope.c
asm-constraints-pr7869.c
asm.c Parse: Avoid crashing on unterminated top-level asm strings 2013-12-10 21:29:48 +00:00
asm.cpp User-defined literals: reject string and character UDLs in all places where the 2012-03-06 03:21:47 +00:00
atomic.c Support C11 _Atomic type qualifier. This is more-or-less just syntactic sugar for the _Atomic type specifier. 2013-03-28 01:55:44 +00:00
attr-availability.c As Aaron pointed out it's simpler to reject wide string availability attr messages in the parser. 2013-09-13 17:31:48 +00:00
attributes.c Factor out custom parsing for iboutletcollection and vec_type_hint attributes 2013-10-31 01:56:18 +00:00
attributes.mm Make the ObjC attributes diagnostics a bit more informative. 2013-04-04 00:15:10 +00:00
backtrack-crash.cpp
bad-control.c Revert r193073 and the attempt to fix it in r193170. 2013-10-22 18:07:04 +00:00
block-block-storageclass.c Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
block-pointer-decl.c Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
bracket-crash.cpp PR14549. Don't assert if we see an incomplete decltype specifier at the end of the file. 2012-12-09 04:17:57 +00:00
builtin_classify_type.c Change the representation of builtin functions in the AST 2012-08-31 00:14:07 +00:00
builtin_types_compatible.c
c-namespace.c
c1x-alignas.c Implement C++11 [dcl.align]p1 and C11 6.7.5/2 rules for alignas and _Alignas. 2013-01-29 09:02:09 +00:00
c1x-generic-selection.c
c11-noreturn.c Add missing diagnostic for a nested-name-specifier on a free-standing type definition. Bump some related diagnostics from warning to extension in C++, since they're errors there. Add some missing checks for function specifiers on non-function declarations. 2013-03-18 22:52:47 +00:00
captured-statements.c Parser support for #pragma clang __debug captured 2013-04-16 18:41:26 +00:00
char-literal-printing.c
check-objc2-syntax-1.m Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
check-syntax-1.m
check_cast.c
colon-colon-parentheses.cpp Fix test cases I broken when fixing grammar in diagnostic message. 2012-11-02 21:41:42 +00:00
completely-empty-header-file.h Add pedantic warning -Wempty-translation-unit (C11 6.9p1). 2012-06-06 17:25:21 +00:00
compound_literal.c Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
control-scope.c
crash-report.c Use the new --crash option in commands that are expected to crash. 2013-07-05 02:53:30 +00:00
cuda-kernel-call.cu Extend the error recovery for a template-argument-list terminated by '>>' to 2012-06-18 06:11:04 +00:00
cxx-altivec.cpp Fix Altivec vector literal parser hack for C++11. 2013-08-13 23:38:34 +00:00
cxx-ambig-decl-expr-xfail.cpp
cxx-ambig-decl-expr.cpp When disambiguating an expression-statement from a declaraton-statement, if the 2012-08-23 20:19:14 +00:00
cxx-ambig-init-templ.cpp Modify the uninitialized field visitor to detect uninitialized use across the 2013-09-20 03:03:06 +00:00
cxx-ambig-paren-expr.cpp
cxx-attributes.cpp Factor out custom parsing for iboutletcollection and vec_type_hint attributes 2013-10-31 01:56:18 +00:00
cxx-bool.cpp
cxx-casting.cpp Add quotation marks to template names in diagnostics. 2013-03-05 06:21:38 +00:00
cxx-class-template-specialization.cpp Fix for PR 16367, display the name of a function in a diagnostic instead of 2013-06-19 22:25:01 +00:00
cxx-class.cpp Avoid extra error messages if method definition is inside function. 2013-12-09 05:25:47 +00:00
cxx-condition.cpp
cxx-decl.cpp PR9547: If we're parsing a simple-declaration that contains a tag definition, 2013-11-19 22:47:36 +00:00
cxx-default-args.cpp PR13657 (and duplicates): 2013-09-12 23:28:08 +00:00
cxx-default-delete.cpp
cxx-ext-delete-default.cpp
cxx-extern-c-array.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
cxx-extra-semi.cpp Add diagnostics for comma at end of enum and for extra semicolon at namespace 2012-07-23 05:45:25 +00:00
cxx-friend.cpp Check "late parsed" friend functions for redefinition 2013-10-18 05:54:24 +00:00
cxx-in-c.c
cxx-member-crash.cpp Add 'not' to commands that are expected to fail. 2013-07-04 16:16:58 +00:00
cxx-member-init-missing-paren-crash.cpp
cxx-member-initializers.cpp PR16480: Reimplement token-caching for constructor initializer lists. This 2013-07-04 00:13:48 +00:00
cxx-namespace-alias.cpp
cxx-reference.cpp
cxx-stmt.cpp If a comma operator is followed by a token which unambiguously indicates the 2012-09-18 00:52:05 +00:00
cxx-template-argument.cpp Fix PR17637: incorrect calculation of template parameter depth 2013-12-04 03:51:14 +00:00
cxx-template-decl.cpp Fix PR17637: incorrect calculation of template parameter depth 2013-12-04 03:51:14 +00:00
cxx-throw.cpp Push the knowledge that we are parsing a type-id/type-name further into the 2012-05-09 20:55:26 +00:00
cxx-typeid.cpp
cxx-typeof.cpp Improve diagnostics for invalid use of non-static members / this: 2012-04-05 01:13:04 +00:00
cxx-undeclared-identifier.cpp In C++, if we hit an error in the class-head, don't try to parse the class body. 2012-12-05 11:34:06 +00:00
cxx-using-declaration.cpp Imrpove the note text for when a non-type decl hides a tag type 2012-04-27 18:26:49 +00:00
cxx-using-directive.cpp Allow CorrectTypo to replace CXXScopeSpecifiers that refer to classes. 2013-10-19 00:05:00 +00:00
cxx-variadic-func.cpp
cxx0x-ambig.cpp The 'constexpr implies const' rule for non-static member functions is gone in 2013-04-21 01:08:50 +00:00
cxx0x-attributes.cpp add an additional test case for generic attributes 2013-11-30 21:17:12 +00:00
cxx0x-condition.cpp Cleaning up the self initialization checker. 2012-10-01 17:39:51 +00:00
cxx0x-decl.cpp Support GNU attributes in alias-declarations now that GCC has implemented them 2013-10-24 01:21:09 +00:00
cxx0x-for-range.cpp
cxx0x-in-cxx98.cpp PR17567: Improve diagnostic for a mistyped constructor name. If we see something 2013-10-15 00:00:26 +00:00
cxx0x-lambda-expressions.cpp Add compat/extension warnings for init captures. 2013-09-28 05:38:27 +00:00
cxx0x-literal-operators.cpp Implement C++11 [lex.ext]p10 for string and character literals: a ud-suffix not 2012-03-08 02:39:21 +00:00
cxx0x-member-initializers.cpp PR13657 (and duplicates): 2013-09-12 23:28:08 +00:00
cxx0x-override-control-keywords.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
cxx0x-rvalue-reference.cpp
cxx11-base-spec-attributes.cpp PR15300: Support C++11 attributes on base-specifiers. We don't support any such 2013-02-19 23:47:15 +00:00
cxx11-brace-initializers.cpp PR14918: Don't confuse braced-init-lists after template variable declarations 2013-01-15 06:49:38 +00:00
cxx11-stmt-attributes.cpp Diagnose C++11 attributes before fp_contract pragmas. 2013-11-15 21:10:54 +00:00
cxx11-type-specifier.cpp If parsing a trailing-return-type fails, don't pretend we didn't have one at 2012-06-12 01:51:59 +00:00
cxx11-user-defined-literals.cpp DR1473: Do not require a space between operator"" and the ud-suffix in a 2012-10-20 08:41:10 +00:00
declarators.c Recognition of empty structures and unions is moved to semantic stage 2013-06-08 13:29:58 +00:00
designator.c
empty-translation-unit.c Our style for diagnostic messages is to not include a trailing dot. 2012-11-05 05:32:00 +00:00
encode.m Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
enhanced-proto-1.m Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
expressions.c Make wording for certain invalid unary expressions more consistent. 2013-10-09 00:22:23 +00:00
expressions.m
extension.c
for.cpp
function-decls.c
goto.c
if-scope-c90.c Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
if-scope-c99.c
implicit-casts.c
knr_parameter_attributes.c Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
method-def-in-class.m
method-prototype-1.m
missing-closing-rbrace.m Do the error recovery for @end only. 2013-03-20 18:45:49 +00:00
missing-end-2.m
missing-end-3.m
missing-end-4.m Revert my patch in r191155 to allow forward 2013-09-24 17:03:07 +00:00
missing-end.m
missing-selector-name.mm objective-c parsing. Don't crash when selector name 2012-07-26 17:32:28 +00:00
ms-inline-asm.c Re-enable ms inline asm parser test. 2013-12-08 21:12:27 +00:00
namelookup-bug-1.c Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
namelookup-bug-2.c Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
namespace-alias-attr.cpp
namespaces.cpp Fix crash on missing namespace name in namespace alias definition -- PR14085. 2012-10-27 23:44:27 +00:00
nested-namespaces-recovery.cpp
objc-alias-printing.m
objc-boxing.m Objective-C parsing [qoi]: Provide good recovery when 2013-04-18 19:37:43 +00:00
objc-category-neg-1.m
objc-diag-width.mm Add 'not' to commands that are expected to fail. 2013-07-04 16:16:58 +00:00
objc-error-qualified-implementation.m Objective-C parsing. Error recovery when category implementation 2013-05-17 17:58:11 +00:00
objc-forcollection-1.m
objc-forcollection-neg-2.m Added a new attribute, objc_root_class, which informs the compiler when a root class is intentionally declared. 2012-04-06 18:12:22 +00:00
objc-forcollection-neg.m objective-c: improve diagnostic when collection expression is 2012-06-22 15:37:00 +00:00
objc-foreach-syntax.m Added a new attribute, objc_root_class, which informs the compiler when a root class is intentionally declared. 2012-04-06 18:12:22 +00:00
objc-init.m Restructure how the driver communicates information about the 2012-06-20 06:18:46 +00:00
objc-interfaces.m
objc-messaging-1.m
objc-messaging-neg-1.m
objc-missing-impl.m
objc-property-syntax.m Added a new attribute, objc_root_class, which informs the compiler when a root class is intentionally declared. 2012-04-06 18:12:22 +00:00
objc-quirks.m
objc-recover.mm Better parser recovery in Objective-C containers. 2012-07-09 16:54:53 +00:00
objc-synthesized-recover.m Added a new attribute, objc_root_class, which informs the compiler when a root class is intentionally declared. 2012-04-06 18:12:22 +00:00
objc-try-catch-1.m
objc-type-printing.m
objcbridge-related-attribute.m ObjectiveC - Introducing objc_bridge_related attribute 2013-12-04 20:32:50 +00:00
objcxx-at.mm
objcxx-lambda-expressions-neg.mm
objcxx0x-lambda-expressions.mm Add compat/extension warnings for init captures. 2013-09-28 05:38:27 +00:00
objcxx11-attributes.mm Adding the Subjects entry back for the noreturn attributes. This caused some test cases to be updated because the original diagnostic was about applying to methods as well as functions, but the semantic checking disallowed methods. 2013-11-27 18:53:58 +00:00
objcxx11-initialized-temps.mm Objective-C++: Enable passing of modern C++11 style 2013-04-18 23:43:21 +00:00
objcxx11-protocol-in-template.mm Don't require a space between the two ">" in "vector<id<protocol>>" in objc++11. 2012-12-14 18:22:38 +00:00
objcxx11-user-defined-literal.mm User-defined literals: reject string and character UDLs in all places where the 2012-03-06 03:21:47 +00:00
offsetof.c
opencl-astype.cl
opencl-image-access.cl Re-commit r170428 changes with Linux style file endings. 2012-12-18 14:38:23 +00:00
opencl-kernel.cl Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
opencl-pragma.cl Add pedantic warning -Wempty-translation-unit (C11 6.9p1). 2012-06-06 17:25:21 +00:00
opencl-storage-class.cl
parenthesis-balance.cpp
parmvardecl_conversion.c Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
parser_overflow.c Add 'not' to commands that are expected to fail. 2013-07-04 16:16:58 +00:00
placeholder-recovery.m Fix warning text of my last patch. 2013-02-28 23:16:39 +00:00
pointer-arithmetic.c
pointer_promotion.c
pragma-fp-contract.c Fix bogus diagnostic wording. There's no such thing as a compound expression. 2013-11-15 21:08:45 +00:00
pragma-options.c [Parser] Handle #pragma pack/align inside C structs. 2013-04-18 01:42:35 +00:00
pragma-options.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
pragma-pack.c [Parser] Handle #pragma pack/align inside C structs. 2013-04-18 01:42:35 +00:00
pragma-visibility.c
pragma-visibility2.c
pragma-weak.c Fix a parser crash when there are #pragmas in a context which requires a single 2013-10-28 22:04:30 +00:00
promote_types_in_proto.c
recovery.c improve error recovery for extra ')'s after a if/switch/while condition. Before: 2012-04-28 16:24:20 +00:00
recovery.cpp Parse: Recover better from bad definitions with base specifiers 2013-12-05 01:36:53 +00:00
recovery.m
recursion-limits.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
selector-1.m Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
skip-function-bodies.mm Added a flag to the parser to skip method bodies. 2012-04-12 10:11:59 +00:00
statements.c If a comma operator is followed by a token which unambiguously indicates the 2012-09-18 00:52:05 +00:00
struct-recursion.c
switch-recovery.cpp Allow CorrectTypo to replace CXXScopeSpecifiers that refer to classes. 2013-10-19 00:05:00 +00:00
top-level-semi-cxx0x.cpp Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
traditional_arg_scope.c
typeof.c
types.c Prior to adding the new "expected-no-diagnostics" directive to VerifyDiagnosticConsumer, make the necessary adjustment to 580 test-cases which will henceforth require this new directive. 2012-10-19 12:44:48 +00:00
warn-dangling-else.cpp
warn-semicolon-before-method-body.m Fix a tranche of comment, test and doc typos 2013-12-05 16:25:25 +00:00