gnucash unstable: Multiple changes pushed
John Ralls
jralls at ceridwen.us
Fri Dec 29 11:22:29 EST 2017
> On Dec 29, 2017, at 7:41 AM, Geert Janssens <geert.gnucash at kobaltwit.be> wrote:
>
> Op woensdag 27 december 2017 00:37:19 CET schreef John Ralls:
>> commit 91727525b9cd3c12f4fa25268131b0161c6fc79e
>> Author: John Ralls <jralls at ceridwen.us>
>> Date: Tue Dec 26 13:01:50 2017 -0800
>>
>> Enforce -Werror on C++ files and fix resulting errors.
>>
>
> <snip>
>
>> diff --git a/gnucash/import-export/csv-imp/assistant-csv-trans-import.cpp
>> b/gnucash/import-export/csv-imp/assistant-csv-trans-import.cpp index
>> 9402f38..1bfa08e 100644
>> --- a/gnucash/import-export/csv-imp/assistant-csv-trans-import.cpp
>> +++ b/gnucash/import-export/csv-imp/assistant-csv-trans-import.cpp
>> @@ -355,12 +355,12 @@ static void csv_tximp_preview_currency_fmt_sel_cb
>> (GtkComboBox* format_selector, info->preview_update_currency_format();
>> }
>>
>> -void csv_tximp_preview_col_type_changed_cb (GtkComboBox* cbox,
>> CsvImpTransAssist* info)
>> +static void csv_tximp_preview_col_type_changed_cb
>> (GtkComboBox* cbox, CsvImpTransAssist* info) {
>> info->preview_update_col_type (cbox);
>> }
>>
> Apparently your new compile options require function declarations or to
> declare local functions static. What was wrong with the previous behavior that
> you choose to enforce this ?
CMakeLists.txt didn’t set any warning or error flags on C++ files, not even -Werror, so I just copied over the C flags and then adjusted them to deal with g++ wanting -Wmissing-declarations instead of -Wmissing-prototypes.
I just now looked at configure.ac and the flags there are rather different, with neither missing-declarations nor missing-prototypes on either C or C++.
configure.ac:
AM_CFLAGS=-Wall -Werror -Wno-unused -Wno-deprecated-declarations -Wmissing-prototypes -Wmissing-prototypes -Werror-implicit-function-declaration
AM_CXXFLAGS=-Wall -Werror -Wno-unused
CMakeLists.txt:
CMAKE_C_FLAGS=-Werror -Wdeclaration-after-statement -Wno-pointer-sign -Wall -Wunused -Wmissing-prototypes -Wmissing-declarations -Wno-unused -Wno-deprecated-declarations -std=gnu11
CMAKE_CXX_FLAGS=-std=gnu++11 -Werror -Wall -Wmissing-declarations -Wno-unused
I think that we should remove -Wno-unused from CXXFLAGS in general and only use it where needed on external sources. GnuCash C++ code is all new and it should all compile clean. For that code the more warnings the better: It gets the compiler to help us write better code.
I’m in favor of having missing-prototypes/missing-declarations and declaring compilation-unit-local functions static to make their scope explicit.
Regards,
John Ralls
More information about the gnucash-devel
mailing list