[clang] [llvm] [Clang] Correct __builtin_dynamic_object_size for subobject types (PR #83204)

via llvm-commits llvm-commits at lists.llvm.org
Wed Mar 13 18:01:02 PDT 2024


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 55d4816393f897054a4721920502d45c645edf1d cb86c3c12959513309ccf97592d602ba4da36d1d -- clang/test/CodeGen/object-size-sub-object.c clang/lib/CodeGen/CGBuiltin.cpp clang/lib/CodeGen/CGExpr.cpp clang/test/CodeGen/attr-counted-by.c clang/test/CodeGen/catch-undef-behavior.c clang/test/CodeGen/object-size.c clang/test/CodeGen/object-size.cpp clang/test/CodeGen/pass-object-size.c clang/test/CodeGen/sanitize-recover.c llvm/include/llvm/Analysis/MemoryBuiltins.h llvm/lib/Analysis/MemoryBuiltins.cpp llvm/lib/IR/AutoUpgrade.cpp llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.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 d8d4aa5288..7461d0ee00 100644
--- a/clang/lib/CodeGen/CGBuiltin.cpp
+++ b/clang/lib/CodeGen/CGBuiltin.cpp
@@ -1244,8 +1244,8 @@ CodeGenFunction::emitBuiltinObjectSize(const Expr *E, unsigned Type,
   // it's set, a closest surrounding subobject is considered the object a
   // pointer points to.
   Value *WholeObj = Builder.getInt1((Type & 1) == 0);
-  return Builder.CreateCall(F, {Ptr, Min, NullIsUnknown, Dynamic, WholeObj,
-                                SubobjectSize});
+  return Builder.CreateCall(
+      F, {Ptr, Min, NullIsUnknown, Dynamic, WholeObj, SubobjectSize});
 }
 
 namespace {
diff --git a/clang/lib/CodeGen/CGExpr.cpp b/clang/lib/CodeGen/CGExpr.cpp
index b0aa3579bd..d94a775cab 100644
--- a/clang/lib/CodeGen/CGExpr.cpp
+++ b/clang/lib/CodeGen/CGExpr.cpp
@@ -750,8 +750,8 @@ void CodeGenFunction::EmitTypeCheck(TypeCheckKind TCK, SourceLocation Loc,
       llvm::Value *WholeObj = Builder.getTrue();
       llvm::Value *SubobjectSize = Builder.getInt64(0);
       llvm::Value *LargeEnough = Builder.CreateICmpUGE(
-          Builder.CreateCall(F, {Ptr, Min, NullIsUnknown, Dynamic, WholeObj,
-                                 SubobjectSize}),
+          Builder.CreateCall(
+              F, {Ptr, Min, NullIsUnknown, Dynamic, WholeObj, SubobjectSize}),
           Size);
       Checks.push_back(std::make_pair(LargeEnough, SanitizerKind::ObjectSize));
     }

``````````

</details>


https://github.com/llvm/llvm-project/pull/83204


More information about the llvm-commits mailing list