with gcc-arm-none-eabi-7-2017-q4-major the default typedef of time_t is "long long int". older releases typedef time_t as "long int". mbed lib cannot handle this correctly This applies to exported projects as "GCC (ARM-Embedded)"

Dependencies:   mbed

Fork of USBSerial_HelloWorld by Samuel Mokrani

Committer:
bomilkar
Date:
Wed Feb 07 10:30:36 2018 +0000
Revision:
10:ee0528f8d38e
Parent:
9:d88699a0905a
This testcase demonstrates the incompatibility of time_t when using gcc-arm-none-eabi-7-2017-q4-major.; The symptom is apparent with "sizeof(time_t)"; The 2017-q4 release shows 8 "long long int"; Older releases show 4 "long int"

Who changed what in which revision?

UserRevisionLine numberNew contents of line
samux 7:5e693654d5b4 1 #include "mbed.h"
bomilkar 10:ee0528f8d38e 2
bomilkar 10:ee0528f8d38e 3 #define SERIAL_TX PA_9
bomilkar 10:ee0528f8d38e 4 #define SERIAL_RX PA_10
bomilkar 10:ee0528f8d38e 5 Serial pc(SERIAL_TX, SERIAL_RX, 115200);
bomilkar 10:ee0528f8d38e 6
bomilkar 10:ee0528f8d38e 7 int main(void)
bomilkar 10:ee0528f8d38e 8 {
bomilkar 10:ee0528f8d38e 9 time_t t;
bomilkar 10:ee0528f8d38e 10 struct tm *tx;
bomilkar 10:ee0528f8d38e 11
bomilkar 10:ee0528f8d38e 12 pc.printf("++++++++++++++++++++++\nsizeof(time_t) = %d\n++++++++++++++++++++++\n",sizeof(time_t));
bomilkar 10:ee0528f8d38e 13
bomilkar 10:ee0528f8d38e 14 time(&t);
bomilkar 10:ee0528f8d38e 15 pc.printf("read RTC: %u\n",(int)t);
bomilkar 10:ee0528f8d38e 16 tx = localtime(&t);
bomilkar 10:ee0528f8d38e 17 pc.printf("ctime: %s", ctime(&t));
bomilkar 10:ee0528f8d38e 18 pc.printf("T: %d:%d:%d D: %d.%d.%d X: %d\n",
bomilkar 10:ee0528f8d38e 19 tx->tm_hour,tx->tm_min,tx->tm_sec,
bomilkar 10:ee0528f8d38e 20 tx->tm_mday,tx->tm_mon+1,tx->tm_year+1900,
bomilkar 10:ee0528f8d38e 21 tx->tm_isdst);
bomilkar 10:ee0528f8d38e 22
bomilkar 10:ee0528f8d38e 23 pc.printf("t = 0\n");
bomilkar 10:ee0528f8d38e 24 t = 0;
bomilkar 10:ee0528f8d38e 25 tx = localtime(&t);
bomilkar 10:ee0528f8d38e 26 pc.printf("ctime: %s", ctime(&t));
bomilkar 10:ee0528f8d38e 27 pc.printf("T: %d:%d:%d D: %d.%d.%d X: %d\n",
bomilkar 10:ee0528f8d38e 28 tx->tm_hour,tx->tm_min,tx->tm_sec,
bomilkar 10:ee0528f8d38e 29 tx->tm_mday,tx->tm_mon+1,tx->tm_year+1900,
bomilkar 10:ee0528f8d38e 30 tx->tm_isdst);
bomilkar 10:ee0528f8d38e 31
bomilkar 10:ee0528f8d38e 32 pc.printf("loop start\n");
bomilkar 10:ee0528f8d38e 33 while (1) {
bomilkar 10:ee0528f8d38e 34 tx = localtime(&t);
bomilkar 10:ee0528f8d38e 35 pc.printf("ctime: %s", ctime(&t));
bomilkar 10:ee0528f8d38e 36 pc.printf("T: %d:%d:%d D: %d.%d.%d X: %d\n",
bomilkar 10:ee0528f8d38e 37 tx->tm_hour,tx->tm_min,tx->tm_sec,
bomilkar 10:ee0528f8d38e 38 tx->tm_mday,tx->tm_mon+1,tx->tm_year+1900,
bomilkar 10:ee0528f8d38e 39 tx->tm_isdst);
samux 9:d88699a0905a 40 wait(1);
bomilkar 10:ee0528f8d38e 41 t += 1;
samux 7:5e693654d5b4 42 }
bomilkar 10:ee0528f8d38e 43 }