github-actions[bot] wrote: <!--LLVM CODE FORMAT COMMENT: {clang-format}-->
:warning: C/C++ code formatter, clang-format found issues in your code. :warning: <details> <summary> You can test this locally with the following command: </summary> ``````````bash git-clang-format --diff b3e80d8ed251bfdad4a49fee19b8354eba407d1d ff8a6cad88519dec919451c37bba03aa6ef21324 -- clang/test/CodeGenCXX/builtin-zero-non-value-bits-codegen.cpp clang/test/CodeGenCXX/builtin-zero-non-value-bits.cpp clang/test/SemaCXX/builtin-zero-non-value-bits.cpp clang/lib/CodeGen/CGBuiltin.cpp clang/lib/Sema/SemaChecking.cpp `````````` </details> <details> <summary> View the diff from clang-format here. </summary> ``````````diff diff --git a/clang/lib/CodeGen/CGBuiltin.cpp b/clang/lib/CodeGen/CGBuiltin.cpp index 638af25fb7..6cae75ef9d 100644 --- a/clang/lib/CodeGen/CGBuiltin.cpp +++ b/clang/lib/CodeGen/CGBuiltin.cpp @@ -63,8 +63,6 @@ #include <optional> #include <sstream> - - #include <iostream> using namespace clang; @@ -2461,17 +2459,20 @@ static RValue EmitHipStdParUnsupportedBuiltin(CodeGenFunction *CGF, } template <class T> -void RecursivelyClearPaddingImpl(CodeGenFunction &CGF, Value *Ptr, QualType Ty, size_t CurrentStartOffset, size_t &RunningOffset, T&& WriteZeroAtOffset); +void RecursivelyClearPaddingImpl(CodeGenFunction &CGF, Value *Ptr, QualType Ty, + size_t CurrentStartOffset, + size_t &RunningOffset, T &&WriteZeroAtOffset); template <class T> -void ClearPaddingStruct(CodeGenFunction &CGF, Value *Ptr, QualType Ty, StructType *ST, - size_t CurrentStartOffset, size_t &RunningOffset, T&& WriteZeroAtOffset) { +void ClearPaddingStruct(CodeGenFunction &CGF, Value *Ptr, QualType Ty, + StructType *ST, size_t CurrentStartOffset, + size_t &RunningOffset, T &&WriteZeroAtOffset) { std::cerr << "\n struct! " << ST->getName().data() << std::endl; auto SL = CGF.CGM.getModule().getDataLayout().getStructLayout(ST); auto R = cast<CXXRecordDecl>(Ty->getAsRecordDecl()); const ASTRecordLayout &ASTLayout = CGF.getContext().getASTRecordLayout(R); for (auto Base : R->bases()) { - std::cerr << "\n\n base!" << std::endl; + std::cerr << "\n\n base!" << std::endl; // Zero padding between base elements. auto BaseRecord = cast<CXXRecordDecl>(Base.getType()->getAsRecordDecl()); auto Offset = static_cast<size_t>( @@ -2481,7 +2482,9 @@ void ClearPaddingStruct(CodeGenFunction &CGF, Value *Ptr, QualType Ty, StructTyp Value *Idx = CGF.Builder.getSize(Index); llvm::Type *CurrentBaseType = CGF.ConvertTypeForMem(Base.getType()); Value *BaseElement = CGF.Builder.CreateGEP(CurrentBaseType, Ptr, Idx); - RecursivelyClearPaddingImpl(CGF, BaseElement, Base.getType(), CurrentStartOffset + Offset, RunningOffset, WriteZeroAtOffset); + RecursivelyClearPaddingImpl(CGF, BaseElement, Base.getType(), + CurrentStartOffset + Offset, RunningOffset, + WriteZeroAtOffset); } size_t NumFields = std::distance(R->field_begin(), R->field_end()); @@ -2491,68 +2494,81 @@ void ClearPaddingStruct(CodeGenFunction &CGF, Value *Ptr, QualType Ty, StructTyp auto Offset = ASTLayout.getFieldOffset(I) / 8; auto Index = SL->getElementContainingOffset(Offset); Value *Idx = CGF.Builder.getSize(Index); - llvm::Type *CurrentFieldType = CGF.ConvertTypeForMem(CurrentField->getType()); + llvm::Type *CurrentFieldType = + CGF.ConvertTypeForMem(CurrentField->getType()); Value *Element = CGF.Builder.CreateGEP(CurrentFieldType, Ptr, Idx); - RecursivelyClearPaddingImpl(CGF, Element, CurrentField->getType(), CurrentStartOffset + Offset, RunningOffset, WriteZeroAtOffset); + RecursivelyClearPaddingImpl(CGF, Element, CurrentField->getType(), + CurrentStartOffset + Offset, RunningOffset, + WriteZeroAtOffset); } } template <class T> -void ClearPaddingConstantArray(CodeGenFunction &CGF, Value *Ptr, llvm::Type *Type, ConstantArrayType const *AT, - size_t CurrentStartOffset, size_t &RunningOffset, T&& WriteZeroAtOffset) { +void ClearPaddingConstantArray(CodeGenFunction &CGF, Value *Ptr, + llvm::Type *Type, ConstantArrayType const *AT, + size_t CurrentStartOffset, size_t &RunningOffset, + T &&WriteZeroAtOffset) { for (size_t ArrIndex = 0; ArrIndex < AT->getSize().getLimitedValue(); ++ArrIndex) { QualType ElementQualType = AT->getElementType(); auto *ElementRecord = ElementQualType->getAsRecordDecl(); - if(!ElementRecord){ - std::cerr<< "\n\n null!" << std::endl; + if (!ElementRecord) { + std::cerr << "\n\n null!" << std::endl; } - auto ElementAlign =ElementRecord? - CGF.getContext().getASTRecordLayout(ElementRecord).getAlignment(): - CGF.getContext().getTypeAlignInChars(ElementQualType); + auto ElementAlign = + ElementRecord + ? CGF.getContext().getASTRecordLayout(ElementRecord).getAlignment() + : CGF.getContext().getTypeAlignInChars(ElementQualType); + + std::cerr << "\n\n align: " << ElementAlign.getQuantity() << std::endl; - std::cerr<< "\n\n align: " << ElementAlign.getQuantity() << std::endl; - // Value *Idx = CGF.Builder.getSize(0); // Value *ArrayElement = CGF.Builder.CreateGEP(ElementType, Ptr, Idx); Address FieldElementAddr{Ptr, Type, ElementAlign}; - auto Element = - CGF.Builder.CreateConstArrayGEP(FieldElementAddr, ArrIndex); + auto Element = CGF.Builder.CreateConstArrayGEP(FieldElementAddr, ArrIndex); auto *ElementType = CGF.ConvertTypeForMem(ElementQualType); - auto AllocSize = CGF.CGM.getModule().getDataLayout().getTypeAllocSize(ElementType); + auto AllocSize = + CGF.CGM.getModule().getDataLayout().getTypeAllocSize(ElementType); std::cerr << "\n\n clearing array index! " << ArrIndex << std::endl; - RecursivelyClearPaddingImpl(CGF, Element.getPointer(), ElementQualType, CurrentStartOffset + ArrIndex * AllocSize.getKnownMinValue(), RunningOffset, WriteZeroAtOffset); + RecursivelyClearPaddingImpl(CGF, Element.getPointer(), ElementQualType, + CurrentStartOffset + + ArrIndex * AllocSize.getKnownMinValue(), + RunningOffset, WriteZeroAtOffset); } } template <class T> -void RecursivelyClearPaddingImpl(CodeGenFunction &CGF, Value *Ptr, QualType Ty, size_t CurrentStartOffset, - size_t& RunningOffset, T&& WriteZeroAtOffset) { +void RecursivelyClearPaddingImpl(CodeGenFunction &CGF, Value *Ptr, QualType Ty, + size_t CurrentStartOffset, + size_t &RunningOffset, T &&WriteZeroAtOffset) { - std::cerr << "\n\n zero padding before current ["<< RunningOffset << ", " << CurrentStartOffset<< ")"<< std::endl; + std::cerr << "\n\n zero padding before current [" << RunningOffset << ", " + << CurrentStartOffset << ")" << std::endl; for (; RunningOffset < CurrentStartOffset; ++RunningOffset) { WriteZeroAtOffset(RunningOffset); } auto Type = CGF.ConvertTypeForMem(Ty); auto Size = CGF.CGM.getModule() - .getDataLayout() - .getTypeSizeInBits(Type) - .getKnownMinValue() / 8; + .getDataLayout() + .getTypeSizeInBits(Type) + .getKnownMinValue() / + 8; if (auto *AT = dyn_cast<ConstantArrayType>(Ty)) { - ClearPaddingConstantArray(CGF, Ptr, Type, AT, CurrentStartOffset, RunningOffset, WriteZeroAtOffset); - } - else if (auto *ST = dyn_cast<StructType>(Type)) { - ClearPaddingStruct(CGF, Ptr, Ty, ST, CurrentStartOffset, RunningOffset, WriteZeroAtOffset); + ClearPaddingConstantArray(CGF, Ptr, Type, AT, CurrentStartOffset, + RunningOffset, WriteZeroAtOffset); + } else if (auto *ST = dyn_cast<StructType>(Type)) { + ClearPaddingStruct(CGF, Ptr, Ty, ST, CurrentStartOffset, RunningOffset, + WriteZeroAtOffset); } else { - std::cerr << "\n\n increment running offset from: " << RunningOffset << " to " << RunningOffset + Size << std::endl; + std::cerr << "\n\n increment running offset from: " << RunningOffset + << " to " << RunningOffset + Size << std::endl; RunningOffset += Size; } - } static void RecursivelyZeroNonValueBits(CodeGenFunction &CGF, Value *Ptr, @@ -2567,20 +2583,22 @@ static void RecursivelyZeroNonValueBits(CodeGenFunction &CGF, Value *Ptr, CharUnits::One().alignmentAtOffset(CharUnits::fromQuantity(Offset))); }; - size_t RunningOffset = 0; - RecursivelyClearPaddingImpl(CGF, Ptr, Ty, 0, RunningOffset, WriteZeroAtOffset); + RecursivelyClearPaddingImpl(CGF, Ptr, Ty, 0, RunningOffset, + WriteZeroAtOffset); // Clear tail padding auto Type = CGF.ConvertTypeForMem(Ty); - + auto Size = CGF.CGM.getModule() - .getDataLayout() - .getTypeSizeInBits(Type) - .getKnownMinValue() / 8; + .getDataLayout() + .getTypeSizeInBits(Type) + .getKnownMinValue() / + 8; - std::cerr << "\n\n zero tail padding ["<< RunningOffset << ", " << Size << ")"<< std::endl; + std::cerr << "\n\n zero tail padding [" << RunningOffset << ", " << Size + << ")" << std::endl; for (; RunningOffset < Size; ++RunningOffset) { WriteZeroAtOffset(RunningOffset); } diff --git a/clang/lib/Sema/SemaChecking.cpp b/clang/lib/Sema/SemaChecking.cpp index 3470dfca3e..d923164478 100644 --- a/clang/lib/Sema/SemaChecking.cpp +++ b/clang/lib/Sema/SemaChecking.cpp @@ -2333,7 +2333,8 @@ Sema::CheckBuiltinFunctionCall(FunctionDecl *FDecl, unsigned BuiltinID, // if (!PtrArgType->isPointerType() || // !PtrArgType->getPointeeType()->isRecordType()) { // Diag(PtrArg->getBeginLoc(), diag::err_typecheck_convert_incompatible) - // << PtrArgType << "structure pointer" << 1 << 0 << 3 << 1 << PtrArgType + // << PtrArgType << "structure pointer" << 1 << 0 << 3 << 1 << + // PtrArgType // << "structure pointer"; // return ExprError(); // } @@ -2342,7 +2343,8 @@ Sema::CheckBuiltinFunctionCall(FunctionDecl *FDecl, unsigned BuiltinID, // << TheCall->getSourceRange() << 5 /*ConstUnknown*/; // return ExprError(); // } - // if (RequireCompleteType(PtrArg->getBeginLoc(), PtrArgType->getPointeeType(), + // if (RequireCompleteType(PtrArg->getBeginLoc(), + // PtrArgType->getPointeeType(), // diag::err_typecheck_decl_incomplete_type)) // return ExprError(); break; `````````` </details> https://github.com/llvm/llvm-project/pull/75371 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits