summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAllen Winter <allen.winter@kdab.com>2022-10-03 15:52:50 -0400
committerAllen Winter <allen.winter@kdab.com>2022-10-03 15:54:16 -0400
commit226d38d398d656b85eba677f80fdb28e46262731 (patch)
treea02dd26d1666c80dd32ef281bd8ce22843c8e178
parent7bb49a1922fda5f641e535f0ef6c23b92cf70b47 (diff)
parent0fe0d9d4ef152243f47f9c8e17520d10a67ba2c6 (diff)
downloadlibical-git-226d38d398d656b85eba677f80fdb28e46262731.tar.gz
Merge branch '3.0'
-rw-r--r--CMakeLists.txt2
-rw-r--r--ReleaseNotes.txt1
-rw-r--r--src/libical/icalcomponent.c2
-rw-r--r--src/libical/icaltz-util.c2
-rw-r--r--src/libicalss/icalssyacc.c9
-rw-r--r--src/test/regression-component.c12
-rw-r--r--src/test/regression-storage.c3
-rw-r--r--src/test/stow.c4
8 files changed, 22 insertions, 13 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 183413f0..d698e3ff 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -572,6 +572,7 @@ if(CMAKE_C_COMPILER_IS_GCC OR CMAKE_C_COMPILER_IS_CLANG)
libical_add_cflag(-Wsizeof-pointer-memaccess POINTER_MEMACCESS)
libical_add_cflag(-Wformat-security FORMAT_SECURITY)
libical_add_cflag(-Wredundant-decls REDUNDANT_DECLS)
+ libical_add_cflag(-Wunreachable-code UNREACHABLE_CODE)
if(CMAKE_SYSTEM_NAME MATCHES Linux OR CMAKE_SYSTEM_NAME STREQUAL GNU)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_XOPEN_SOURCE=500 -D_DEFAULT_SOURCE -D_GNU_SOURCE")
endif()
@@ -601,6 +602,7 @@ if(CMAKE_CXX_COMPILER_IS_GCC OR CMAKE_CXX_COMPILER_IS_CLANG)
libical_add_cxxflag(-Wreorder REORDER)
libical_add_cxxflag(-Wformat-security FORMAT_SECURITY)
libical_add_cxxflag(-Wredundant-decls REDUNDANT_DECLS)
+ libical_add_cxxflag(-Wunreachable-code UNREACHABLE_CODE)
if(CMAKE_SYSTEM_NAME MATCHES Linux OR CMAKE_SYSTEM_NAME STREQUAL GNU)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_XOPEN_SOURCE=500 -D_DEFAULT_SOURCE -D_GNU_SOURCE")
endif()
diff --git a/ReleaseNotes.txt b/ReleaseNotes.txt
index d986dc2f..54c74b6e 100644
--- a/ReleaseNotes.txt
+++ b/ReleaseNotes.txt
@@ -63,6 +63,7 @@ Version 3.0.15 (UNRELEASED):
* Fix x-property comma handling and escaping
* Built-in timezones updated to tzdata2022d (now with a VTIMEZONE for each time zone alias)
* Fix fuzzer issues
+ * Handle unreachable-code compile warnings with clang
Version 3.0.14 (05 February 2022):
----------------------------------
diff --git a/src/libical/icalcomponent.c b/src/libical/icalcomponent.c
index 4f9fa79d..dffc9451 100644
--- a/src/libical/icalcomponent.c
+++ b/src/libical/icalcomponent.c
@@ -934,7 +934,7 @@ void icalcomponent_foreach_recurrence(icalcomponent *comp,
icaltimetype mystart = start;
/* make sure we include any recurrence that ends in timespan */
- icaltime_adjust(&mystart, 0, 0, 0, -(int)dtduration);
+ icaltime_adjust(&mystart, 0, 0, 0, -(int)(long)dtduration);
icalrecur_iterator_set_start(rrule_itr, mystart);
}
diff --git a/src/libical/icaltz-util.c b/src/libical/icaltz-util.c
index a4a4db05..2c469c18 100644
--- a/src/libical/icaltz-util.c
+++ b/src/libical/icaltz-util.c
@@ -649,7 +649,7 @@ icalcomponent *icaltzutil_fetch_timezone(const char *location)
/* Read the footer */
if (trans_size == 8 &&
(footer[0] = (char)fgetc(f)) == '\n' &&
- fgets(footer+1, (int) sizeof(footer)-1, f) &&
+ fgets(footer+1, (int)sizeof(footer)-1, f) &&
footer[strlen(footer)-1] == '\n') {
tzstr = footer+1;
}
diff --git a/src/libicalss/icalssyacc.c b/src/libicalss/icalssyacc.c
index fdbd7ce7..495ebba0 100644
--- a/src/libicalss/icalssyacc.c
+++ b/src/libicalss/icalssyacc.c
@@ -1311,6 +1311,7 @@ yyparse ()
YYDPRINTF ((stderr, "Stack size increased to %lu\n",
(unsigned long int) yystacksize));
+ /* coverity[OVERRUN] */
if (yyss + yystacksize - 1 <= yyssp)
YYABORT;
}
@@ -1412,9 +1413,9 @@ yyreduce:
users should not rely upon it. Assigning to YYVAL
unconditionally makes the parser a bit smaller, and it avoids a
GCC warning that YYVAL may be used uninitialized. */
+ /* coverity[uninit_use] */
yyval = yyvsp[1-yylen];
-
YY_REDUCE_PRINT (yyn);
switch (yyn)
{
@@ -1592,9 +1593,11 @@ yyerrorlab:
/* Pacify compilers like GCC when the user code never invokes
YYERROR and the label yyerrorlab therefore never appears in user
code. */
- if (/*CONSTCOND*/ 0)
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wunreachable-code"
+ if (/*CONSTCOND*/ 0)
goto yyerrorlab;
-
+#pragma clang diagnostic pop
/* Do not reclaim the symbols of the rule which action triggered
this YYERROR. */
YYPOPSTACK (yylen);
diff --git a/src/test/regression-component.c b/src/test/regression-component.c
index 388c53a4..e5ce534b 100644
--- a/src/test/regression-component.c
+++ b/src/test/regression-component.c
@@ -282,7 +282,7 @@ void create_new_component_with_va_args()
static void print_span(int c, struct icaltime_span span)
{
- printf("span-->%d, %d\n", (int)span.start, (int)span.end);
+ printf("span-->%ld, %ld\n", (long)span.start, (long)span.end);
if (span.start == 0) {
printf("#%02d start: (empty)\n", c);
} else {
@@ -355,7 +355,7 @@ void test_icalcomponent_get_span()
if (VERBOSE)
print_span(tnum++, span);
- int_is("floating time", (int)span.start, (int)tm1);
+ int_is("floating time", (int)(long)span.start, (int)(long)tm1);
icalcomponent_free(c);
@@ -439,7 +439,7 @@ void test_icalcomponent_get_span()
if (VERBOSE)
print_span(tnum++, span);
- int_is("start == end", (int)span.start, (int)span.end);
+ int_is("start == end", (int)(long)span.start, (int)(long)span.end);
icalcomponent_free(c);
/** test 7
@@ -455,7 +455,7 @@ void test_icalcomponent_get_span()
if (VERBOSE)
print_span(tnum++, span);
- int_is("UTC", (int)span.start, 973296000);
+ int_is("UTC", (int)(long)span.start, 973296000);
icalcomponent_free(c);
/** test 8
@@ -467,7 +467,7 @@ void test_icalcomponent_get_span()
(void *)0);
span = icalcomponent_get_span(c);
- int_is("UTC #2", (int)span.start, 973296000);
+ int_is("UTC #2", (int)(long)span.start, 973296000);
if (VERBOSE)
print_span(tnum++, span);
@@ -484,7 +484,7 @@ void test_icalcomponent_get_span()
if (VERBOSE)
print_span(tnum++, span);
- int_is("start date only", (int)span.end, 973382399);
+ int_is("start date only", (int)(long)span.end, 973382399);
icalcomponent_free(c);
diff --git a/src/test/regression-storage.c b/src/test/regression-storage.c
index b3c1f98d..ad63da0a 100644
--- a/src/test/regression-storage.c
+++ b/src/test/regression-storage.c
@@ -296,6 +296,8 @@ void test_bdbset()
return; // for now... TODO fix these broken tests..
+#pragma clang diagnostic push /* remove when/if we remove the proceeding return statement */
+#pragma clang diagnostic ignored "-Wunreachable-code"
start = icaltime_from_timet_with_zone(time(0), 0, NULL);
end = start;
end.hour++;
@@ -443,6 +445,7 @@ void test_bdbset()
}
icalset_free(cout);
}
+#pragma clang diagnostic pop
}
#endif
diff --git a/src/test/stow.c b/src/test/stow.c
index 00b07d11..dc3607a0 100644
--- a/src/test/stow.c
+++ b/src/test/stow.c
@@ -174,8 +174,8 @@ char *make_mime(const char *to, const char *from, const char *subject,
uname(&uts);
srand((unsigned int)(time(0) << getpid()));
- snprintf(content_id, TMPSIZE_SMALL, "%d-%d@%s", (int)time(0), rand(), uts.nodename);
- snprintf(boundary, TMPSIZE_SMALL, "%d-%d-%s", (int)time(0), rand(), uts.nodename);
+ snprintf(content_id, TMPSIZE_SMALL, "%ld-%d@%s", (long)time(0), rand(), uts.nodename);
+ snprintf(boundary, TMPSIZE_SMALL, "%ld-%d-%s", (long)time(0), rand(), uts.nodename);
//krazy:cond=style
snprintf(mime_part_1, TMPSIZE, "Content-ID: %s\n\
Content-type: text/plain\n\