diff --git a/clang/include/clang/Basic/Attr.td b/clang/include/clang/Basic/Attr.td index 3c11f7ba85aef736d5658f868331ea041403e296..7416f4757f8c63c5e934995ebc702e2aff23a160 100644 --- a/clang/include/clang/Basic/Attr.td +++ b/clang/include/clang/Basic/Attr.td @@ -1742,7 +1742,7 @@ def NoUniqueAddress : InheritableAttr, TargetSpecificAttr { let SimpleHandler = 1; } -// OHOS_LOCAL start +// OHOS_LOCAL begin def PacDataTag : InheritableAttr { let Spellings = [GCC<"pac_protected_data">]; let Subjects = SubjectList<[Field], ErrorDiag>; diff --git a/clang/include/clang/Basic/AttrDocs.td b/clang/include/clang/Basic/AttrDocs.td index ff9a7c5bc84a138c9f1fe06f6570baeca7134d81..4604c6a0161b72ce5e487332b4c0a6b8b4f10cf7 100644 --- a/clang/include/clang/Basic/AttrDocs.td +++ b/clang/include/clang/Basic/AttrDocs.td @@ -1355,7 +1355,7 @@ in C++11 onwards. }]; } -// OHOS_LOCAL start +// OHOS_LOCAL begin def PacDataTagDocs : Documentation { let Category = DocCatField; let Content = [{ diff --git a/clang/include/clang/Basic/DiagnosticParseKinds.td b/clang/include/clang/Basic/DiagnosticParseKinds.td index 037e29a5155f78395a64bf176e969dbc59a6d608..17b040d33dc2b8b028321154446cb1c168258982 100644 --- a/clang/include/clang/Basic/DiagnosticParseKinds.td +++ b/clang/include/clang/Basic/DiagnosticParseKinds.td @@ -1610,7 +1610,7 @@ def ext_hlsl_access_specifiers : ExtWarn< "access specifiers are a clang HLSL extension">, InGroup; -// OHOS_LOCAL start +// OHOS_LOCAL begin def warn_unsupported_pac_dfi_type : Warning< "unsupported type %0 for attribute '%1'">; // OHOS_LOCAL end diff --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp index aa52d65dafe8fe4e22906853954dda4f4e922a35..511e390e8aafe8193bdd576167c1564220fbe5bd 100644 --- a/clang/lib/CodeGen/CodeGenModule.cpp +++ b/clang/lib/CodeGen/CodeGenModule.cpp @@ -47,7 +47,7 @@ #include "clang/CodeGen/BackendUtil.h" #include "clang/CodeGen/ConstantInitBuilder.h" #include "clang/Frontend/FrontendDiagnostic.h" -// OHOS_LOCAL start +// OHOS_LOCAL begin #include "clang/Pac/PacDfi.h" // OHOS_LOCAL end #include "llvm/ADT/StringSwitch.h" diff --git a/clang/lib/CodeGen/CodeGenTypes.cpp b/clang/lib/CodeGen/CodeGenTypes.cpp index 97725ccbae8c00d0e43d97c1d9ecf61e678cc293..59658dfb793fb224ba52a5994dec333f499f62c8 100644 --- a/clang/lib/CodeGen/CodeGenTypes.cpp +++ b/clang/lib/CodeGen/CodeGenTypes.cpp @@ -22,7 +22,7 @@ #include "clang/AST/Expr.h" #include "clang/AST/RecordLayout.h" #include "clang/CodeGen/CGFunctionInfo.h" -// OHOS_LOCAL start +// OHOS_LOCAL begin #include "clang/Pac/PacDfi.h" // OHOS_LOCAL end #include "llvm/IR/DataLayout.h" diff --git a/clang/lib/Parse/ParseDecl.cpp b/clang/lib/Parse/ParseDecl.cpp index 92944a127fcb2b10d991c219ef0ad1ad8c30c443..bd8295d9cef69f749de0437541ad1de28efbddaa 100644 --- a/clang/lib/Parse/ParseDecl.cpp +++ b/clang/lib/Parse/ParseDecl.cpp @@ -25,7 +25,7 @@ #include "clang/Sema/ParsedTemplate.h" #include "clang/Sema/Scope.h" #include "clang/Sema/SemaDiagnostic.h" -// OHOS_LOCAL start +// OHOS_LOCAL begin #include "clang/Pac/PacDfi.h" // OHOS_LOCAL end #include "llvm/ADT/Optional.h" diff --git a/clang/lib/Sema/SemaDeclAttr.cpp b/clang/lib/Sema/SemaDeclAttr.cpp index bac86bb767a18cdf75d9cf4743a5e42393ae8ad4..ed6d1cc923cc01c1f0b5147f423c070195be92e2 100644 --- a/clang/lib/Sema/SemaDeclAttr.cpp +++ b/clang/lib/Sema/SemaDeclAttr.cpp @@ -9093,7 +9093,7 @@ ProcessDeclAttribute(Sema &S, Scope *scope, Decl *D, const ParsedAttr &AL, case ParsedAttr::AT_UsingIfExists: handleSimpleAttribute(S, D, AL); break; - // OHOS_LOCAL start + // OHOS_LOCAL begin case ParsedAttr::AT_PacDataTag: handleSimpleAttribute(S, D, AL); break; diff --git a/clang/test/Misc/pragma-attribute-supported-attributes-list.test b/clang/test/Misc/pragma-attribute-supported-attributes-list.test index 64e2bf619004ee7ae2b51b6603f036f3ac33613d..6192296477c5156b877178475a955fe558157a54 100644 --- a/clang/test/Misc/pragma-attribute-supported-attributes-list.test +++ b/clang/test/Misc/pragma-attribute-supported-attributes-list.test @@ -146,6 +146,10 @@ // CHECK-NEXT: OptimizeNone (SubjectMatchRule_function, SubjectMatchRule_objc_method) // CHECK-NEXT: Overloadable (SubjectMatchRule_function) // CHECK-NEXT: Owner (SubjectMatchRule_record_not_is_union) +// OHOS_LOCAL begin +// CHECK-NEXT: PacDataTag (SubjectMatchRule_field) +// CHECK-NEXT: PacPtrTag (SubjectMatchRule_field) +// OHOS_LOCAL end // CHECK-NEXT: ParamTypestate (SubjectMatchRule_variable_is_parameter) // CHECK-NEXT: PassObjectSize (SubjectMatchRule_variable_is_parameter) // CHECK-NEXT: PatchableFunctionEntry (SubjectMatchRule_function, SubjectMatchRule_objc_method) diff --git a/llvm/lib/Target/AArch64/AArch64.h b/llvm/lib/Target/AArch64/AArch64.h index 0fbd926dadf26a12bb70e5e493e8de1ba3eac0f6..79e2dc2a2db5208d768d07bb9968400cb56bc73a 100644 --- a/llvm/lib/Target/AArch64/AArch64.h +++ b/llvm/lib/Target/AArch64/AArch64.h @@ -68,7 +68,7 @@ FunctionPass *createAArch64PostLegalizerLowering(); FunctionPass *createAArch64PostSelectOptimize(); FunctionPass *createAArch64StackTaggingPass(bool IsOptNone); FunctionPass *createAArch64StackTaggingPreRAPass(); -// OHOS_LOCAL start +// OHOS_LOCAL begin FunctionPass *createAArch64EarlyPartsCpiPass(); FunctionPass *createAArch64PartsCpiPass(); FunctionPass *createPartsPassDpi(); diff --git a/llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp b/llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp index 919006ce12bc63adaa59d87b02115227eb6f5703..87f3982208fb9a9176048c3a948d6fb0a29ea1d5 100644 --- a/llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp +++ b/llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp @@ -1310,7 +1310,7 @@ void AArch64AsmPrinter::emitInstruction(const MachineInstr *MI) { EmitToStreamer(*OutStreamer, TmpInst); return; } - // OHOS_LOCAL start + // OHOS_LOCAL begin case AArch64::TCRETURNriAA: { MCInst TmpInst; TmpInst.setOpcode(AArch64::BRAA); diff --git a/llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h b/llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h index 5fbf1e7e195bed3d860fd08dac2c190edf734453..c658f821464eeb56a6f31d98be9fb6fa89001cc2 100644 --- a/llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h +++ b/llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h @@ -435,7 +435,7 @@ public: bool needsDwarfUnwindInfo() const; bool needsAsyncDwarfUnwindInfo() const; - // OHOS_LOCAL start + // OHOS_LOCAL begin void setPartsSym(MCSymbol *Sym) { PartsSym = Sym; } MCSymbol *getPartsSym() const { return PartsSym; } // OHOS_LOCAL end diff --git a/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp b/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp index 45628ae66e64f05a6e1024fdf45dc3313a78bb15..1c3a7576a08f95c11c89a4240ffe1f43694a13c8 100644 --- a/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp +++ b/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp @@ -592,7 +592,7 @@ void AArch64PassConfig::addIRPasses() { if (TM->getTargetTriple().isOSWindows()) addPass(createCFGuardCheckPass()); - // OHOS_LOCAL start + // OHOS_LOCAL begin if (PARTS::useFeCfi()) addPass(PARTS::createPartsPluginPass()); // OHOS_LOCAL end @@ -649,7 +649,7 @@ bool AArch64PassConfig::addInstSelector() { getOptLevel() != CodeGenOpt::None) addPass(createAArch64CleanupLocalDynamicTLSPass()); - // OHOS_LOCAL start + // OHOS_LOCAL begin if (PARTS::useFeCfi()) // Replace indirect jump instruction such as : BR BLR --> BRAA BLRAA addPass(createAArch64EarlyPartsCpiPass()); @@ -817,7 +817,7 @@ void AArch64PassConfig::addPreEmitPass() { TM->getTargetTriple().isOSBinFormatMachO()) addPass(createAArch64CollectLOHPass()); - // OHOS_LOCAL start + // OHOS_LOCAL begin if (PARTS::useFeCfi()) addPass(createAArch64PartsCpiPass()); if ((PARTS::useDataPointerProtection())) diff --git a/llvm/lib/Target/AArch64/CMakeLists.txt b/llvm/lib/Target/AArch64/CMakeLists.txt index 178b9eb34643c695f226cb3644b3ca83486fa883..3aaad9a927a5878f108387ffbcb60e50956cef2a 100644 --- a/llvm/lib/Target/AArch64/CMakeLists.txt +++ b/llvm/lib/Target/AArch64/CMakeLists.txt @@ -86,7 +86,7 @@ add_llvm_target(AArch64CodeGen AArch64TargetTransformInfo.cpp SVEIntrinsicOpts.cpp AArch64SIMDInstrOpt.cpp - # OHOS_LOCAL start + # OHOS_LOCAL begin AArch64PARTS/AArch64EarlyPartsCpiPass.cpp AArch64PARTS/AArch64PartsCpiPass.cpp AArch64PARTS/AArch64PartsDpiPass.cpp @@ -94,7 +94,7 @@ add_llvm_target(AArch64CodeGen DEPENDS intrinsics_gen - # OHOS_LOCAL start + # OHOS_LOCAL begin Parts LINK_LIBS