Skip to content

XDR compile warnings cause test failures on mac #4387

@GiudGiud

Description

@GiudGiud

With the upgrade of the compiler stack, the custom casting between functions done for xdr is flagged as 'incompatible'

I imagine this is a false positive otherwise we would have been bitten already by this

../src/utils/xdr_cxx.C:565:12: error: cast from 'int (*)(XDR *, int *)' (aka 'int (*)(__rpc_xdr *, int *)') to 'xdrproc_t' (aka 'int (*)(__rpc_xdr *, void *, unsigned int)') converts to incompatible function type [-Werror,-Wcast-function-type-mismatch]
  565 |     return (xdrproc_t)(xdr_int);
      |            ^~~~~~~~~~~~~~~~~~~~
../src/utils/xdr_cxx.C:567:12: error: cast from 'int (*)(XDR *, quad_t *)' (aka 'int (*)(__rpc_xdr *, long long *)') to 'xdrproc_t' (aka 'int (*)(__rpc_xdr *, void *, unsigned int)') converts to incompatible function type [-Werror,-Wcast-function-type-mismatch]
  567 |     return (xdrproc_t)(xdr_longlong_t);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/utils/xdr_cxx.C:569:12: error: cast from 'int (*)(XDR *, int *)' (aka 'int (*)(__rpc_xdr *, int *)') to 'xdrproc_t' (aka 'int (*)(__rpc_xdr *, void *, unsigned int)') converts to incompatible function type [-Werror,-Wcast-function-type-mismatch]
  569 |     return (xdrproc_t)(xdr_long);
      |            ^~~~~~~~~~~~~~~~~~~~~
../src/utils/xdr_cxx.C:580:12: error: cast from 'int (*)(XDR *, unsigned int *)' (aka 'int (*)(__rpc_xdr *, unsigned int *)') to 'xdrproc_t' (aka 'int (*)(__rpc_xdr *, void *, unsigned int)') converts to incompatible function type [-Werror,-Wcast-function-type-mismatch]
  580 |     return (xdrproc_t)(xdr_u_int);
      |            ^~~~~~~~~~~~~~~~~~~~~~
../src/utils/xdr_cxx.C:582:12: error: cast from 'int (*)(XDR *, unsigned int *)' (aka 'int (*)(__rpc_xdr *, unsigned int *)') to 'xdrproc_t' (aka 'int (*)(__rpc_xdr *, void *, unsigned int)') converts to incompatible function type [-Werror,-Wcast-function-type-mismatch]
  582 |     return (xdrproc_t)(xdr_u_long);
      |            ^~~~~~~~~~~~~~~~~~~~~~~
../src/utils/xdr_cxx.C:584:12: error: cast from 'int (*)(XDR *, u_quad_t *)' (aka 'int (*)(__rpc_xdr *, unsigned long long *)') to 'xdrproc_t' (aka 'int (*)(__rpc_xdr *, void *, unsigned int)') converts to incompatible function type [-Werror,-Wcast-function-type-mismatch]
  584 |     return (xdrproc_t)(xdr_u_longlong_t);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/utils/xdr_cxx.C:595:12: error: cast from 'int (*)(XDR *, int *)' (aka 'int (*)(__rpc_xdr *, int *)') to 'xdrproc_t' (aka 'int (*)(__rpc_xdr *, void *, unsigned int)') converts to incompatible function type [-Werror,-Wcast-function-type-mismatch]
  595 |     return (xdrproc_t)(xdr_long);
      |            ^~~~~~~~~~~~~~~~~~~~~
../src/utils/xdr_cxx.C:597:12: error: cast from 'int (*)(XDR *, quad_t *)' (aka 'int (*)(__rpc_xdr *, long long *)') to 'xdrproc_t' (aka 'int (*)(__rpc_xdr *, void *, unsigned int)') converts to incompatible function type [-Werror,-Wcast-function-type-mismatch]
  597 |     return (xdrproc_t)(xdr_longlong_t);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/utils/xdr_cxx.C:608:12: error: cast from 'int (*)(XDR *, unsigned int *)' (aka 'int (*)(__rpc_xdr *, unsigned int *)') to 'xdrproc_t' (aka 'int (*)(__rpc_xdr *, void *, unsigned int)') converts to incompatible function type [-Werror,-Wcast-function-type-mismatch]
  608 |     return (xdrproc_t)(xdr_u_long);
      |            ^~~~~~~~~~~~~~~~~~~~~~~
../src/utils/xdr_cxx.C:610:12: error: cast from 'int (*)(XDR *, u_quad_t *)' (aka 'int (*)(__rpc_xdr *, unsigned long long *)') to 'xdrproc_t' (aka 'int (*)(__rpc_xdr *, void *, unsigned int)') converts to incompatible function type [-Werror,-Wcast-function-type-mismatch]
  610 |     return (xdrproc_t)(xdr_u_longlong_t);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/utils/xdr_cxx.C:624:48: error: cast from 'int (*)(XDR *, quad_t *)' (aka 'int (*)(__rpc_xdr *, long long *)') to 'xdrproc_t' (aka 'int (*)(__rpc_xdr *, void *, unsigned int)') converts to incompatible function type [-Werror,-Wcast-function-type-mismatch]
  624 | xdrproc_t xdr_translator<long long>() { return (xdrproc_t)(xdr_longlong_t); }
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/utils/xdr_cxx.C:627:57: error: cast from 'int (*)(XDR *, u_quad_t *)' (aka 'int (*)(__rpc_xdr *, unsigned long long *)') to 'xdrproc_t' (aka 'int (*)(__rpc_xdr *, void *, unsigned int)') converts to incompatible function type [-Werror,-Wcast-function-type-mismatch]
  627 | xdrproc_t xdr_translator<unsigned long long>() { return (xdrproc_t)(xdr_u_longlong_t); }
      |                                                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/utils/xdr_cxx.C:630:48: error: cast from 'int (*)(XDR *, short *)' (aka 'int (*)(__rpc_xdr *, short *)') to 'xdrproc_t' (aka 'int (*)(__rpc_xdr *, void *, unsigned int)') converts to incompatible function type [-Werror,-Wcast-function-type-mismatch]
  630 | xdrproc_t xdr_translator<short int>() { return (xdrproc_t)(xdr_short); }
      |                                                ^~~~~~~~~~~~~~~~~~~~~~
../src/utils/xdr_cxx.C:633:57: error: cast from 'int (*)(XDR *, unsigned short *)' (aka 'int (*)(__rpc_xdr *, unsigned short *)') to 'xdrproc_t' (aka 'int (*)(__rpc_xdr *, void *, unsigned int)') converts to incompatible function type [-Werror,-Wcast-function-type-mismatch]
  633 | xdrproc_t xdr_translator<unsigned short int>() { return (xdrproc_t)(xdr_u_short); }
      |                                                         ^~~~~~~~~~~~~~~~~~~~~~~~
../src/utils/xdr_cxx.C:636:43: error: cast from 'int (*)(XDR *, char *)' (aka 'int (*)(__rpc_xdr *, char *)') to 'xdrproc_t' (aka 'int (*)(__rpc_xdr *, void *, unsigned int)') converts to incompatible function type [-Werror,-Wcast-function-type-mismatch]
  636 | xdrproc_t xdr_translator<char>() { return (xdrproc_t)(xdr_char); }
      |                                           ^~~~~~~~~~~~~~~~~~~~~
../src/utils/xdr_cxx.C:639:50: error: cast from 'int (*)(XDR *, char *)' (aka 'int (*)(__rpc_xdr *, char *)') to 'xdrproc_t' (aka 'int (*)(__rpc_xdr *, void *, unsigned int)') converts to incompatible function type [-Werror,-Wcast-function-type-mismatch]
  639 | xdrproc_t xdr_translator<signed char>() { return (xdrproc_t)(xdr_char); }
      |                                                  ^~~~~~~~~~~~~~~~~~~~~
../src/utils/xdr_cxx.C:642:52: error: cast from 'int (*)(XDR *, unsigned char *)' (aka 'int (*)(__rpc_xdr *, unsigned char *)') to 'xdrproc_t' (aka 'int (*)(__rpc_xdr *, void *, unsigned int)') converts to incompatible function type [-Werror,-Wcast-function-type-mismatch]
  642 | xdrproc_t xdr_translator<unsigned char>() { return (xdrproc_t)(xdr_u_char); }
      |                                                    ^~~~~~~~~~~~~~~~~~~~~~~
../src/utils/xdr_cxx.C:645:44: error: cast from 'int (*)(XDR *, float *)' (aka 'int (*)(__rpc_xdr *, float *)') to 'xdrproc_t' (aka 'int (*)(__rpc_xdr *, void *, unsigned int)') converts to incompatible function type [-Werror,-Wcast-function-type-mismatch]
  645 | xdrproc_t xdr_translator<float>() { return (xdrproc_t)(xdr_float); }
      |                                            ^~~~~~~~~~~~~~~~~~~~~~
../src/utils/g:648:45: error: cast from 'int (*)(XDR *, double *)' (aka 'int (*)(__rpc_xdr *, double *)') to 'xdrproc_t' (aka 'int (*)(__rpc_xdr *, void *, unsigned int)') converts to incompatible function type [-Werror,-Wcast-function-type-mismatch]
  648 | xdrproc_t xdr_translator<double>() { return (xdrproc_t)(xdr_double); }
      |                                             ^~~~~~~~~~~~~~~~~~~~~~~
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
make[1]: *** [Makefile:31057: src/utils/libmesh_opt_la-xdr_cxx.lo] Error 1
make[1]: *** Waiting for unfinished jobs....
mv -f src/utils/.deps/libmesh_opt_la-utility.Tpo src/utils/.deps/libmesh_opt_la-utility.Plo
mv -f src/utils/.deps/libmesh_opt_la-topology_map.Tpo src/utils/.deps/libmesh_opt_la-topology_map.Plo
mv -f src/utils/.deps/libmesh_opt_la-tree.Tpo src/utils/.deps/libmesh_opt_la-tree.Plo
mv -f src/utils/.deps/libmesh_opt_la-tree_node.Tpo src/utils/.deps/libmesh_opt_la-tree_node.Plo
mv -f src/utils/.deps/libmesh_opt_la-string_to_enum.Tpo src/utils/.deps/libmesh_opt_la-string_to_enum.Plo
mv -f src/systems/.deps/libmesh_opt_la-system_projection.Tpo src/systems/.deps/libmesh_opt_la-system_projection.Plo
make[1]: Leaving directory '/opt/civet0/build_0/libmesh/build'
make: *** [Makefile:35333: all-recursive] Error 1
[15:41:52] ERROR: Exiting with code 2

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions