I've spent a lot of time trying to figure out the reasons why this is not working correctly, but I feel like I've covered every case I need. I can't seem to find the "control reaches end of non-void function" error. Here is my switch statement:
static unsigned int sizeIndex(size_t size) {
int determine_size = 0;
switch(determine_size) {
case 0:
if (size < 16) {
return 0;
}
case 1:
if ((size >= 16) && (size < 32)) {
return 1;
}
case 2:
if ((size >= 32) && (size < 64)) {
return 2;
}
case 3:
if ((size >= 64) && (size < 128) ) {
return 3;
}
case 4:
if ((size >= 128) && (size < 256)) {
return 4;
}
case 5:
if ((size >= 256) && (size < 512)) {
return 5;
}
case 6:
if ((size >= 512) && (size < 1024)) {
return 6;
}
case 7:
if ((size >= 1024) && (size < 2048)) {
return 7;
}
case 8:
if ((size >= 2048) && (size < 4096)) {
return 8;
}
case 9:
if ((size >= 4096) && (size < 8192)) {
return 9;
}
case 10:
if ((size >= 8192) && (size < 16384)) {
return 10;
}
case 11:
if ((size >= 16384) && (size < 32768)) {
return 11;
}
case 12:
if (size >= 32768) {
return 12;
}
}
}
Can anyone see a reason why this would throw a " control reaches end of non-void function [-Werror=return-type]" error?
Thanks!