4 ms·
I don't know OCaml or Haskell, but I think you're mistaken about C. Given the following C code: char *foo(char *bar) { return bar; } int main(int
by xenophonf 12y ago
I don't know OCaml or Haskell, but I think you're mistaken about C. Given the following C code:
char *foo(char *bar) {
return bar;
}
int main(int argc, char *argv[]) {
foo(1);
return 0;
}
I get compile-time warnings from clang substantially similar to what SBCL emits:
$ cc test.c
test.c:6:7: warning: incompatible integer to pointer conversion passing 'int' to parameter of type 'char *' [-Wint-conversion]
foo(1);
^
test.c:1:17: note: passing argument to parameter 'bar' here
char *foo(char *bar) {
^
1 warning generated.
I'm sure that with suitable flags set, both compilers would throw type errors at compile-time instead of warnings.