On 2 September 2016 at 03:51, Guy Harris <[email protected]> wrote: > On Sep 1, 2016, at 1:14 PM, Peter Wu <[email protected]> wrote: > > > Patch https://code.wireshark.org/review/17421 will allow use of some C99 > > features in master (future 2.4): > > For UN*X, with autotools: > > The AC_PROG_CC_C99 macro is used, and, if it fails to enable what > it considers "C99 mode" for the compiler, the configure script will fail. > This means some older compilers may not be supported; it's probably time to > drop those compilers. The macro appears to try to enable it for: > > GCC (and Clang), using -std=gnu99 > IBM XL C, using -qlanglvl=extc99 > HP cc, using -AC99 > Intel ICC, using -std=c99 > SGI's C compiler for IRIX, using -c99 > Sun/Oracle's C compiler, using -xc99=all > DEC/Compaq/HP's C compiler for Alpha on Tru64, using -c99 > > so you're out of luck if you have a version of those compilers > that doesn't support those flags and doesn't support all of: > > _Bool, // comments, flexible array members, inline, signed > and unsigned long long int, mixed code and declarations, named > initialization of structs, restrict, va_copy, varargs macros, variable > declarations in for loops, and variable length arrays > > For UN*X, with CMake: > > I'm not sure whether it'll properly enable C99 support for all of > the compilers in question. > > For Windows (CMake assumed), MSVC 2013 supports: > > // comments as long as you don't compile with /Za, but there might > be a warning to suppress; > > flexible arrays, but there's a warning to suppress, which this > change suppresses; > > inline functions - it might require __inline rather than inline, > but GLib is #defining inline to be __inline with MSVC, so we can just use > "inline"; > > mixed code and declarations, but there's a bug that might or might > not hit us: > > https://connect.microsoft.com/ > VisualStudio/feedback/details/808650/visual-studio-2013-c99-compiler-bug > > That particular example seems to have been fixed, at least for me with VS2013 Update 5.
> named initialization of structs, but there's a bug that might or > might not hit us: > > https://connect.microsoft.com/ > VisualStudio/feedback/details/805981 That particular example seems to have been fixed, at least for me with VS2013 Update 5. > > varargs macros, which we're already using; > > variable declarations in for loops, apparently: > > http://stackoverflow.com/questions/21696983/error-on- > declaring-variable-in-for-statement > > so, in addition to > > > - flexible array members > > - trailing comma in enum declarations > > - inline function keyword > > we also can use // comments and, apparently, variable declarations in for > loops, assuming there's no bug that gets in the way. *If* we avoid the > bugs, we can also use mixed code and declarations and named initialization > of structs. > > -- Graham Bloice
___________________________________________________________________________ Sent via: Wireshark-dev mailing list <[email protected]> Archives: https://www.wireshark.org/lists/wireshark-dev Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev mailto:[email protected]?subject=unsubscribe
