diff --git a/src/core/compression/algorithm.c b/src/core/compression/algorithm.c
index d55e499f5eac8a07046444763a1515e61b0e8583..fd95a3c8912c354e86c19863e35d96b4447ca0f4 100644
--- a/src/core/compression/algorithm.c
+++ b/src/core/compression/algorithm.c
@@ -101,6 +101,7 @@ grpc_compression_algorithm grpc_compression_algorithm_for_level(
     default:
       /* we shouldn't be making it here */
       abort();
+      return GRPC_COMPRESS_NONE;
   }
 }
 
@@ -116,6 +117,7 @@ grpc_compression_level grpc_compression_level_for_algorithm(
     }
   }
   abort();
+  return GRPC_COMPRESS_LEVEL_NONE;
 }
 
 void grpc_compression_options_init(grpc_compression_options *opts) {
diff --git a/src/core/surface/byte_buffer.c b/src/core/surface/byte_buffer.c
index a930949f2d4690fea58ee987205659cc66c7e1f7..295ef5ab0ee4faa3bcab596f31ad845234f0453e 100644
--- a/src/core/surface/byte_buffer.c
+++ b/src/core/surface/byte_buffer.c
@@ -97,4 +97,5 @@ size_t grpc_byte_buffer_length(grpc_byte_buffer *bb) {
   }
   gpr_log(GPR_ERROR, "should never reach here");
   abort();
+  return 0;
 }
diff --git a/src/core/surface/call.c b/src/core/surface/call.c
index 07c3ff6ae4ec7871e028a0105e35465c01e24a3c..8a7a772821ea314efee099d77c89fa5b21f9a8fb 100644
--- a/src/core/surface/call.c
+++ b/src/core/surface/call.c
@@ -436,6 +436,7 @@ static grpc_cq_completion *allocate_completion(grpc_call *call) {
   }
   gpr_log(GPR_ERROR, "should never reach here");
   abort();
+  return NULL;
 }
 
 static void done_completion(grpc_exec_ctx *exec_ctx, void *call,