On 11/10/2016 03:30 AM, Jan Kurik wrote:
= Proposed System Wide Change: Fedora 26 C/C++ Compilation Flags Updates = https://fedoraproject.org/wiki/Changes/Fedora26CFlags Change owner(s): * Florian Weimer <fweimer AT redhat DOT com> This change updates the default C/C++ compilation flags, as determined by the redhat-rpm-config package. == Detailed Description == This change covers the following modifications to the default C and C++ compiler flags in the redhat-rpm-config package.
snip
* Add -Werror=implicit-function-declaration: Implicit function declarations allows a programmer to call functions without declaring them (or including the relevant header files). The official C language specification has not supported implicit function declarations for almost two decades now. GCC still supports them as a GNU extension. Implicit function declarations introduce bugs because these functions use a different calling convention and have a fixed return type of int. Resulting issues are pointer truncation (on 64-bit architectures), exposure of padding bits (particular for bool-returning functions on x86_64), and unexpected lack of hardening. Implicit function declarations are not part of C++ (with or without GNU extensions), and adjusting C code accordingly simplifies reuse in C++ projects. * Add -Werror=implicit-int: Implicit ints were removed from the C programming language at the same time as implicit function definitions, and were also retained as a GNU extension. Implicit ints are usually source code bugs, and the presence of such code may interfere with future C language directions (for example, consider how C++ reused the auto keyword and an omitted type specifier). The main risk from these changes are incorrect autoconf feature checks, which often rely on technically invalid C fragments. However, a review of existing configure scripts did not find any places where they relied on these two problematic GNU extensions.
I've run into a reasonable number of failures of (custom) configure checks due to this. Mainly calling exit() without including stdlib.h. So keep alert everyone. Unfortunately this can lead to unpredictable and perhaps hard to detect changes.
-- Orion Poplawski Technical Manager 303-415-9701 x222 NWRA/CoRA Division FAX: 303-415-9702 3380 Mitchell Lane orion@xxxxxxxxxxxxx Boulder, CO 80301 http://www.cora.nwra.com _______________________________________________ devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx