FTBFS: error: non-void function '_edsf_persona_get_string_property' should return a value
With vala 0.52, glib 2.68.2 and clang 11 folks 0.15.2 fails to build for me:
cc -Ibackends/eds/lib/libfolks-eds.so.1.3.p -Ibackends/eds/lib -I../folks-0.15.2/backends/eds/lib -Ifolks -I../folks-0.15.2/folks -I. -
I../folks-0.15.2 -I/usr/local/include -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/usr/local/include/gee-0.8 -I/u
sr/local/include/evolution-data-server -I/usr/local/include/nss -I/usr/local/include/nspr -I/usr/local/include/libsecret-1 -I/usr/local
/include/gio-unix-2.0 -I/usr/local/include/libsoup-2.4 -I/usr/local/include/libxml2 -fcolor-diagnostics -D_FILE_OFFSET_BITS=64 -w -O2 -
pipe -g -fPIC -pthread -include config.h '-DBACKEND_NAME="eds"' '-DG_LOG_DOMAIN="eds"' -MD -MQ backends/eds/lib/libfolks-eds.so.1.3.p/m
eson-generated_edsf-persona.c.o -MF backends/eds/lib/libfolks-eds.so.1.3.p/meson-generated_edsf-persona.c.o.d -o backends/eds/lib/libfo
lks-eds.so.1.3.p/meson-generated_edsf-persona.c.o -c backends/eds/lib/libfolks-eds.so.1.3.p/edsf-persona.c
backends/eds/lib/libfolks-eds.so.1.3.p/edsf-persona.c:7054:2: error: non-void function '_edsf_persona_get_string_property' should retur
n a value [-Wreturn-type]
g_return_if_fail (e_contact_field_is_string (field));
^
/usr/local/include/glib-2.0/glib/gmessages.h:638:9: note: expanded from macro 'g_return_if_fail'
return; \
^
1 error generated.
A possible change to fix this would be:
Index: backends/eds/lib/edsf-persona.vala
--- backends/eds/lib/edsf-persona.vala.orig
+++ backends/eds/lib/edsf-persona.vala
@@ -2268,7 +2268,7 @@ public class Edsf.Persona : Folks.Persona,
private unowned string? _get_string_property (string prop_name)
{
var field = E.Contact.field_id (prop_name);
- return_if_fail (E.Contact.field_is_string (field));
+ return_val_if_fail (E.Contact.field_is_string (field), null);
return contact.get_const<string> (field);
}
Is this an acceptable change here?