CApiFFI: add ConstPtr for encoding const-qualified pointer return types
Previously, when using `capi` calling convention in foreign declarations, code generator failed to handle const-cualified pointer return types. This resulted in CC toolchain throwing `-Wincompatible-pointer-types-discards-qualifiers` warning. `Foreign.C.Types.ConstPtr` newtype was introduced to handle these cases - special treatment was put in place to generate appropritetly qualified C wrapper that no longer triggers the above mentioned warning. Fixes #22043. (cherry picked from commit b3a3534b)
Showing
- compiler/GHC/Builtin/Names.hs 9 additions, 3 deletionscompiler/GHC/Builtin/Names.hs
- compiler/GHC/HsToCore/Foreign/C.hs 10 additions, 2 deletionscompiler/GHC/HsToCore/Foreign/C.hs
- docs/users_guide/9.6.1-notes.rst 3 additions, 0 deletionsdocs/users_guide/9.6.1-notes.rst
- docs/users_guide/exts/ffi.rst 12 additions, 0 deletionsdocs/users_guide/exts/ffi.rst
- libraries/base/Data/Data.hs 4 additions, 0 deletionslibraries/base/Data/Data.hs
- libraries/base/Foreign/C/ConstPtr.hs 45 additions, 0 deletionslibraries/base/Foreign/C/ConstPtr.hs
- libraries/base/Foreign/Storable.hs 6 additions, 0 deletionslibraries/base/Foreign/Storable.hs
- libraries/base/base.cabal 1 addition, 0 deletionslibraries/base/base.cabal
- libraries/base/changelog.md 5 additions, 3 deletionslibraries/base/changelog.md
- testsuite/tests/ffi/should_compile/T22043.h 2 additions, 0 deletionstestsuite/tests/ffi/should_compile/T22043.h
- testsuite/tests/ffi/should_compile/T22043.hs 11 additions, 0 deletionstestsuite/tests/ffi/should_compile/T22043.hs
- testsuite/tests/ffi/should_compile/T22043_c.c 9 additions, 0 deletionstestsuite/tests/ffi/should_compile/T22043_c.c
- testsuite/tests/ffi/should_compile/all.T 1 addition, 0 deletionstestsuite/tests/ffi/should_compile/all.T
Loading
Please register or sign in to comment