llvm-project/clang/test/Parser
Richard Smith f4c51d9d76 In C++11 mode, when an integral constant expression is desired and we have a
value of class type, look for a unique conversion operator converting to
integral or unscoped enumeration type and use that. Implements [expr.const]p5.

Sema::VerifyIntegerConstantExpression now performs the conversion and returns
the converted result. Some important callers of Expr::isIntegralConstantExpr
have been switched over to using it (including all of those required for C++11
conformance); this switch brings a side-benefit of improved diagnostics and, in
several cases, simpler code. However, some language extensions and attributes
have not been moved across and will not perform implicit conversions on
constant expressions of literal class type where an ICE is required.

In passing, fix static_assert to perform a contextual conversion to bool on its
argument.

llvm-svn: 149776
2012-02-04 09:53:13 +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 Enable delayed template parsing for friend functions declared at template class scope. 2011-11-18 23:47:17 +00:00
MicrosoftExtensions.c Hey, maybe we shouldn't silently ignore decl attributes 2011-10-01 05:17:03 +00:00
MicrosoftExtensions.cpp Implement the Microsoft __if_exists/if_not_exists extension in initializer-list. 2011-12-12 23:24:39 +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 Remove some more hard CR-LF lines. These were particularly weird as they were 2011-04-25 07:09: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
attr-availability.c Modify how the -verify flag works. Currently, the verification string and 2011-12-15 00:38:15 +00:00
attributes.c Refactor __attribute__ parsing, and add a diagnostic if the r_paren at the end 2011-10-17 21:20:17 +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 revert a hunk of code that Argiris added in r106213, which is the 2010-07-12 01:48:28 +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 alignment-specifiers in C1X and C++11, remove 2011-09-29 18:04:28 +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
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 Parse: add support for parsing CUDA kernel calls 2011-02-09 21:12:02 +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 Fix code so that a SkipUntil will ignore semicolons when skipping a 2012-01-21 02:59:18 +00:00
cxx-condition.cpp Eliminate the "minimal" and printing parser actions, which only ever 2010-07-26 04:08:02 +00:00
cxx-decl.cpp Improve the diagnostic when a comma ends up at the end of a declarator group 2011-10-19 21:33:05 +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 PR11148: Fix crash-on-invalid if an invalid member declaration is marked as 2011-11-10 09:08:44 +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-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 When we're inside a functional cast, '>' is an operator. Fixes PR8912. 2011-01-11 00:33:19 +00:00
cxx-template-decl.cpp When we are missing the ',' or '>' to terminate a template parameter 2010-10-15 01:15:58 +00:00
cxx-throw.cpp Add -fcxx-exceptions to all tests that use C++ exceptions. 2011-02-28 00:40:07 +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 Preserve invalidity of typeof operands in C++. 2010-08-24 23:41:43 +00:00
cxx-undeclared-identifier.cpp Fix PR7180. 2010-06-22 11:30:04 +00:00
cxx-using-declaration.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +00:00
cxx-using-directive.cpp Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +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-attributes.cpp In C++11 mode, when an integral constant expression is desired and we have a 2012-02-04 09:53:13 +00:00
cxx0x-decl.cpp Improve the diagnostic when a comma ends up at the end of a declarator group 2011-10-19 21:33:05 +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 Stub out the Sema interface for lambda expressions, and change the parser to use it. Unconditionally error on lambda expressions because they don't work in any meaningful way yet. 2012-01-04 02:40:39 +00:00
cxx0x-literal-operators.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-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
declarators.c ...I forgot to check my new test after adding it, and lo, there's slightly different 2010-08-26 17:42:30 +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
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 Fix: allow @protocol forward declarations inside @implementation-s. 2011-12-08 09:58:43 +00:00
missing-end.m Extend warnings for missing '@end'. 2011-12-06 09:25:23 +00:00
ms-inline-asm.c Some fixes for MS-style asm parsing: specifically, add some error checking, and handle asm comments using semicolons correctly. (The comments are actually surprisingly tricky.) 2011-09-30 01:13:51 +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-category-neg-1.m Modify how the -verify flag works. Currently, the verification string and 2011-12-15 00:38:15 +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 Modify how the -verify flag works. Currently, the verification string and 2011-12-15 00:38:15 +00:00
objc-forcollection-neg.m Fix scoping of method declarations and issue 2011-02-09 22:20:01 +00:00
objc-foreach-syntax.m Fix scoping of method declarations and issue 2011-02-09 22:20:01 +00:00
objc-init.m Modify how the -verify flag works. Currently, the verification string and 2011-12-15 00:38:15 +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 Use Parser::ExpectAndConsume() uniformly to eat semicolons after 2011-01-05 01:10:06 +00:00
objc-quirks.m Improve diagnostics for dangling '}'. 2012-01-17 01:04:27 +00:00
objc-synthesized-recover.m Update tests to use %clang_cc1 instead of 'clang-cc' or 'clang -cc1'. 2009-12-15 20:14:24 +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 Parsing of C++0x lambda expressions, from John Freeman with help from 2011-08-04 15:30:47 +00:00
objcxx0x-lambda-expressions.mm Refactor to share code for handling return statements between lambda expressions and block literals. As it turns out, almost all the logic can be shared. 2012-01-26 03:00:14 +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 OpenCL: disallow '#pragma OPENCL EXTENSION all : enable', per OpenCL 1.1 9.1 2011-10-06 03:00:50 +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 diagnostics for dangling '}'. 2012-01-17 01:04:27 +00:00
recovery.m Fix the recovery from missing semis on @property declarations to not consume 2011-03-26 01:53:26 +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
statements.c Don't skip past the '}' if an expression has error and is not followed by ';'. 2010-03-31 00:37:59 +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