diff --git a/rts/eventlog/EventLog.c b/rts/eventlog/EventLog.c index bbb0279f81cd0d24462ba6e5102d09014b41957b..6b622f8032564245880c4065a70711ea0976026b 100644 --- a/rts/eventlog/EventLog.c +++ b/rts/eventlog/EventLog.c @@ -1220,7 +1220,7 @@ void postHeapProfBegin(StgWord8 profile_id) 1+8+4 + modSelector_len + descrSelector_len + typeSelector_len + ccSelector_len + ccsSelector_len + retainerSelector_len + bioSelector_len + 7; - ensureRoomForVariableEvent(&eventBuf, len); + CHECK(!ensureRoomForVariableEvent(&eventBuf, len)); postEventHeader(&eventBuf, EVENT_HEAP_PROF_BEGIN); postPayloadSize(&eventBuf, len); postWord8(&eventBuf, profile_id); @@ -1272,7 +1272,7 @@ void postHeapProfSampleString(StgWord8 profile_id, ACQUIRE_LOCK(&eventBufMutex); StgWord label_len = strlen(label); StgWord len = 1+8+label_len+1; - ensureRoomForVariableEvent(&eventBuf, len); + CHECK(!ensureRoomForVariableEvent(&eventBuf, len)); postEventHeader(&eventBuf, EVENT_HEAP_PROF_SAMPLE_STRING); postPayloadSize(&eventBuf, len); postWord8(&eventBuf, profile_id); @@ -1293,7 +1293,7 @@ void postHeapProfCostCentre(StgWord32 ccID, StgWord module_len = strlen(module); StgWord srcloc_len = strlen(srcloc); StgWord len = 4+label_len+module_len+srcloc_len+3+1; - ensureRoomForVariableEvent(&eventBuf, len); + CHECK(!ensureRoomForVariableEvent(&eventBuf, len)); postEventHeader(&eventBuf, EVENT_HEAP_PROF_COST_CENTRE); postPayloadSize(&eventBuf, len); postWord32(&eventBuf, ccID); @@ -1316,7 +1316,7 @@ void postHeapProfSampleCostCentre(StgWord8 profile_id, if (depth > 0xff) depth = 0xff; StgWord len = 1+8+1+depth*4; - ensureRoomForVariableEvent(&eventBuf, len); + CHECK(!ensureRoomForVariableEvent(&eventBuf, len)); postEventHeader(&eventBuf, EVENT_HEAP_PROF_SAMPLE_COST_CENTRE); postPayloadSize(&eventBuf, len); postWord8(&eventBuf, profile_id); @@ -1342,7 +1342,7 @@ void postProfSampleCostCentre(Capability *cap, if (depth > 0xff) depth = 0xff; StgWord len = 4+8+1+depth*4; - ensureRoomForVariableEvent(&eventBuf, len); + CHECK(!ensureRoomForVariableEvent(&eventBuf, len)); postEventHeader(&eventBuf, EVENT_PROF_SAMPLE_COST_CENTRE); postPayloadSize(&eventBuf, len); postWord32(&eventBuf, cap->no); @@ -1372,7 +1372,7 @@ void postProfBegin(void) static void postTickyCounterDef(EventsBuf *eb, StgEntCounter *p) { StgWord len = 8 + 2 + strlen(p->arg_kinds)+1 + strlen(p->str)+1 + 8 + strlen(p->ticky_json)+1; - ensureRoomForVariableEvent(eb, len); + CHECK(!ensureRoomForVariableEvent(eb, len)); postEventHeader(eb, EVENT_TICKY_COUNTER_DEF); postPayloadSize(eb, len); @@ -1439,7 +1439,7 @@ void postIPE(const InfoProvEnt *ipe) // 1 null after each string // 1 colon between src_file and src_span StgWord len = 8+table_name_len+1+closure_desc_len+1+ty_desc_len+1+label_len+1+module_len+1+src_file_len+1+src_span_len+1; - ensureRoomForVariableEvent(&eventBuf, len); + CHECK(!ensureRoomForVariableEvent(&eventBuf, len)); postEventHeader(&eventBuf, EVENT_IPE); postPayloadSize(&eventBuf, len); postWord64(&eventBuf, (StgWord) INFO_PTR_TO_STRUCT(ipe->info)); @@ -1496,6 +1496,7 @@ void resetEventsBuf(EventsBuf* eb) eb->marker = NULL; } +STG_WARN_UNUSED_RESULT StgBool hasRoomForEvent(EventsBuf *eb, EventTypeNum eNum) { uint32_t size = sizeof(EventTypeNum) + sizeof(EventTimestamp) + eventTypes[eNum].size; @@ -1507,6 +1508,7 @@ StgBool hasRoomForEvent(EventsBuf *eb, EventTypeNum eNum) } } +STG_WARN_UNUSED_RESULT StgBool hasRoomForVariableEvent(EventsBuf *eb, uint32_t payload_bytes) { uint32_t size = sizeof(EventTypeNum) + sizeof(EventTimestamp) + @@ -1527,6 +1529,7 @@ void ensureRoomForEvent(EventsBuf *eb, EventTypeNum tag) } } +STG_WARN_UNUSED_RESULT int ensureRoomForVariableEvent(EventsBuf *eb, StgWord16 size) { if (!hasRoomForVariableEvent(eb, size)) { diff --git a/rts/include/Stg.h b/rts/include/Stg.h index f854e7c13c81ab7e2684656bf87649a903d782ca..81e7c354c9c8934b0fc3b9e676c521010f404681 100644 --- a/rts/include/Stg.h +++ b/rts/include/Stg.h @@ -200,6 +200,7 @@ #define STG_UNUSED GNUC3_ATTRIBUTE(__unused__) #define STG_USED GNUC3_ATTRIBUTE(__used__) +#define STG_WARN_UNUSED_RESULT GNUC3_ATTRIBUTE(warn_unused_result) /* Prevent functions from being optimized. See Note [Windows Stack allocations] */