Skip to content

Conversation

@tbaederr
Copy link
Contributor

Seems like passing the quantities directly seems to work fine.

Seems like passing the quantities directly seems to work fine.
@llvmbot llvmbot added clang Clang issues not falling into any other category clang:frontend Language frontend issues, e.g. anything involving "Sema" labels Oct 11, 2024
@llvmbot
Copy link
Member

llvmbot commented Oct 11, 2024

@llvm/pr-subscribers-clang

Author: Timm Baeder (tbaederr)

Changes

Seems like passing the quantities directly seems to work fine.


Full diff: https://github.com/llvm/llvm-project/pull/111959.diff

1 Files Affected:

  • (modified) clang/lib/AST/ExprConstant.cpp (+5-8)
diff --git a/clang/lib/AST/ExprConstant.cpp b/clang/lib/AST/ExprConstant.cpp
index 4d5af96093cfeb..06e653f96d6de1 100644
--- a/clang/lib/AST/ExprConstant.cpp
+++ b/clang/lib/AST/ExprConstant.cpp
@@ -9768,11 +9768,8 @@ bool PointerExprEvaluator::VisitBuiltinCallExpr(const CallExpr *E,
 
       if (BaseAlignment < Align) {
         Result.Designator.setInvalid();
-        // FIXME: Add support to Diagnostic for long / long long.
-        CCEDiag(E->getArg(0),
-                diag::note_constexpr_baa_insufficient_alignment) << 0
-          << (unsigned)BaseAlignment.getQuantity()
-          << (unsigned)Align.getQuantity();
+        CCEDiag(E->getArg(0), diag::note_constexpr_baa_insufficient_alignment)
+            << 0 << BaseAlignment.getQuantity() << Align.getQuantity();
         return false;
       }
     }
@@ -9783,11 +9780,11 @@ bool PointerExprEvaluator::VisitBuiltinCallExpr(const CallExpr *E,
 
       (OffsetResult.Base
            ? CCEDiag(E->getArg(0),
-                     diag::note_constexpr_baa_insufficient_alignment) << 1
+                     diag::note_constexpr_baa_insufficient_alignment)
+                 << 1
            : CCEDiag(E->getArg(0),
                      diag::note_constexpr_baa_value_insufficient_alignment))
-        << (int)OffsetResult.Offset.getQuantity()
-        << (unsigned)Align.getQuantity();
+          << OffsetResult.Offset.getQuantity() << Align.getQuantity();
       return false;
     }
 

@tbaederr tbaederr merged commit 42ec740 into llvm:main Oct 11, 2024
@llvm-ci
Copy link
Collaborator

llvm-ci commented Oct 11, 2024

LLVM Buildbot has detected a new failure on builder sanitizer-aarch64-linux-fuzzer running on sanitizer-buildbot12 while building clang at step 2 "annotate".

Full details are available at: https://lab.llvm.org/buildbot/#/builders/159/builds/7979

Here is the relevant piece of the build log for the reference
Step 2 (annotate) failure: 'python ../sanitizer_buildbot/sanitizers/zorg/buildbot/builders/sanitizers/buildbot_selector.py' (failure)
...
[7/21] Linking CXX shared library /home/b/sanitizer-aarch64-linux-fuzzer/build/llvm_build0/lib/clang/20/lib/aarch64-unknown-linux-gnu/libclang_rt.hwasan.so
[8/21] Linking CXX shared library /home/b/sanitizer-aarch64-linux-fuzzer/build/llvm_build0/lib/clang/20/lib/aarch64-unknown-linux-gnu/libclang_rt.asan.so
[9/21] Building CXX object compiler-rt/lib/xray/CMakeFiles/RTXray.aarch64.dir/xray_AArch64.cpp.o
[10/21] Building CXX object compiler-rt/lib/xray/CMakeFiles/RTXray.aarch64.dir/xray_log_interface.cpp.o
[11/21] Building CXX object compiler-rt/lib/xray/CMakeFiles/RTXray.aarch64.dir/xray_init.cpp.o
/home/b/sanitizer-aarch64-linux-fuzzer/build/llvm-project/compiler-rt/lib/xray/xray_init.cpp:213:27: warning: comparison of integers of different signs: 'int32_t' (aka 'int') and 'size_t' (aka 'unsigned long') [-Wsign-compare]
  213 |   if (ObjId <= 0 || ObjId >= __xray_num_objects()) {
      |                     ~~~~~ ^  ~~~~~~~~~~~~~~~~~~~~
1 warning generated.
[12/21] Building CXX object compiler-rt/lib/xray/CMakeFiles/RTXray.aarch64.dir/xray_interface.cpp.o
FAILED: compiler-rt/lib/xray/CMakeFiles/RTXray.aarch64.dir/xray_interface.cpp.o 
/home/b/sanitizer-aarch64-linux-fuzzer/build/llvm_build0/./bin/clang++ --target=aarch64-unknown-linux-gnu -DSANITIZER_COMMON_NO_REDEFINE_BUILTINS -DXRAY_HAS_EXCEPTIONS=1 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/b/sanitizer-aarch64-linux-fuzzer/build/llvm-project/compiler-rt/lib/xray/.. -I/home/b/sanitizer-aarch64-linux-fuzzer/build/llvm-project/compiler-rt/lib/xray/../../include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -Wall -Wno-unused-parameter -O3 -DNDEBUG -std=c++17 -march=armv8-a -fPIC -fno-builtin -fno-exceptions -fomit-frame-pointer -funwind-tables -fno-stack-protector -fno-sanitize=safe-stack -fvisibility=hidden -fno-lto -Wthread-safety -Wthread-safety-reference -Wthread-safety-beta -O3 -gline-tables-only -Wno-gnu -Wno-variadic-macros -Wno-c99-extensions -ftrivial-auto-var-init=pattern -Wno-format -fno-rtti -MD -MT compiler-rt/lib/xray/CMakeFiles/RTXray.aarch64.dir/xray_interface.cpp.o -MF compiler-rt/lib/xray/CMakeFiles/RTXray.aarch64.dir/xray_interface.cpp.o.d -o compiler-rt/lib/xray/CMakeFiles/RTXray.aarch64.dir/xray_interface.cpp.o -c /home/b/sanitizer-aarch64-linux-fuzzer/build/llvm-project/compiler-rt/lib/xray/xray_interface.cpp
/home/b/sanitizer-aarch64-linux-fuzzer/build/llvm-project/compiler-rt/lib/xray/xray_interface.cpp:16:10: fatal error: 'llvm/Support/ErrorHandling.h' file not found
   16 | #include "llvm/Support/ErrorHandling.h"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
[13/21] Building CXX object compiler-rt/lib/xray/CMakeFiles/RTXrayBASIC.aarch64.dir/xray_basic_logging.cpp.o
[14/21] Building CXX object compiler-rt/lib/xray/CMakeFiles/RTXrayPROFILING.aarch64.dir/xray_profiling.cpp.o
[15/21] Building CXX object compiler-rt/lib/xray/CMakeFiles/RTXrayPROFILING.aarch64.dir/xray_profile_collector.cpp.o
[16/21] Building CXX object compiler-rt/lib/xray/CMakeFiles/RTXrayFDR.aarch64.dir/xray_fdr_logging.cpp.o
ninja: build stopped: subcommand failed.
FAILED: runtimes/runtimes-stamps/runtimes-build /home/b/sanitizer-aarch64-linux-fuzzer/build/llvm_build0/runtimes/runtimes-stamps/runtimes-build 
cd /home/b/sanitizer-aarch64-linux-fuzzer/build/llvm_build0/runtimes/runtimes-bins && /usr/bin/cmake --build .
ninja: build stopped: subcommand failed.
Step 7 (stage1 build all) failure: stage1 build all (failure)
...
[7/21] Linking CXX shared library /home/b/sanitizer-aarch64-linux-fuzzer/build/llvm_build0/lib/clang/20/lib/aarch64-unknown-linux-gnu/libclang_rt.hwasan.so
[8/21] Linking CXX shared library /home/b/sanitizer-aarch64-linux-fuzzer/build/llvm_build0/lib/clang/20/lib/aarch64-unknown-linux-gnu/libclang_rt.asan.so
[9/21] Building CXX object compiler-rt/lib/xray/CMakeFiles/RTXray.aarch64.dir/xray_AArch64.cpp.o
[10/21] Building CXX object compiler-rt/lib/xray/CMakeFiles/RTXray.aarch64.dir/xray_log_interface.cpp.o
[11/21] Building CXX object compiler-rt/lib/xray/CMakeFiles/RTXray.aarch64.dir/xray_init.cpp.o
/home/b/sanitizer-aarch64-linux-fuzzer/build/llvm-project/compiler-rt/lib/xray/xray_init.cpp:213:27: warning: comparison of integers of different signs: 'int32_t' (aka 'int') and 'size_t' (aka 'unsigned long') [-Wsign-compare]
  213 |   if (ObjId <= 0 || ObjId >= __xray_num_objects()) {
      |                     ~~~~~ ^  ~~~~~~~~~~~~~~~~~~~~
1 warning generated.
[12/21] Building CXX object compiler-rt/lib/xray/CMakeFiles/RTXray.aarch64.dir/xray_interface.cpp.o
FAILED: compiler-rt/lib/xray/CMakeFiles/RTXray.aarch64.dir/xray_interface.cpp.o 
/home/b/sanitizer-aarch64-linux-fuzzer/build/llvm_build0/./bin/clang++ --target=aarch64-unknown-linux-gnu -DSANITIZER_COMMON_NO_REDEFINE_BUILTINS -DXRAY_HAS_EXCEPTIONS=1 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/b/sanitizer-aarch64-linux-fuzzer/build/llvm-project/compiler-rt/lib/xray/.. -I/home/b/sanitizer-aarch64-linux-fuzzer/build/llvm-project/compiler-rt/lib/xray/../../include -fPIC -fno-semantic-interposition -fvisibility-inlines-hidden -Werror=date-time -Werror=unguarded-availability-new -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wmissing-field-initializers -Wimplicit-fallthrough -Wcovered-switch-default -Wno-noexcept-type -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -Wsuggest-override -Wstring-conversion -Wmisleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -ffunction-sections -fdata-sections -Wall -Wno-unused-parameter -O3 -DNDEBUG -std=c++17 -march=armv8-a -fPIC -fno-builtin -fno-exceptions -fomit-frame-pointer -funwind-tables -fno-stack-protector -fno-sanitize=safe-stack -fvisibility=hidden -fno-lto -Wthread-safety -Wthread-safety-reference -Wthread-safety-beta -O3 -gline-tables-only -Wno-gnu -Wno-variadic-macros -Wno-c99-extensions -ftrivial-auto-var-init=pattern -Wno-format -fno-rtti -MD -MT compiler-rt/lib/xray/CMakeFiles/RTXray.aarch64.dir/xray_interface.cpp.o -MF compiler-rt/lib/xray/CMakeFiles/RTXray.aarch64.dir/xray_interface.cpp.o.d -o compiler-rt/lib/xray/CMakeFiles/RTXray.aarch64.dir/xray_interface.cpp.o -c /home/b/sanitizer-aarch64-linux-fuzzer/build/llvm-project/compiler-rt/lib/xray/xray_interface.cpp
/home/b/sanitizer-aarch64-linux-fuzzer/build/llvm-project/compiler-rt/lib/xray/xray_interface.cpp:16:10: fatal error: 'llvm/Support/ErrorHandling.h' file not found
   16 | #include "llvm/Support/ErrorHandling.h"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
[13/21] Building CXX object compiler-rt/lib/xray/CMakeFiles/RTXrayBASIC.aarch64.dir/xray_basic_logging.cpp.o
[14/21] Building CXX object compiler-rt/lib/xray/CMakeFiles/RTXrayPROFILING.aarch64.dir/xray_profiling.cpp.o
[15/21] Building CXX object compiler-rt/lib/xray/CMakeFiles/RTXrayPROFILING.aarch64.dir/xray_profile_collector.cpp.o
[16/21] Building CXX object compiler-rt/lib/xray/CMakeFiles/RTXrayFDR.aarch64.dir/xray_fdr_logging.cpp.o
ninja: build stopped: subcommand failed.
FAILED: runtimes/runtimes-stamps/runtimes-build /home/b/sanitizer-aarch64-linux-fuzzer/build/llvm_build0/runtimes/runtimes-stamps/runtimes-build 
cd /home/b/sanitizer-aarch64-linux-fuzzer/build/llvm_build0/runtimes/runtimes-bins && /usr/bin/cmake --build .
ninja: build stopped: subcommand failed.
program finished with exit code 1
elapsedTime=296.215442

DanielCChen pushed a commit to DanielCChen/llvm-project that referenced this pull request Oct 16, 2024
Seems like passing the quantities directly seems to work fine.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

clang:frontend Language frontend issues, e.g. anything involving "Sema" clang Clang issues not falling into any other category

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants