- va_list args;
- va_start (args, oflag);
- if (sizeof (int) <= sizeof (mode_t))
- mode = va_arg (args, mode_t);
+ va_list ap;
+ va_start (ap, flags);
+
+ /* Assume mode_t promotes to int if and only if it is smaller.
+ This assumption isn't guaranteed by the C standard, but we
+ don't know of any real-world counterexamples. */
+ if (sizeof (mode_t) < sizeof (int))
+ mode = va_arg (ap, int);