mirror of
https://github.com/MidnightCommander/mc
synced 2025-03-04 07:01:30 +03:00

On systems where 'mode_t' is smaller than 'int', doing 'va_arg (ap, mode_t)' is wrong because of C's "default argument promotions". GCC 4 creates crashing code in this case. The "va_arg" page of Gnulib's manual describes the problem and a simple solution: https://www.gnu.org/software/gnulib/manual/html_node/va_005farg.html However, since that solution reportedly (see thread at next link) still causes GCC to print warnings (for no good reason; perhaps this was fixed in newer GCCs), we pick a solution that defines a PROMOTED_MODE_T at the configuration stage: https://lists.gnu.org/archive/html/bug-gnulib/2009-05/msg00231.html (We take our 'mode_t.m4' from the most recent Gnulib source.) (If any of the URLs above no longer works, simply search the web for the mentioned words.)