llvm-project/clang/test/Parser
Reid Kleckner b6a8152b8b [MS] Warn when shadowing template parameters under -fms-compatibility
Summary:
C++ does not allow shadowing template parameters, but previously we
allowed it under -fms-extensions. Now this behavior is controlled by
-fms-compatibility, and we emit a -Wmicrosoft-template warning when it
happens.

Fixes PR43265

Reviewers: thakis, hans

Subscribers: amccarth, rsmith, STL_MSFT, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D67463

llvm-svn: 371753
2019-09-12 18:26:34 +00:00
..
CompoundStmtScope.c
DelayedTemplateParsing.cpp [MS] Warn when shadowing template parameters under -fms-compatibility 2019-09-12 18:26:34 +00:00
MicrosoftExtensions.c [Parse] Let declarations follow labels in -fms-extensions mode 2016-08-01 16:39:29 +00:00
MicrosoftExtensions.cpp Refactor constant evaluation of typeid(T) to track a symbolic type_info 2019-05-17 07:06:46 +00:00
MicrosoftExtensionsInlineAsm.c
PR11000.cpp
PR21872.cpp
access-spec-attrs.cpp
altivec-csk-bool.c Remove the -faltivec alias option and replace it with -maltivec everywhere. 2017-03-21 22:06:18 +00:00
altivec.c Remove the -faltivec alias option and replace it with -maltivec everywhere. 2017-03-21 22:06:18 +00:00
annotation-token-in-lexed-body.cpp
argument_qualified.c
argument_redef.c
argument_scope.c
arm-windows-calling-convention-handling.c [AArch64] Ignore stdcall and similar on aarch64/windows 2017-08-07 20:52:04 +00:00
asm-constraints-pr7869.c
asm-goto.c Re-check in clang support gun asm goto after fixing tests. 2019-06-03 15:57:25 +00:00
asm-goto.cpp Re-check in clang support gun asm goto after fixing tests. 2019-06-03 15:57:25 +00:00
asm.c Revert "clang support gnu asm goto." 2019-05-30 15:38:02 +00:00
asm.cpp Revert "clang support gnu asm goto." 2019-05-30 15:38:02 +00:00
atomic.c Diagnose _Atomic as a C11 extension. 2019-09-04 21:01:57 +00:00
attr-availability.c
attr-external-source-symbol-cxx11.cpp Introduce an 'external_source_symbol' attribute that describes the origin 2017-03-01 18:06:25 +00:00
attr-external-source-symbol.m Introduce an 'external_source_symbol' attribute that describes the origin 2017-03-01 18:06:25 +00:00
attributes.c Require commas to separate multiple GNU-style attributes in the same attribute list. 2019-06-18 12:57:05 +00:00
attributes.mm Add support for attributes on @implementations in Objective-C 2019-04-11 17:55:30 +00:00
backtrack-crash.cpp
backtrack-off-by-one.cpp PR0091R3: Implement parsing support for using templates as types. 2017-01-26 20:40:47 +00:00
bad-control.c
block-block-storageclass.c
block-pointer-decl.c
bracket-crash.cpp
brackets.c Fix typos in clang 2018-04-06 15:14:32 +00:00
brackets.cpp Fix typos in clang 2018-04-06 15:14:32 +00:00
builtin_classify_type.c
builtin_source_location.c Implement __builtin_LINE() et. al. to support source location capture. 2019-05-16 21:04:15 +00:00
builtin_types_compatible.c Make __builtin_types_compatible_p more like GCC's 2017-10-16 22:58:37 +00:00
c-namespace.c
c1x-alignas.c Quote the token being diagnosed for C11 extensions. 2019-08-27 13:47:51 +00:00
c1x-generic-selection.c
c2x-attributes.c Add a new language mode for C2x; enable [[attribute]] support by default in C2x. 2019-05-14 12:09:55 +00:00
c2x-attributes.m Add -f[no-]double-square-bracket-attributes as new driver options to control use of [[]] attributes in all language modes. This is the initial implementation of WG14 N2165, which is a proposal to add [[]] attributes to C2x, but also allows you to enable these attributes in C++98, or disable them in C++11 or later. 2017-10-15 15:01:42 +00:00
c11-noreturn.c Replace some custom C11 extension warnings with the generic warning. 2019-08-27 14:41:39 +00:00
c99.c Diagnose _Bool as a C99 extension. 2019-08-27 20:33:05 +00:00
captured-statements.c
char-literal-printing.c
check-objc2-syntax-1.m
check-syntax-1.m
check_cast.c
colon-colon-parentheses.cpp Remove special error recovery for ::(id) 2016-12-09 21:10:43 +00:00
completely-empty-header-file.h
compound_literal.c
control-scope.c
crash-report.c Re-land Remove REQUIRES:shell from tests that pass for me on Windows 2019-09-10 20:15:45 +00:00
cuda-force-host-device-templates.cu [CUDA] Rework tests now that we emit deferred diagnostics during sema. Test-only change. 2016-10-19 00:06:49 +00:00
cuda-force-host-device.cu [CUDA] Add #pragma clang force_cuda_host_device_{begin,end} pragmas. 2016-10-08 22:15:58 +00:00
cuda-kernel-call-c++11.cu [hip] Fix ambiguity from `>>>` of CUDA. 2019-05-08 00:52:33 +00:00
cuda-kernel-call.cu [CUDA] Fixed parsing of optional template-argument-list. 2018-09-21 17:46:28 +00:00
cxx-altivec.cpp Remove the -faltivec alias option and replace it with -maltivec everywhere. 2017-03-21 22:06:18 +00:00
cxx-ambig-decl-expr-xfail.cpp
cxx-ambig-decl-expr.cpp Improve function / variable disambiguation. 2019-05-07 07:36:07 +00:00
cxx-ambig-init-templ.cpp [c++20] Implement P0846R0: allow (ADL-only) calls to template-ids whose 2019-05-09 03:31:27 +00:00
cxx-ambig-paren-expr-asan.cpp
cxx-ambig-paren-expr.cpp
cxx-attributes.cpp
cxx-bool.cpp Properly parse a postfix expression following a Boolean literal. Fixes PR34273. 2017-09-28 21:29:18 +00:00
cxx-casting.cpp Warn when a reference is bound to an empty l-value (dereferenced null pointer). 2016-05-14 17:44:14 +00:00
cxx-class-template-specialization.cpp
cxx-class.cpp Remember to decay arrays to pointers before checking whether the 2019-05-09 22:22:48 +00:00
cxx-concept-declaration.cpp Revert rC330794 and some dependent tiny bug fixes 2018-04-26 00:42:40 +00:00
cxx-concepts-ambig-constraint-expr.cpp
cxx-concepts-requires-clause.cpp
cxx-condition.cpp
cxx-decl.cpp Parse A::template B as an identifier rather than as a template-id with no 2018-04-27 02:00:13 +00:00
cxx-default-args.cpp
cxx-default-delete.cpp
cxx-ext-delete-default.cpp
cxx-extern-c-array.cpp
cxx-extra-semi.cpp [Parser] (C++) Make -Wextra-semi slightly more useful 2018-03-14 19:31:34 +00:00
cxx-friend.cpp Lit C++11 Compatibility Patch #8 2016-04-14 23:47:07 +00:00
cxx-in-c.c
cxx-invalid-for-range.cpp
cxx-invalid-function-decl.cpp
cxx-member-crash.cpp
cxx-member-init-missing-paren-crash.cpp
cxx-member-initializers.cpp
cxx-modules-interface.cppm [modules ts] Diagnose 'export' declarations outside of a module interface. 2017-04-24 23:12:30 +00:00
cxx-namespace-alias.cpp
cxx-reference.cpp
cxx-stmt.cpp
cxx-template-argument.cpp Make tentative parsing to detect template-argument-lists less aggressive 2019-05-15 23:36:14 +00:00
cxx-template-decl.cpp PR42071: Reject weird names for non-type template parameters. 2019-06-14 20:01:54 +00:00
cxx-throw.cpp
cxx-typeid.cpp
cxx-typeof.cpp
cxx-undeclared-identifier.cpp
cxx-using-declaration.cpp
cxx-using-directive.cpp
cxx-variadic-func.cpp
cxx0x-ambig.cpp Fix valid-for-expr ellipses eaten as invalid decl 2017-05-20 00:21:55 +00:00
cxx0x-attributes.cpp Introduce the _Clang scoped attribute token. 2018-11-09 17:19:45 +00:00
cxx0x-condition.cpp Add a "vexing parse" warning for ambiguity between a variable declaration and a 2017-09-29 23:57:25 +00:00
cxx0x-decl.cpp [c++20] P1143R2: Add support for the C++20 'constinit' keyword. 2019-09-04 20:30:37 +00:00
cxx0x-for-range.cpp
cxx0x-in-cxx98.cpp
cxx0x-lambda-expressions.cpp [c++20] Implement semantic restrictions for C++20 designated 2019-08-30 22:52:55 +00:00
cxx0x-literal-operators.cpp
cxx0x-member-initializers.cpp
cxx0x-override-control-keywords.cpp
cxx0x-rvalue-reference.cpp
cxx1z-attributes.cpp
cxx1z-class-template-argument-deduction.cpp [C++17] Fix class template argument deduction for default constructors without an initializer 2018-03-24 04:32:11 +00:00
cxx1z-constexpr-lambdas.cpp Replace remaining user-visible mentions of C++1z with C++17. 2017-08-13 22:26:53 +00:00
cxx1z-coroutines.cpp [coroutines] Rename driver flag -fcoroutines to -fcoroutines-ts 2016-10-02 03:31:58 +00:00
cxx1z-decomposition.cpp Part of P1091R3: permit structured bindings to be declared 'static' and 2019-05-22 19:52:55 +00:00
cxx1z-fold-expressions.cpp Parse a possible trailing postfix expression suffix after a fold expression 2018-07-27 21:55:12 +00:00
cxx1z-init-statement.cpp Refactor the way we handle diagnosing unused expression results. 2019-01-04 16:58:14 +00:00
cxx1z-nested-namespace-definition.cpp Switch to gnu++14 as the default dialect. 2017-12-09 12:09:54 +00:00
cxx1z-using-declaration.cpp [c++1z] P0195R2: Support pack-expansion of using-declarations. 2016-12-20 21:35:28 +00:00
cxx2a-bitfield-init.cpp [c++2a] P0683R1: Permit default member initializers for bit-fields. 2017-08-28 00:28:14 +00:00
cxx2a-concept-declaration.cpp [Concepts] Concept definitions (D40381) 2019-07-10 21:25:49 +00:00
cxx2a-designated-init.cpp [c++20] Add support for designated direct-list-initialization syntax. 2019-08-31 01:00:37 +00:00
cxx2a-init-statement.cpp [cxx2a] P0614R1: Support init-statements in range-based for loops. 2018-09-28 18:44:09 +00:00
cxx2a-inline-nested-namespace-definition.cpp [NFC] Fix formatting in inline nested namespace definition. 2018-11-12 19:29:26 +00:00
cxx2a-spaceship.cpp [c++20] P0515R3: Parsing support and basic AST construction for operator <=>. 2017-12-14 15:16:18 +00:00
cxx2a-template-lambdas.cpp [c++20] Implement P0428R2 - Familiar template syntax for generic lambdas 2019-05-04 10:49:46 +00:00
cxx11-base-spec-attributes.cpp
cxx11-brace-initializers.cpp Improve diagonstic for braced-init-list as operand to ?: expression. 2018-05-24 22:02:52 +00:00
cxx11-stmt-attributes.cpp Add #pragma clang fp 2017-04-04 21:18:36 +00:00
cxx11-templates.cpp
cxx11-type-specifier.cpp
cxx11-user-defined-literals.cpp
debugger-import-module.m
declarators.c
declspec-recovery.c Improve diagnostic reporting when using __declspec without enabling __declspec as a keyword. 2017-02-14 22:47:20 +00:00
declspec-supported.c Improve diagnostic reporting when using __declspec without enabling __declspec as a keyword. 2017-02-14 22:47:20 +00:00
decomposed-condition.cpp Fix codegen for structured binding binding in conditions 2018-03-17 21:01:27 +00:00
designator.c
diag-crash.c
editor-placeholder-recovery.cpp [C++] Interpret unknown identifier in parameter clause as unknown type 2019-05-05 12:15:17 +00:00
empty-translation-unit.c
encode.m
enhanced-proto-1.m
eof.cpp Diagnose attempts to explicitly instantiate a template at class scope. Previously Clang would simply ignore the 'template' keyword in this case. 2017-02-09 22:14:25 +00:00
eof2.cpp
expressions.c
expressions.m
extension.c
extra-semi-resulting-in-nullstmt-in-init-statement.cpp [clang][Parse] Diagnose useless null statements / empty init-statements 2018-11-20 18:59:05 +00:00
extra-semi-resulting-in-nullstmt.cpp [clang][Parse] Diagnose useless null statements / empty init-statements 2018-11-20 18:59:05 +00:00
extra-semi.cpp P0305R1: Parsing support for init-statements in 'if' and 'switch' statements. 2016-06-29 21:17:59 +00:00
for.cpp
function-decls.c
gcc-__final-compatibility.cpp [GCC] Support for __final specifier 2016-07-29 10:42:48 +00:00
gcc-for-loop-init-compatibility.c [Parse] Make -Wgcc-compat complain about for loop inits in C89 2018-06-28 21:36:00 +00:00
goto.c
if-scope-c90.c
if-scope-c99.c
implicit-casts.c
knr_parameter_attributes.c
lambda-attr.cu [CUDA] Emit deferred diagnostics during Sema rather than during codegen. 2016-10-13 20:52:12 +00:00
message-expr-alt-op.mm [Parser] Support alternative operator token keyword args in Objective-C++ 2018-08-21 16:47:04 +00:00
method-def-in-class.m
method-prototype-1.m
missing-closing-rbrace.m
missing-end-2.m
missing-end-3.m
missing-end-4.m
missing-end.m
missing-selector-name.mm
ms-anachronism.c clang-cl: support __cdecl-on-struct anachronism 2016-03-21 16:08:49 +00:00
ms-if-exists.c
ms-if-exists.cpp
ms-inline-asm-nested-braces.c
ms-inline-asm.c (clang part) Implement MASM-flavor intel syntax behavior for inline MS asm block. 2016-09-02 23:16:06 +00:00
ms-seh.c
ms-square-bracket-attributes.mm Determine the attribute subject for diagnostics based on declarative information in DeclNodes.td. This greatly reduces the number of enumerated values used for more complex diagnostics; these are now only required when the "attribute only applies to" diagnostic needs to be generated manually as part of semantic processing. 2017-11-26 20:01:12 +00:00
namelookup-bug-1.c
namelookup-bug-2.c
namespace-alias-attr.cpp
namespaces.cpp
no-gnu-inline-asm.c Make language option `GNUAsm` discoverable with `__has_extension` macro. 2019-05-13 22:11:10 +00:00
nullability.c Accept nullability qualifiers on array parameters. 2016-11-10 23:28:17 +00:00
objc-alias-printing.m
objc-at-directive-fixit.m [ObjC] Avoid a @try/@finally/@autoreleasepool fixit when parsing an expression 2016-12-01 12:14:38 +00:00
objc-at-implementation-eof-crash.m Add a missing '[' to the tests from r305719 2017-06-20 16:16:11 +00:00
objc-at-interface-eof-crash.m Add a missing '[' to the tests from r305719 2017-06-20 16:16:11 +00:00
objc-attr.m Allow the NS, CF, and ObjC attributes to be used with -fdouble-square-bracket-attributes. The syntactic locations for such attributes on ObjC constructs have been specifically chosen to follow the GNU attribute syntactic locations. 2018-02-12 13:38:25 +00:00
objc-available.m Warn about uses of `@available` that can't suppress the 2017-05-24 15:15:29 +00:00
objc-boxing.m
objc-category-neg-1.m
objc-class-property.m ObjC class properties: add diagnostics for unimplemented class properties. 2016-04-12 23:01:55 +00:00
objc-cxx-keyword-identifiers.mm [ObjC] Error out when using forward-declared protocol in a @protocol 2018-08-17 22:18:08 +00:00
objc-diag-width.mm
objc-error-qualified-implementation.m
objc-forcollection-1.m
objc-forcollection-neg-2.m
objc-forcollection-neg.m
objc-foreach-syntax.m
objc-implementation-attrs.m Add support for attributes on @implementations in Objective-C 2019-04-11 17:55:30 +00:00
objc-init.m [c++20] Implement semantic restrictions for C++20 designated 2019-08-30 22:52:55 +00:00
objc-interfaces.m [ObjC] Improve error message for a malformed objc-type-name 2019-06-26 23:39:23 +00:00
objc-messaging-1.m
objc-messaging-neg-1.m
objc-missing-impl.m
objc-property-syntax.m Fix the spelling of 'bitfield' in diagnostics to be consistently 'bit-field'. 2016-12-20 02:43:58 +00:00
objc-quirks.m
objc-recover.mm
objc-static-assert.m Objective-C++11: Support static_assert() in @interface/@implementation ivar lists and method declarations 2019-03-14 14:18:56 +00:00
objc-static-assert.mm Fix test after r356148 2019-03-14 14:40:48 +00:00
objc-synthesized-recover.m
objc-try-catch-1.m Reapply "[Parse] Use CapturedStmt for @finally on MSVC" 2018-06-08 00:30:00 +00:00
objc-type-printing.m
objcbridge-related-attribute.m
objcxx-at.mm
objcxx-lambda-expressions-neg.mm
objcxx0x-lambda-expressions.mm
objcxx11-attributes.mm
objcxx11-initialized-temps.mm
objcxx11-invalid-lambda.cpp Rearrange and clean up how we disambiguate lambda-introducers from ObjC 2019-05-20 18:01:54 +00:00
objcxx11-messaging-and-lambda.mm [Parser] Fix look ahead after EOF while parsing objc message and lambdas 2016-05-31 18:46:31 +00:00
objcxx11-protocol-in-template.mm
objcxx11-user-defined-literal.mm
objcxx14-protocol-in-template.mm
offsetof.c
opencl-astype.cl [OpenCL] Add supported OpenCL extensions to target info. 2016-05-16 17:06:34 +00:00
opencl-atomics-cl20.cl [OpenCL] Extended diagnostics for atomic initialization 2017-04-05 12:47:10 +00:00
opencl-cl20.cl [OpenCL] Restrict various keywords in OpenCL C++ mode 2018-05-09 13:16:17 +00:00
opencl-cxx-keywords.cl [OpenCL] Rename lang mode flag for C++ mode 2019-07-25 11:04:29 +00:00
opencl-cxx-virtual.cl [OpenCL] Rename lang mode flag for C++ mode 2019-07-25 11:04:29 +00:00
opencl-image-access.cl
opencl-kernel.cl
opencl-keywords.cl
opencl-pragma.cl Recommit r289979 [OpenCL] Allow disabling types and declarations associated with extensions 2016-12-18 05:18:55 +00:00
opencl-storage-class.cl [OpenCL] Restrict various keywords in OpenCL C++ mode 2018-05-09 13:16:17 +00:00
opencl-unroll-hint.cl
parenthesis-balance.cpp
parmvardecl_conversion.c
parser_overflow.c
placeholder-recovery.m Add support for attributes on @implementations in Objective-C 2019-04-11 17:55:30 +00:00
pointer-arithmetic.c
pointer_promotion.c Factor out comparison handling for arithmetic types. 2018-01-08 21:12:04 +00:00
pragma-attribute-context.cpp [Parser] Emit descriptive diagnostic for misplaced pragma 2019-08-04 10:08:51 +00:00
pragma-attribute-declspec.cpp Add #pragma clang attribute 2017-04-18 14:33:39 +00:00
pragma-attribute.cpp Add support for namespaces on #pragma clang attribute 2018-12-20 22:32:04 +00:00
pragma-fp-contract.c [Parser] Emit descriptive diagnostic for misplaced pragma 2019-08-04 10:08:51 +00:00
pragma-fp-contract.cpp [Parser] Emit descriptive diagnostic for misplaced pragma 2019-08-04 10:08:51 +00:00
pragma-fp.cpp Add #pragma clang fp 2017-04-04 21:18:36 +00:00
pragma-loop-safety.cpp Append new attributes to the end of an AttributeList. 2018-08-03 01:21:16 +00:00
pragma-loop.cpp [Clang] New loop pragma vectorize_predicate 2019-07-25 07:33:13 +00:00
pragma-optimize-diagnostics.cpp
pragma-options.c Recommit r308327 3rd time: Add a warning for missing 2017-07-28 14:41:21 +00:00
pragma-options.cpp Recommit r308327 3rd time: Add a warning for missing 2017-07-28 14:41:21 +00:00
pragma-pack.c Recommit r308327 3rd time: Add a warning for missing 2017-07-28 14:41:21 +00:00
pragma-pipeline.cpp Add two new pragmas for controlling software pipelining optimizations. 2019-01-04 17:20:00 +00:00
pragma-unroll-and-jam.cpp [Clang] New loop pragma vectorize_predicate 2019-07-25 07:33:13 +00:00
pragma-unroll.cpp Append new attributes to the end of an AttributeList. 2018-08-03 01:21:16 +00:00
pragma-visibility.c
pragma-visibility2.c
pragma-weak.c
promote_types_in_proto.c
recovery.c
recovery.cpp
recovery.m
recursion-limits.cpp
selector-1.m
skip-function-bodies.h [libclang] Allow skipping function bodies in preamble only 2018-05-17 09:24:37 +00:00
skip-function-bodies.mm [libclang] Allow skipping function bodies in preamble only 2018-05-17 09:24:37 +00:00
statements.c
struct-recursion.c
switch-recovery.cpp Refactor the way we handle diagnosing unused expression results. 2019-01-04 16:58:14 +00:00
top-level-semi-cxx0x.cpp
traditional_arg_scope.c
typeof.c
types.c
using-template.cpp Consume unexpected "template" keywords after "using" 2019-05-01 23:33:49 +00:00
vector-cast-define.cl Reapplied r298976 [OpenCL] Added parsing for OpenCL vector types. 2017-03-29 12:09:39 +00:00
vsx.c Remove the -faltivec alias option and replace it with -maltivec everywhere. 2017-03-21 22:06:18 +00:00
warn-cuda-compat.cu
warn-dangling-else.cpp
warn-semicolon-before-method-body.m
x64-windows-calling-convention-handling.c