Skip to content

Commit 34db327

Browse files
committed
Add more warning flags to gcc/clang builds
1 parent 245706c commit 34db327

File tree

2 files changed

+33
-10
lines changed

2 files changed

+33
-10
lines changed

drivers/lang/c/src/gcc/driver.c

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,8 @@ void add_std(
215215
bake_project *project,
216216
bake_src_lang lang,
217217
ut_strbuf *cmd,
218-
bool own_src)
218+
bool own_src,
219+
bool is_pch)
219220
{
220221
/* Set standard for C or C++ */
221222
if (lang == BAKE_SRC_LANG_CPP) {
@@ -244,20 +245,42 @@ void add_std(
244245
ut_strbuf_appendstr(cmd, " -Wundef");
245246

246247
if (is_clang(lang)) {
248+
ut_strbuf_appendstr(cmd, " -Wno-unknown-warning-option");
247249
ut_strbuf_appendstr(cmd, " -Wdocumentation");
248250
ut_strbuf_appendstr(cmd, " -Wconditional-uninitialized");
249251
ut_strbuf_appendstr(cmd, " -Wunreachable-code");
250252
ut_strbuf_appendstr(cmd, " -Wfour-char-constants");
251253
ut_strbuf_appendstr(cmd, " -Wenum-conversion");
252254
ut_strbuf_appendstr(cmd, " -Wshorten-64-to-32");
255+
ut_strbuf_appendstr(cmd, " -Wnonportable-system-include-path");
256+
ut_strbuf_appendstr(cmd, " -Wreserved-identifier");
257+
ut_strbuf_appendstr(cmd, " -Wextra-semi-stmt");
258+
ut_strbuf_appendstr(cmd, " -Wunreachable-code-return");
259+
ut_strbuf_appendstr(cmd, " -Wunreachable-code-break");
260+
ut_strbuf_appendstr(cmd, " -Wcomma");
261+
if (project->type == BAKE_PACKAGE) {
262+
ut_strbuf_appendstr(cmd, " -Wmissing-variable-declarations");
263+
}
253264
}
254265

255266
ut_strbuf_appendstr(cmd, " -Wredundant-decls -Wdouble-promotion");
256267
ut_strbuf_appendstr(cmd, " -Wcast-align");
268+
ut_strbuf_appendstr(cmd, " -Wcast-qual");
269+
ut_strbuf_appendstr(cmd, " -Wfloat-equal");
270+
ut_strbuf_appendstr(cmd, " -Wswitch-enum");
271+
ut_strbuf_appendstr(cmd, " -Wimplicit-fallthrough");
272+
// ut_strbuf_appendstr(cmd, " -Wcast-function-type"); gcc7 doesn't know it
273+
ut_strbuf_appendstr(cmd, " -Wformat-nonliteral");
274+
275+
if (!is_pch) {
276+
ut_strbuf_appendstr(cmd, " -Wunused-macros");
277+
}
257278

258279
/* These warnings are not valid for C++ */
259280
if (lang != BAKE_SRC_LANG_CPP) {
260281
ut_strbuf_appendstr(cmd, " -Wstrict-prototypes");
282+
ut_strbuf_appendstr(cmd, " -Wdeclaration-after-statement");
283+
ut_strbuf_appendstr(cmd, " -Wbad-function-cast");
261284

262285
/* These warnings are only valid for C++ */
263286
} else {
@@ -452,7 +475,7 @@ void compile_src(
452475
add_optimization(driver, config, project, lang, &cmd, false);
453476

454477
/* Add c/c++ standard arguments */
455-
add_std(driver, config, project, lang, &cmd, own_source);
478+
add_std(driver, config, project, lang, &cmd, own_source, false);
456479

457480
/* Add CFLAGS */
458481
add_flags(driver, config, project, lang, &cmd);
@@ -537,7 +560,7 @@ void generate_precompiled_header(
537560
add_optimization(driver, config, project, lang, &cmd, true);
538561

539562
/* Add -std option */
540-
add_std(driver, config, project, lang, &cmd, true);
563+
add_std(driver, config, project, lang, &cmd, true, true);
541564

542565
/* Add CFLAGS */
543566
add_flags(driver, config, project, lang, &cmd);

src/project.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1446,13 +1446,6 @@ int16_t bake_check_dependency(
14461446
goto error;
14471447
}
14481448

1449-
/* If standalone, copy source of dependencies to project */
1450-
if (p->standalone) {
1451-
ut_try(copy_amalgamated_from_dep(
1452-
config, p, amalg_driver, dependency, amalg_copied), NULL);
1453-
goto proceed;
1454-
}
1455-
14561449
/* Copy files from etc folder of dependency */
14571450
const char *src_path = ut_locate(dependency, NULL, UT_LOCATE_DEVSRC);
14581451
if (src_path) {
@@ -1464,6 +1457,13 @@ int16_t bake_check_dependency(
14641457
}
14651458
}
14661459

1460+
/* If standalone, copy source of dependencies to project */
1461+
if (p->standalone) {
1462+
ut_try(copy_amalgamated_from_dep(
1463+
config, p, amalg_driver, dependency, amalg_copied), NULL);
1464+
goto proceed;
1465+
}
1466+
14671467
/* If project doesn't have a language, there's nothing to link with */
14681468
if (!dep->language) {
14691469
goto proceed;

0 commit comments

Comments
 (0)