clang-1/test/Parser
Richard Smith b9c6261d02 Improvements to vexing-parse warnings. Make the no-parameters case more
accurate by asking the parser whether there was an ambiguity rather than trying
to reverse-engineer it from the DeclSpec. Make the with-parameters case have
better diagnostics by using semantic information to drive the warning,
improving the diagnostics and adding a fixit.

Patch by Nikola Smiljanic. Some minor changes by me to suppress diagnostics for
declarations of the form 'T (*x)(...)', which seem to have a very high false
positive rate, and to reduce indentation in 'warnAboutAmbiguousFunction'.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160998 91177308-0d34-0410-b5e6-96231b3b80d8
2012-07-30 21:30:52 +00:00
..
CompoundStmtScope.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
DelayedTemplateParsing.cpp Support the use of "=delete" and "=default" with delayed template 2012-06-28 21:43:01 +00:00
MicrosoftExtensions.c [ms-style asm] Change the fatal error to an extension warning. Apparently, this 2012-06-20 18:28:37 +00:00
MicrosoftExtensions.cpp Recognize the MS inheritance attributes and turn them into attributes 2012-05-22 21:28:12 +00:00
PR11000.cpp Update all tests other than Driver/std.cpp to use -std=c++11 rather than 2011-10-13 22:29:44 +00:00
access-spec-attrs.cpp Allow for annotate attributes after access specifiers. When such 2011-10-13 09:41:32 +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 Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
argument_redef.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
argument_scope.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
asm-constraints-pr7869.c Added '|' delimiter to separate inline asm multiple alternative constraints for Clang side of support. 2010-09-18 01:15:13 +00:00
asm.c Diagnose use of wide string literal in 'asm' instead of crashing. Fixes <rdar://problem/10465079>. 2011-12-02 00:35:46 +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
attr-availability.c Modify how the -verify flag works. Currently, the verification string and 2011-12-15 00:38:15 +00:00
attributes.c Allow thread safety attributes on function definitions. 2012-02-16 16:50:43 +00:00
backtrack-crash.cpp we do in fact have to cache the EOF token returned by the preprocessor. 2010-07-12 04:25:32 +00:00
bad-control.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
block-block-storageclass.c Eliminate the "minimal" and printing parser actions, which only ever 2010-07-26 04:08:02 +00:00
block-pointer-decl.c Eliminate the "minimal" and printing parser actions, which only ever 2010-07-26 04:08:02 +00:00
bracket-crash.cpp Fix decltype crash-on-invalid, if we don't find a matching ')' for an ill-formed 2012-02-27 05:24:00 +00:00
builtin_classify_type.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
builtin_types_compatible.c Improve diagnostics when we fail to convert from a source type to a 2010-04-09 00:35:39 +00:00
c-namespace.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
c1x-alignas.c Add support for the C11 _Alignof keyword. 2012-06-30 21:33:57 +00:00
c1x-generic-selection.c C1X: implement generic selections 2011-04-15 00:35:48 +00:00
char-literal-printing.c Update all tests other than Driver/std.cpp to use -std=c++11 rather than 2011-10-13 22:29:44 +00:00
check-objc2-syntax-1.m Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
check-syntax-1.m Modify how the -verify flag works. Currently, the verification string and 2011-12-15 00:38:15 +00:00
check_cast.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +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 Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
control-scope.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +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 Modify how the -verify flag works. Currently, the verification string and 2011-12-15 00:38:15 +00:00
cxx-ambig-decl-expr-xfail.cpp When we're performing tentative parsing to determine whether the 2010-07-15 21:05:01 +00:00
cxx-ambig-decl-expr.cpp When we're performing tentative parsing to determine whether the 2010-07-15 21:05:01 +00:00
cxx-ambig-paren-expr.cpp Teach TryAnnotateTypeOrScopeToken to deal with already-annotated 2009-12-19 00:35:18 +00:00
cxx-attributes.cpp Convert this file to not have Windows line endings -- likely committed from 2010-08-05 03:16:33 +00:00
cxx-bool.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
cxx-casting.cpp Fix a problem in digraph handling where "[:" might be treated as "<::" and 2011-09-20 20:03:50 +00:00
cxx-class.cpp Add diagnostics for comma at end of enum and for extra semicolon at namespace 2012-07-23 05:45:25 +00:00
cxx-condition.cpp Accept braced-init-lists in conditions, and, in passing, dramatically improve 2012-02-22 06:49:09 +00:00
cxx-decl.cpp Add diagnostics for comma at end of enum and for extra semicolon at namespace 2012-07-23 05:45:25 +00:00
cxx-default-args.cpp Change warning about incomplete parsing of C++ default arg to error and provide a test case; thanks Doug! 2010-08-09 21:08:13 +00:00
cxx-default-delete.cpp Drive-by fix of incorrect diagnostic, and a test case for said diagnostic. The double error is unfortunate, but I really don't see an alternative whose effort is worth it. 2012-02-11 23:51:21 +00:00
cxx-ext-delete-default.cpp Change the diagnostics which said 'accepted as an extension' to instead say 2011-12-29 21:57:33 +00:00
cxx-extern-c-array.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +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 Tweak the diagnostics for the C++0x extensions to friend types to note 2011-05-10 21:23:31 +00:00
cxx-in-c.c Fix test for previous commit 2011-02-04 11:59:47 +00:00
cxx-member-crash.cpp If the declaration of a C++ member function with an inline definition 2011-04-14 23:19:27 +00:00
cxx-member-init-missing-paren-crash.cpp Fix a crash-on-invalid. 2011-09-23 22:39:23 +00:00
cxx-member-initializers.cpp Fix a bug in the token caching for inline constructors in C++11, and improve error recovery in both dialects. This should fix the GCC test suite failures as well. 2011-09-30 08:32:17 +00:00
cxx-namespace-alias.cpp Eliminate the "minimal" and printing parser actions, which only ever 2010-07-26 04:08:02 +00:00
cxx-reference.cpp Switch diagnostic text from "C++0x" over to "C++11". 2011-10-12 19:26:40 +00:00
cxx-stmt.cpp Add -fcxx-exceptions to all tests that use C++ exceptions. 2011-02-28 00:40:07 +00:00
cxx-template-argument.cpp Extend the error recovery for a template-argument-list terminated by '>>' to 2012-06-18 06:11:04 +00:00
cxx-template-decl.cpp Fix bugs found by -Wconstant-conversion improvements currently under review. 2012-04-09 16:37:11 +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 Modify how the -verify flag works. Currently, the verification string and 2011-12-15 00:38:15 +00:00
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 Don't use the implicit int rule for error recovery in C++. Instead, try to 2012-05-15 21:01:51 +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 add/modify nested name qualifiers to typos that 2012-06-06 20:54:51 +00:00
cxx-variadic-func.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
cxx0x-ambig.cpp Do not warn about a function decl / direct init ambiguity if the function has a trailing return type. 2012-07-23 21:41:30 +00:00
cxx0x-attributes.cpp Recognize GNU attributes after 'enum class'. Fixes the libc++ build. 2012-06-23 22:30:04 +00:00
cxx0x-condition.cpp Update parser's disambiguation to cope with braced function-style casts in 2012-02-23 01:36:12 +00:00
cxx0x-decl.cpp Pedantic -pedantic correction. Duplicate cv-qualifiers are permitted in C++11 2012-07-24 20:24:58 +00:00
cxx0x-for-range.cpp PR11297: Provide a better diagnostic for code which contains a 2011-12-20 22:56:20 +00:00
cxx0x-in-cxx98.cpp Change the diagnostics which said 'accepted as an extension' to instead say 2011-12-29 21:57:33 +00:00
cxx0x-lambda-expressions.cpp Fix parsing of trailing-return-type. Types are syntactically prohibited from 2012-03-12 08:56:40 +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 Update all tests other than Driver/std.cpp to use -std=c++11 rather than 2011-10-13 22:29:44 +00:00
cxx0x-override-control-keywords.cpp Update all tests other than Driver/std.cpp to use -std=c++11 rather than 2011-10-13 22:29:44 +00:00
cxx0x-rvalue-reference.cpp Update all tests other than Driver/std.cpp to use -std=c++11 rather than 2011-10-13 22:29:44 +00:00
cxx11-stmt-attributes.cpp Add an AttributedStmt type to represent a statement with C++11 attributes 2012-04-14 00:33:13 +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 Support for raw and template forms of numeric user-defined literals, 2012-03-09 08:00:36 +00:00
declarators.c A ':' after an enum-specifier at class scope is a bitfield, not a typo for a ';'. 2012-07-02 19:14:01 +00:00
designator.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
empty-translation-unit.c Add pedantic warning -Wempty-translation-unit (C11 6.9p1). 2012-06-06 17:25:21 +00:00
encode.m Enhance the array bounds checking to work for several other constructs, 2011-02-17 21:10:52 +00:00
enhanced-proto-1.m objc: diagnose duplicate declaration of methods 2011-12-13 19:40:34 +00:00
expressions.c Diagnose a missing ')' on what looks like a statement expression. 2011-04-06 02:35:25 +00:00
expressions.m Revert r114316, -Wunused-value enabled by default was intended. 2010-09-19 23:03:35 +00:00
extension.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
for.cpp Improve parser recovery in "for" statements, from Richard Smith! 2011-02-17 03:38:46 +00:00
function-decls.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
goto.c implement basic support for __label__. I wouldn't be shocked if there are 2011-02-18 02:08:43 +00:00
if-scope-c90.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
if-scope-c99.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
implicit-casts.c Improve diagnostics when we fail to convert from a source type to a 2010-04-09 00:35:39 +00:00
knr_parameter_attributes.c Retain attributes for K&R style parameter declarations. 2010-02-23 12:22:13 +00:00
method-def-in-class.m In Parser::SkipUntil do not stop at '@' unconditionally. 2011-12-17 04:13:22 +00:00
method-prototype-1.m Eliminate the "minimal" and printing parser actions, which only ever 2010-07-26 04:08:02 +00:00
missing-end-2.m Extend warnings for missing '@end'. 2011-12-06 09:25:23 +00:00
missing-end-3.m Extend warnings for missing '@end'. 2011-12-06 09:25:23 +00:00
missing-end-4.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
missing-end.m Extend warnings for missing '@end'. 2011-12-06 09:25:23 +00:00
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 [ms-style asm] Change the fatal error to an extension warning. Apparently, this 2012-06-20 18:28:37 +00:00
namelookup-bug-1.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
namelookup-bug-2.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
namespace-alias-attr.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
namespaces.cpp Namespaces can only be defined at global or namespace scope. Fixes PR6596. 2010-05-14 05:08:22 +00:00
nested-namespaces-recovery.cpp Add a fix-it and better error recovery for improperly nested namespaces. This will give a better error message for cases such as "namespace foo::bar::baz {}" and a suggested fix-it of "namespace foo { namespace bar { namespace baz {} } }" 2011-05-26 20:11:09 +00:00
objc-alias-printing.m Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
objc-boxing.m Implements boxed expressions for Objective-C. <rdar://problem/10194391> 2012-04-19 00:25:12 +00:00
objc-category-neg-1.m Modify how the -verify flag works. Currently, the verification string and 2011-12-15 00:38:15 +00:00
objc-diag-width.mm Revert r160319, it caused PR13417. Add a test for PR13417. 2012-07-20 06:44:52 +00:00
objc-forcollection-1.m Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
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 Improve error recovery when we see ':' and expect a ';'. 2010-09-07 18:31:03 +00:00
objc-messaging-1.m Revert r114316, -Wunused-value enabled by default was intended. 2010-09-19 23:03:35 +00:00
objc-messaging-neg-1.m Parsing of C++0x lambda expressions, from John Freeman with help from 2011-08-04 15:30:47 +00:00
objc-missing-impl.m Extend warnings for missing '@end'. 2011-12-06 09:25:23 +00:00
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 Improve diagnostics for dangling '}'. 2012-01-17 01:04:27 +00:00
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 Make clang -cc1 disable Objective-C exceptions by default, and add a -fobjc-exceptions flag to turn them on. 2011-02-22 01:52:06 +00:00
objc-type-printing.m Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
objcxx-at.mm Parse an '@' in an Objective-C++ class member specification, 2011-04-14 17:21:19 +00:00
objcxx-lambda-expressions-neg.mm Fix tests for r150123 2012-02-09 01:02:27 +00:00
objcxx0x-lambda-expressions.mm Remove the "unsupported" error for lambda expressions. It's annoying, 2012-02-09 08:26:42 +00:00
objcxx11-attributes.mm Improvements to vexing-parse warnings. Make the no-parameters case more 2012-07-30 21:30:52 +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 Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
opencl-astype.cl Modify a diagnostic introduced in r132612 to emit QualTypes directly 2011-06-08 15:15:17 +00:00
opencl-image-access.cl Add support for language-specific address spaces. On top of that, 2011-03-18 22:38:29 +00:00
opencl-kernel.cl OpenCL: add support for __kernel, kernel keywords and EXTENSION, 2011-02-14 01:42:53 +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 OpenCL: add a non-standard extension, cl_clang_storage_class_specifiers, 2011-10-06 03:01:00 +00:00
parenthesis-balance.cpp For code such as: 2011-07-01 20:54:02 +00:00
parmvardecl_conversion.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
parser_overflow.c Introduce BalancedDelimiterTracker, to better track open/close 2011-10-12 16:37:45 +00:00
placeholder-recovery.m When parsing something that looks like an ill-formed 2010-11-19 17:10:50 +00:00
pointer-arithmetic.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
pointer_promotion.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
pragma-options.c Parser: Add support for #pragma align, which is just another spelling of #pragma 2010-07-31 19:17:07 +00:00
pragma-pack.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
pragma-visibility.c Tests for #pragma GCC visibility. 2010-08-05 07:00:53 +00:00
pragma-visibility2.c PR10392: "#pragma GCC visibility" must not expand macros in its 2011-07-20 01:03:50 +00:00
pragma-weak.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
prefix-attributes.m Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
promote_types_in_proto.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
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 Recover when correcting an unknown type name to a keyword like "struct". 2012-06-15 23:45:58 +00:00
recovery.m Fix the recovery from missing semis on @property declarations to not consume 2011-03-26 01:53:26 +00:00
recursion-limits.cpp Restore paren, bracket and brace counts in parser when 2012-04-30 16:20:27 +00:00
selector-1.m fix the second part of rdar://8366474 - clang fails to parse ObjC selectors with '::', when :: isn't the first part of the selector. 2011-03-26 18:11:38 +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 Generalize -Wempty-body: warn when statement body is empty (closes: PR11329) 2012-02-14 22:14:32 +00:00
struct-recursion.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
switch-recovery.cpp Remove the last FIXMEs on -Wunused-comparison since it got moved to 2011-08-18 02:04:29 +00:00
top-level-semi-cxx0x.cpp Update all tests other than Driver/std.cpp to use -std=c++11 rather than 2011-10-13 22:29:44 +00:00
traditional_arg_scope.c Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
typeof.c The grammar for GNU typeof in C requires an expression to be 2010-07-28 18:22:12 +00:00
types.c Eliminate the "minimal" and printing parser actions, which only ever 2010-07-26 04:08:02 +00:00
warn-dangling-else.cpp Add -Wdangling-else. 2011-12-22 23:26:17 +00:00