Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@mshroyer
Created May 3, 2014 20:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mshroyer/318f6047ad167cf7cd15 to your computer and use it in GitHub Desktop.
Save mshroyer/318f6047ad167cf7cd15 to your computer and use it in GitHub Desktop.
Example of GCC's -Werror=switch
/*
* gcc -Werror=switch will produce an error for this
*/
#include <stdio.h>
enum language {
ENGLISH,
SPANISH,
GERMAN
};
const char *convert(int num, enum language lang)
{
const char *ret = "";
switch (lang) {
case ENGLISH:
switch (num) {
case 0: ret = "zero"; break;
case 1: ret = "one"; break;
default: ret = "..."; break;
}
break;
case SPANISH:
switch (num) {
case 0: ret = "zero"; break;
case 1: ret = "uno"; break;
default: ret = "..."; break;
}
break;
}
return ret;
}
int main(void)
{
printf("%s\n", convert(1, ENGLISH));
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment