>C has a very weak type system and very weak runtime guarantees, making it much easier to introduce problems with no indication that something's up.
Here's an interesting example I've stumbled upon a few weeks ago:
https://stackoverflow.com/questions/31037149/type-safety-for...
float _Complex -> float doesn't require any diagnostic even though the imaginary component is (silently) discarded. Clang has one (not enabled by default or -Wall/-Wextra) however current GCC versions haven't.