diff --git a/include/osmocom/gsm/gsm0502.h b/include/osmocom/gsm/gsm0502.h
index 6624e70..0ac1387 100644
--- a/include/osmocom/gsm/gsm0502.h
+++ b/include/osmocom/gsm/gsm0502.h
@@ -70,7 +70,7 @@
  * \returns similarly to memcmp(), -1 if fn1 goes before fn2;
  *                                  0 if fn1 equals fn2;
  *                                  1 if fn1 goes after fn2. */
-static inline int gsm0502_fn_compare(uint32_t fn1, uint32_t fn2)
+static inline int gsm0502_fncmp(uint32_t fn1, uint32_t fn2)
 {
 	const uint32_t thresh = GSM_TDMA_HYPERFRAME / 2;
 
diff --git a/tests/gsm0502/gsm0502_test.c b/tests/gsm0502/gsm0502_test.c
index d78a94d..7768abb 100644
--- a/tests/gsm0502/gsm0502_test.c
+++ b/tests/gsm0502/gsm0502_test.c
@@ -148,28 +148,28 @@
 	printf("\n");
 }
 
-static void test_gsm0502_fn_compare(void)
+static void test_gsm0502_fncmp(void)
 {
-	OSMO_ASSERT(gsm0502_fn_compare(1337, 1337)		==  0);
-	OSMO_ASSERT(gsm0502_fn_compare(42, 1337)		== -1);
-	OSMO_ASSERT(gsm0502_fn_compare(1337, 42)		==  1);
-	OSMO_ASSERT(gsm0502_fn_compare(42, 0)			==  1);
+	OSMO_ASSERT(gsm0502_fncmp(1337, 1337)		==  0);
+	OSMO_ASSERT(gsm0502_fncmp(42, 1337)		== -1);
+	OSMO_ASSERT(gsm0502_fncmp(1337, 42)		==  1);
+	OSMO_ASSERT(gsm0502_fncmp(42, 0)		==  1);
 
 	/* 2715642 is very close to the Fn period (GSM_TDMA_HYPERFRAME) */
-	OSMO_ASSERT(gsm0502_fn_compare(2715642, 42)		== -1);
-	OSMO_ASSERT(gsm0502_fn_compare(42, 2715642)		==  1);
-	OSMO_ASSERT(gsm0502_fn_compare(0, 2715642)		==  1);
+	OSMO_ASSERT(gsm0502_fncmp(2715642, 42)		== -1);
+	OSMO_ASSERT(gsm0502_fncmp(42, 2715642)		==  1);
+	OSMO_ASSERT(gsm0502_fncmp(0, 2715642)		==  1);
 
 	/* 1357824 is half of the Fn period (GSM_TDMA_HYPERFRAME) */
-	OSMO_ASSERT(gsm0502_fn_compare(1357820, 1357824)	== -1);
-	OSMO_ASSERT(gsm0502_fn_compare(1357820, 1357825)	== -1);
-	OSMO_ASSERT(gsm0502_fn_compare(1357824, 1357820)	==  1);
-	OSMO_ASSERT(gsm0502_fn_compare(1357825, 1357820)	==  1);
+	OSMO_ASSERT(gsm0502_fncmp(1357820, 1357824)	== -1);
+	OSMO_ASSERT(gsm0502_fncmp(1357820, 1357825)	== -1);
+	OSMO_ASSERT(gsm0502_fncmp(1357824, 1357820)	==  1);
+	OSMO_ASSERT(gsm0502_fncmp(1357825, 1357820)	==  1);
 }
 
 int main(int argc, char **argv)
 {
 	test_gsm0502_fn_remap();
-	test_gsm0502_fn_compare();
+	test_gsm0502_fncmp();
 	return EXIT_SUCCESS;
 }
