Revision 024edd60de22f195409a743c4fb60692c1000735 authored by Keno Fischer on 16 July 2023, 16:31:25 UTC, committed by GitHub on 16 July 2023, 16:31:25 UTC
Fixes the segfault in #50518 and turns it into a proper error at both the syntax level (to catch lowering generating bad slot references) as well as at the codegen level (to catch e.g. bad generated functions and opaque closures). However, note that the latter case is technically undefined behavior, because we do not model the possibility that an otherwise-defined argument could throw at access time. Of course, throwing an error is allowable as undefined behavior and preferable to a segfault.
ctypes.jl
# This file is a part of Julia. License is MIT: https://julialang.org/license
# essential type definitions for interacting with C code
# (platform- or OS-dependent types are defined in c.jl)
"""
Cuchar
Equivalent to the native `unsigned char` c-type ([`UInt8`](@ref)).
"""
const Cuchar = UInt8
"""
Cshort
Equivalent to the native `signed short` c-type ([`Int16`](@ref)).
"""
const Cshort = Int16
"""
Cushort
Equivalent to the native `unsigned short` c-type ([`UInt16`](@ref)).
"""
const Cushort = UInt16
"""
Cint
Equivalent to the native `signed int` c-type ([`Int32`](@ref)).
"""
const Cint = Int32
"""
Cuint
Equivalent to the native `unsigned int` c-type ([`UInt32`](@ref)).
"""
const Cuint = UInt32
"""
Cptrdiff_t
Equivalent to the native `ptrdiff_t` c-type (`Int`).
"""
const Cptrdiff_t = Int
"""
Csize_t
Equivalent to the native `size_t` c-type (`UInt`).
"""
const Csize_t = UInt
"""
Cssize_t
Equivalent to the native `ssize_t` c-type.
"""
const Cssize_t = Int
"""
Cintmax_t
Equivalent to the native `intmax_t` c-type ([`Int64`](@ref)).
"""
const Cintmax_t = Int64
"""
Cuintmax_t
Equivalent to the native `uintmax_t` c-type ([`UInt64`](@ref)).
"""
const Cuintmax_t = UInt64
"""
Clonglong
Equivalent to the native `signed long long` c-type ([`Int64`](@ref)).
"""
const Clonglong = Int64
"""
Culonglong
Equivalent to the native `unsigned long long` c-type ([`UInt64`](@ref)).
"""
const Culonglong = UInt64
"""
Cfloat
Equivalent to the native `float` c-type ([`Float32`](@ref)).
"""
const Cfloat = Float32
"""
Cdouble
Equivalent to the native `double` c-type ([`Float64`](@ref)).
"""
const Cdouble = Float64
Computing file changes ...