Functions changes summary: 1 Removed, 3 Changed, 1 Added functions
Variables changes summary: 0 Removed, 0 Changed, 0 Added variable

1 Removed function:

  [D] 'function void fn2(callback)'

1 function with incompatible sub-type changes:

  [C] 'function double (*fn1(void))(int)' has some sub-type changes:
    return type changed:
      in pointed to type 'function type double (int)':
        return type changed:
          type name changed from 'double' to 'int'
          type size changed from 64 to 32 (in bits)

1 Added function:

  [A] 'function void fn2(callback)'

2 functions with some indirect sub-type change:

  [C] 'function callback fn0(void)' has some indirect sub-type changes:
    return type changed:
      underlying type 'int (*)(int)' changed:
        in pointed to type 'function type int (int)':
          return type changed:
            type name changed from 'int' to 'void'
            type size changed from 32 to 0 (in bits)

  [C] 'function void foo(S)' has some indirect sub-type changes:
    parameter 1 of type 'class S' has sub-type changes:
      type size hasn't changed
      3 data member changes:
        type of 'int (* fnptr0)(void)' changed:
          in pointed to type 'function type int (void)':
            parameter 1 of type 'double' was added
        type of 'int (* fnptr1)(void)' changed:
          in pointed to type 'function type int (void)':
            entity changed from 'function type int (void)' to 'void'
            type size changed from 64 to 0 (in bits)
        type of 'int (* fnptr2)(void)' changed:
          entity changed from 'int (*)(void)' to 'int'
          type size changed from 64 to 32 (in bits)

