I've tried with either clang 7 and 9, both fail.
clang -c -ggdb3 -march=native -Wall -Wno-unused -O3 -D_GNU_SOURCE worker-web.c -o worker-web.o
In file included from worker-web.c:12:
In file included from ./tdata.h:10:
./gtfs-realtime.pb-c.h:10:1: error: unknown type name 'PROTOBUF_C_BEGIN_DECLS'
PROTOBUF_C_BEGIN_DECLS
^
./gtfs-realtime.pb-c.h:13:1: error: expected identifier or '('
typedef struct _TransitRealtime__FeedMessage TransitRealtime__FeedMessage;
^
./gtfs-realtime.pb-c.h:325:23: error: unknown type name 'TransitRealtime__FeedMessage'; did you mean 'TransitRealtime__FeedHeader'?
(TransitRealtime__FeedMessage *message);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
TransitRealtime__FeedHeader
./gtfs-realtime.pb-c.h:14:45: note: 'TransitRealtime__FeedHeader' declared here
typedef struct _TransitRealtime__FeedHeader TransitRealtime__FeedHeader;
^
./gtfs-realtime.pb-c.h:327:29: error: unknown type name 'TransitRealtime__FeedMessage'; did you mean 'TransitRealtime__FeedHeader'?
(const TransitRealtime__FeedMessage *message);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
TransitRealtime__FeedHeader
./gtfs-realtime.pb-c.h:14:45: note: 'TransitRealtime__FeedHeader' declared here
typedef struct _TransitRealtime__FeedHeader TransitRealtime__FeedHeader;
^
./gtfs-realtime.pb-c.h:329:29: error: unknown type name 'TransitRealtime__FeedMessage'; did you mean 'TransitRealtime__FeedHeader'?
(const TransitRealtime__FeedMessage *message,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
TransitRealtime__FeedHeader
./gtfs-realtime.pb-c.h:14:45: note: 'TransitRealtime__FeedHeader' declared here
typedef struct _TransitRealtime__FeedHeader TransitRealtime__FeedHeader;
^
./gtfs-realtime.pb-c.h:332:29: error: unknown type name 'TransitRealtime__FeedMessage'; did you mean 'TransitRealtime__FeedHeader'?
(const TransitRealtime__FeedMessage *message,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
TransitRealtime__FeedHeader
./gtfs-realtime.pb-c.h:14:45: note: 'TransitRealtime__FeedHeader' declared here
typedef struct _TransitRealtime__FeedHeader TransitRealtime__FeedHeader;
^
./gtfs-realtime.pb-c.h:334:1: error: unknown type name 'TransitRealtime__FeedMessage'; did you mean 'TransitRealtime__FeedHeader'?
TransitRealtime__FeedMessage *
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
TransitRealtime__FeedHeader
./gtfs-realtime.pb-c.h:14:45: note: 'TransitRealtime__FeedHeader' declared here
typedef struct _TransitRealtime__FeedHeader TransitRealtime__FeedHeader;
^
./gtfs-realtime.pb-c.h:340:23: error: unknown type name 'TransitRealtime__FeedMessage'; did you mean 'TransitRealtime__FeedHeader'?
(TransitRealtime__FeedMessage *message,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
TransitRealtime__FeedHeader
./gtfs-realtime.pb-c.h:14:45: note: 'TransitRealtime__FeedHeader' declared here
typedef struct _TransitRealtime__FeedHeader TransitRealtime__FeedHeader;
^
./gtfs-realtime.pb-c.h:582:25: error: unknown type name 'TransitRealtime__FeedMessage'; did you mean 'TransitRealtime__FeedHeader'?
(const TransitRealtime__FeedMessage *message,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
TransitRealtime__FeedHeader
./gtfs-realtime.pb-c.h:14:45: note: 'TransitRealtime__FeedHeader' declared here
typedef struct _TransitRealtime__FeedHeader TransitRealtime__FeedHeader;
^
./gtfs-realtime.pb-c.h:659:1: error: unknown type name 'PROTOBUF_C_END_DECLS'
PROTOBUF_C_END_DECLS
^
In file included from worker-web.c:12:
./tdata.h:14:1: error: expected identifier or '('
typedef uint32_t calendar_t;
^
./tdata.h:74:5: error: unknown type name 'calendar_t'
calendar_t dst_active;
^
./tdata.h:106:5: error: unknown type name 'calendar_t'
calendar_t *trip_active;
^
./tdata.h:107:5: error: unknown type name 'calendar_t'
calendar_t *route_active;
^
./tdata.h:115:5: error: unknown type name 'TransitRealtime__FeedMessage'; did you mean 'TransitRealtime__FeedHeader'?
TransitRealtime__FeedMessage *alerts;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
TransitRealtime__FeedHeader
./gtfs-realtime.pb-c.h:14:45: note: 'TransitRealtime__FeedHeader' declared here
typedef struct _TransitRealtime__FeedHeader TransitRealtime__FeedHeader;
^
In file included from worker-web.c:12:
./tdata.h:173:1: error: unknown type name 'calendar_t'
calendar_t *tdata_trip_masks_for_route(tdata_t*, uint32_t route_index);
^
In file included from worker-web.c:14:
./router.h:36:5: error: unknown type name 'calendar_t'
calendar_t mask;
^
./router.h:52:5: error: unknown type name 'calendar_t'
calendar_t day_mask;
^
./router.h:100:5: error: unknown type name 'calendar_t'
calendar_t day_mask; // bit for the day on which we are searching, relative to the timetable calendar
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
I've tried with either clang 7 and 9, both fail.