Skip to content

fix: use std::memcpy instead of *reinterpret_cast#3514

Merged
ianna merged 7 commits intoscikit-hep:mainfrom
APN-Pucky:gentoo_bug_956029
Jun 25, 2025
Merged

fix: use std::memcpy instead of *reinterpret_cast#3514
ianna merged 7 commits intoscikit-hep:mainfrom
APN-Pucky:gentoo_bug_956029

Conversation

@APN-Pucky
Copy link
Copy Markdown
Member

@APN-Pucky APN-Pucky commented May 16, 2025

@APN-Pucky
Copy link
Copy Markdown
Member Author

In order to test if it still produces aliasing errors I used

diff --git i/awkward-cpp/CMakeLists.txt w/awkward-cpp/CMakeLists.txt
index 574d197f..b0ea478b 100644
--- i/awkward-cpp/CMakeLists.txt
+++ w/awkward-cpp/CMakeLists.txt
@@ -2,6 +2,10 @@
 
 cmake_minimum_required(VERSION 3.15...3.30)
 
+set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror=strict-aliasing")
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror=strict-aliasing")
+
+
 if(NOT DEFINED SKBUILD)
   set(SKBUILD_PROJECT_NAME awkward_cpp)
   set(SKBUILD_PROJECT_VERSION 0.0.0)

@codecov
Copy link
Copy Markdown

codecov bot commented May 16, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 82.41%. Comparing base (b749e49) to head (9acd511).
Report is 369 commits behind head on main.

Additional details and impacted files

see 195 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@APN-Pucky APN-Pucky changed the title fix: use std::memcpy instead of *reinterpret_cat fix: use std::memcpy instead of *reinterpret_cast May 16, 2025
@APN-Pucky APN-Pucky marked this pull request as ready for review May 16, 2025 15:23
@ianna
Copy link
Copy Markdown
Member

ianna commented Jun 13, 2025

@henryiii - FYI, the windows build fails for 3.13 on this PR. Is it something you are looking into? Thanks!

*** Building project with Visual Studio 17 2022...
MSBuild version 17.13.15+18b3035f6 for .NET Framework

  Checking File Globs
  1>Checking Build System
  Building Custom Rule D:/a/awkward/awkward/awkward-cpp/CMakeLists.txt
  ArrayBuilder.cpp
  BoolBuilder.cpp
  Builder.cpp
  Complex128Builder.cpp
  DatetimeBuilder.cpp
  Float64Builder.cpp
  Int64Builder.cpp
  ListBuilder.cpp
  OptionBuilder.cpp
  RecordBuilder.cpp
  StringBuilder.cpp
  TupleBuilder.cpp
  UnionBuilder.cpp
  UnknownBuilder.cpp
  ForthInputBuffer.cpp
  ForthMachine.cpp
  ForthOutputBuffer.cpp
  json.cpp
  util.cpp
  Generating Code...
     Creating library D:/a/awkward/awkward/awkward-cpp/build/cpython-313/Release/awkward.lib and object D:/a/awkward/awkward/awkward-cpp/build/cpython-313/Release/awkward.exp
  awkward.vcxproj -> D:\a\awkward\awkward\awkward-cpp\build\cpython-313\Release\awkward.dll
  Building Custom Rule D:/a/awkward/awkward/awkward-cpp/CMakeLists.txt
  _ext.cpp
  content.cpp
  forth.cpp
  io.cpp
LINK : fatal error LNK1104: cannot open file 'python313t.lib' [D:\a\awkward\awkward\awkward-cpp\build\cpython-313\_ext.vcxproj]

*** CMake build failed

@ianna
Copy link
Copy Markdown
Member

ianna commented Jun 13, 2025

@henryiii - FYI, the windows build fails for 3.13 on this PR. Is it something you are looking into? Thanks!

*** Building project with Visual Studio 17 2022...
MSBuild version 17.13.15+18b3035f6 for .NET Framework

  Checking File Globs
  1>Checking Build System
  Building Custom Rule D:/a/awkward/awkward/awkward-cpp/CMakeLists.txt
  ArrayBuilder.cpp
  BoolBuilder.cpp
  Builder.cpp
  Complex128Builder.cpp
  DatetimeBuilder.cpp
  Float64Builder.cpp
  Int64Builder.cpp
  ListBuilder.cpp
  OptionBuilder.cpp
  RecordBuilder.cpp
  StringBuilder.cpp
  TupleBuilder.cpp
  UnionBuilder.cpp
  UnknownBuilder.cpp
  ForthInputBuffer.cpp
  ForthMachine.cpp
  ForthOutputBuffer.cpp
  json.cpp
  util.cpp
  Generating Code...
     Creating library D:/a/awkward/awkward/awkward-cpp/build/cpython-313/Release/awkward.lib and object D:/a/awkward/awkward/awkward-cpp/build/cpython-313/Release/awkward.exp
  awkward.vcxproj -> D:\a\awkward\awkward\awkward-cpp\build\cpython-313\Release\awkward.dll
  Building Custom Rule D:/a/awkward/awkward/awkward-cpp/CMakeLists.txt
  _ext.cpp
  content.cpp
  forth.cpp
  io.cpp
LINK : fatal error LNK1104: cannot open file 'python313t.lib' [D:\a\awkward\awkward\awkward-cpp\build\cpython-313\_ext.vcxproj]

*** CMake build failed

I guess, these changes need to go first:
d8219a1#diff-faff1af3d8ff408964a57b2e475f69a6b7c7b71c9978cccc8f471798caac2c88R99-R106

Copy link
Copy Markdown
Member

@ianna ianna left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@APN-Pucky - thank you for fixing this! Looks great. I’m merging it. Thanks!

@ianna ianna merged commit 28af3a7 into scikit-hep:main Jun 25, 2025
44 checks passed
@ianna
Copy link
Copy Markdown
Member

ianna commented Jun 26, 2025

@all-contributors please add @APN-Pucky for code

@allcontributors
Copy link
Copy Markdown
Contributor

@ianna

I've put up a pull request to add @APN-Pucky! 🎉

@APN-Pucky
Copy link
Copy Markdown
Member Author

Thanks @ianna !

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

awkward-cpp: error: dereferencing type-punned pointer will break strict-aliasing rules

2 participants