llvm-project/clang/lib/AST
Erich Keane 7304f0a66e Correct 'target' default behavior on redecl, allow forward declaration.
Declarations without the attribute were disallowed because it would be
ambiguous which 'target' it was supposed to be on.  For example:

void ___attribute__((target("v1"))) foo();
void foo(); // Redecl of above, or fwd decl of below?
void ___attribute__((target("v2"))) foo();

However, a first declaration doesn't have that problem, and erroring
prevents it from working in cases where the forward declaration is
useful.

Additionally, a forward declaration of target==default wouldn't properly
cause multiversioning, so this patch fixes that.

The patch was not split since the 'default' fix would require
implementing the same check for that case, followed by undoing the same
change for the fwd-decl implementation.

Change-Id: I66f2c5bc2477bcd3f7544b9c16c83ece257077b0
llvm-svn: 347805
2018-11-28 20:58:43 +00:00
..
APValue.cpp Fix crash on call to __builtin_memcpy with a null pointer to an 2018-09-13 22:47:33 +00:00
ASTConsumer.cpp
ASTContext.cpp Correct 'target' default behavior on redecl, allow forward declaration. 2018-11-28 20:58:43 +00:00
ASTDiagnostic.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
ASTDumper.cpp [AST] Only store the needed data in WhileStmt 2018-10-30 13:42:41 +00:00
ASTImporter.cpp Revert "[ASTImporter] Changed use of Import to Import_New in ASTImporter." 2018-11-28 19:15:23 +00:00
ASTStructuralEquivalence.cpp [ASTImporter][Structural Eq] Check for isBeingDefined 2018-11-26 15:54:08 +00:00
ASTTypeTraits.cpp Teach clang-query to dump types. I couldn't find any existing tests for clang-query's dumping functionality. =( 2016-11-02 23:57:18 +00:00
AttrImpl.cpp [NFC] Header cleanup 2016-07-18 19:02:11 +00:00
CMakeLists.txt Reapply Logging: make os_log buffer size an integer constant expression. 2018-11-02 13:14:11 +00:00
CXXABI.h Fix __has_unique_object_representations implementation 2017-11-30 16:37:02 +00:00
CXXInheritance.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
Comment.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
CommentBriefParser.cpp Remove \brief commands from doxygen comments. 2018-05-09 01:00:01 +00:00
CommentCommandTraits.cpp
CommentLexer.cpp Add a newline to SourceLocation dump output 2018-08-15 20:32:06 +00:00
CommentParser.cpp Remove spurious assertion in -Wdocumentation 2018-10-02 22:23:27 +00:00
CommentSema.cpp Port getLocEnd -> getEndLoc 2018-08-09 21:09:38 +00:00
ComparisonCategories.cpp [C++2a] Implement operator<=>: Address bugs and post-commit review comments after r331677. 2018-05-08 00:52:19 +00:00
DataCollection.cpp [analyzer] Make StmtDataCollector customizable 2017-08-23 16:28:26 +00:00
Decl.cpp [NFC] Move MultIversioning::Type into Decl so that it can be used in 2018-11-28 18:34:14 +00:00
DeclBase.cpp Change getRedeclContext() to support enumerations as another kind of transparent context in C. 2018-10-23 19:44:51 +00:00
DeclCXX.cpp [cxx2a] P0624R2: Lambdas with no capture-default are 2018-09-27 22:47:04 +00:00
DeclFriend.cpp [AST] Fix some Clang-tidy modernize-use-auto warnings; other minor fixes (NFC). 2018-04-03 00:11:50 +00:00
DeclGroup.cpp [AST] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-11-10 00:59:22 +00:00
DeclObjC.cpp [Sema][ObjC] Infer availability of +new from availability of -init. 2018-09-10 22:20:09 +00:00
DeclOpenMP.cpp [OPENMP] Add support for OMP5 requires directive + unified_address clause 2018-09-26 04:28:39 +00:00
DeclPrinter.cpp Add support for 'atomic_default_mem_order' clause on 'requires' directive. Also renamed test files relating to 'requires'. Differntial review: https://reviews.llvm.org/D53513 2018-11-02 12:18:11 +00:00
DeclTemplate.cpp [Sema] Fix a multiple definition bug with friends and templates 2018-10-10 17:17:51 +00:00
DeclarationName.cpp [AST] Various optimizations + refactoring in DeclarationName(Table) 2018-09-21 12:53:22 +00:00
Expr.cpp Re-commit r347417 "Re-Reinstate 347294 with a fix for the failures." 2018-11-28 14:04:12 +00:00
ExprCXX.cpp [AST][NFC] Pack CXXDefaultInitExpr 2018-11-17 13:02:47 +00:00
ExprClassification.cpp Create ConstantExpr class 2018-10-31 03:48:47 +00:00
ExprConstant.cpp Re-commit r347417 "Re-Reinstate 347294 with a fix for the failures." 2018-11-28 14:04:12 +00:00
ExprObjC.cpp [AST] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-11-30 22:33:48 +00:00
ExternalASTMerger.cpp [ASTImporter] Added error handling for AST import. 2018-10-19 13:32:20 +00:00
ExternalASTSource.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
FormatString.cpp OpenCL: Don't warn on v printf modifier 2018-11-13 22:30:35 +00:00
FormatStringParsing.h Reapply Logging: make os_log buffer size an integer constant expression. 2018-11-02 13:14:11 +00:00
InheritViz.cpp
ItaniumCXXABI.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
ItaniumMangle.cpp [AArch64] Add aarch64_vector_pcs function attribute to Clang 2018-11-26 16:38:37 +00:00
Linkage.h [AST] Squeeze some bits in LinkageComputer::QueryType 2018-09-25 13:43:25 +00:00
Mangle.cpp NFC: Remove MANGLE_CHECKER from ItaniumMangle.cpp 2018-10-23 19:55:38 +00:00
MicrosoftCXXABI.cpp Remove \brief commands from doxygen comments. 2018-05-09 01:00:01 +00:00
MicrosoftMangle.cpp [AST] Fix typo in MicrosoftMangle 2018-11-14 19:16:22 +00:00
NSAPI.cpp [OpenCL] Add support of cl_intel_device_side_avc_motion_estimation extension 2018-11-08 11:25:41 +00:00
NestedNameSpecifier.cpp [NestedNameSpecifier] Add missing stream-specific dump methods 2018-10-04 19:22:00 +00:00
ODRHash.cpp [ODRHash] Fix early exit that skipped code. 2018-09-14 01:15:28 +00:00
OSLog.cpp os_log: Allow specifying mask type in format string. 2018-11-06 07:05:14 +00:00
OpenMPClause.cpp Add support for 'atomic_default_mem_order' clause on 'requires' directive. Also renamed test files relating to 'requires'. Differntial review: https://reviews.llvm.org/D53513 2018-11-02 12:18:11 +00:00
ParentMap.cpp Create ConstantExpr class 2018-10-31 03:48:47 +00:00
PrintfFormatString.cpp OpenCL: Don't warn on v printf modifier 2018-11-13 22:30:35 +00:00
QualTypeNames.cpp Remove \brief commands from doxygen comments. 2018-05-09 01:00:01 +00:00
RawCommentList.cpp Port getLocEnd -> getEndLoc 2018-08-09 21:09:38 +00:00
RecordLayout.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
RecordLayoutBuilder.cpp [AST] Do not align virtual bases in `MicrosoftRecordLayoutBuilder` when 2018-10-23 08:23:22 +00:00
ScanfFormatString.cpp Reapply Logging: make os_log buffer size an integer constant expression. 2018-11-02 13:14:11 +00:00
SelectorLocationsKind.cpp Port getLocStart -> getBeginLoc 2018-08-09 21:08:08 +00:00
Stmt.cpp Create ConstantExpr class 2018-10-31 03:48:47 +00:00
StmtCXX.cpp [cxx2a] P0614R1: Support init-statements in range-based for loops. 2018-09-28 18:44:09 +00:00
StmtIterator.cpp [AST] Fix some Clang-tidy modernize and Include What You Use warnings; other minor fixes (NFC). 2017-11-21 23:26:08 +00:00
StmtObjC.cpp Port getLocEnd -> getEndLoc 2018-08-09 21:09:38 +00:00
StmtOpenMP.cpp [OpenMP][NVPTX] Use single loops when generating code for distribute parallel for 2018-10-29 15:45:47 +00:00
StmtPrinter.cpp Create ConstantExpr class 2018-10-31 03:48:47 +00:00
StmtProfile.cpp Add support for 'atomic_default_mem_order' clause on 'requires' directive. Also renamed test files relating to 'requires'. Differntial review: https://reviews.llvm.org/D53513 2018-11-02 12:18:11 +00:00
StmtViz.cpp
TemplateBase.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
TemplateName.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
Type.cpp [AArch64] Add aarch64_vector_pcs function attribute to Clang 2018-11-26 16:38:37 +00:00
TypeLoc.cpp [OpenCL] Add support of cl_intel_device_side_avc_motion_estimation extension 2018-11-08 11:25:41 +00:00
TypePrinter.cpp [AArch64] Add aarch64_vector_pcs function attribute to Clang 2018-11-26 16:38:37 +00:00
VTTBuilder.cpp Remove trailing space 2018-07-30 19:24:48 +00:00
VTableBuilder.cpp Use llvm::{all,any,none}_of instead std::{all,any,none}_of. NFC 2018-10-20 17:53:42 +00:00