# This file has declarations that appear both in <stdlib.h> and in <malloc.h>.
# These include the subset of GNU extensions that Scudo supports.
#
# Note: glibc's <stdlib.h> and <malloc.h> both also have `reallocarray`,
# which Scudo does not support and is omitted here.  (Each of those glibc
# headers also has related functions the other lacks, but those should be
# covered separately in stdlib.yaml and malloc.yaml instead.)

functions:
  - name: aligned_alloc
    standards:
      - stdc
    return_type: void *
    arguments:
      - type: size_t
      - type: size_t
  - name: calloc
    standards:
      - stdc
    return_type: void *
    arguments:
      - type: size_t
      - type: size_t
  - name: free
    standards:
      - stdc
    return_type: void
    arguments:
      - type: void *
  - name: malloc
    standards:
      - stdc
    return_type: void *
    arguments:
      - type: size_t
  - name: memalign
    standards:
      - gnu
    return_type: void *
    arguments:
      - type: size_t
      - type: size_t
  - name: realloc
    standards:
      - stdc
    return_type: void *
    arguments:
      - type: void *
      - type: size_t
  - name: valloc
    standards:
      - bsd
      - gnu
    return_type: void *
    arguments:
      - type: size_t
