diff --git a/mlir/lib/CAPI/IR/IR.cpp b/mlir/lib/CAPI/IR/IR.cpp --- a/mlir/lib/CAPI/IR/IR.cpp +++ b/mlir/lib/CAPI/IR/IR.cpp @@ -183,10 +183,12 @@ } #define APPEND_ELEMS(type, sizeName, elemName) \ - state->elemName = \ - (type *)realloc(state->elemName, (state->sizeName + n) * sizeof(type)); \ - memcpy(state->elemName + state->sizeName, elemName, n * sizeof(type)); \ - state->sizeName += n; + if (n > 0) { \ + state->elemName = (type *)realloc(state->elemName, \ + (state->sizeName + n) * sizeof(type)); \ + memcpy(state->elemName + state->sizeName, elemName, n * sizeof(type)); \ + state->sizeName += n; \ + } void mlirOperationStateAddResults(MlirOperationState *state, intptr_t n, MlirType const *results) {