path: root/src/bts.h
diff options
authorMax <msuraev@sysmocom.de>2017-03-08 12:06:42 +0100
committerMax <msuraev@sysmocom.de>2017-03-13 11:25:14 +0000
commit5dd8d1bbd89cfaa10d8194502778deb96fe82184 (patch)
tree38facc7819fbad6d4bf6f50460faffecf42654ea /src/bts.h
parent727295f20611bbc2d2bc5cd7341f73e0536ec46a (diff)
bts.cpp: Fix overloading ambiguity
Fix error introduced in 1275a3f91a744e011b0dba82b09124d249c7abb5 by using signed 32 bit integer which is enough for Frame Number in GSM. Also, mark parameter constraints more explicitly: - add assert for expected FN values - don't perform computation for non-relative FN The error was: bts.cpp: In member function ‘uint32_t BTS::rfn_to_fn(uint32_t)’: bts.cpp:554:25: error: call of overloaded ‘abs(uint32_t)’ is ambiguous if (abs(rfn - m_cur_rfn) > RFN_THRESHOLD) { ^ In file included from /usr/include/c++/6/cstdlib:75:0, from /usr/include/c++/6/stdlib.h:36, from /usr/include/osmocom/core/linuxrbtree.h:97, from /usr/include/osmocom/core/timer.h:35, from ./bts.h:29, from bts.cpp:21: /usr/include/stdlib.h:735:12: note: candidate: int abs(int) extern int abs (int __x) __THROW __attribute__ ((__const__)) __wur; ^~~ In file included from /usr/include/c++/6/stdlib.h:36:0, from /usr/include/osmocom/core/linuxrbtree.h:97, from /usr/include/osmocom/core/timer.h:35, from ./bts.h:29, from bts.cpp:21: /usr/include/c++/6/cstdlib:185:3: note: candidate: __int128 std::abs(__int128) abs(__GLIBCXX_TYPE_INT_N_0 __x) { return __x >= 0 ? __x : -__x; } ^~~ /usr/include/c++/6/cstdlib:180:3: note: candidate: long long int std::abs(long long int) abs(long long __x) { return __builtin_llabs (__x); } ^~~ /usr/include/c++/6/cstdlib:172:3: note: candidate: long int std::abs(long int) abs(long __i) { return __builtin_labs(__i); } Change-Id: Ib6d895a97aa35414f245ea4406c6e78f1b4fb5b8
Diffstat (limited to 'src/bts.h')
1 files changed, 1 insertions, 1 deletions
diff --git a/src/bts.h b/src/bts.h
index 5d8dc59..78ed002 100644
--- a/src/bts.h
+++ b/src/bts.h
@@ -350,7 +350,7 @@ public:
uint8_t is_single_block(uint16_t ra, enum ph_burst_type burst_type,
uint8_t is_11bit, uint16_t *ms_class, uint16_t *priority);
- uint32_t rfn_to_fn(uint32_t rfn);
+ uint32_t rfn_to_fn(int32_t rfn);
int rcv_rach(uint16_t ra, uint32_t Fn, int16_t qta, uint8_t is_11bit,
enum ph_burst_type burst_type);