Change get_timestamp() return type to int64_t to support ARMCC #12
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
time_t NTPClient::get_timestamp()
returns negative values on errors, which is fine with GCC_ARM whosetime_t
is 64-bit integer. But the Arm Compiler'stime_t
is 32-bit unsigned integer, inac6/include/time.h
:When an error is reported, the value that gets returned with ARMCC is something like year 2100 and the caller cannot catch it.
To resolve this, change the return type of
NTPClient::get_timestamp()
toint64_t
.Note: This is a breaking change for applications compiled with the Arm Compiler. Callers should store the return value to a 64-bit integer, check the value, then cast it to
time_t
.