C has had a catalog of undefined behavior since C99, Annex J. There's sample code demonstrating all cases too.
It's worth noting (as the report itself does) that these sorts of lists can only document explicitly undefined behavior, and not the much larger universe of implicitly undefined behavior. So they're not strictly all possible UB, just the most important cases.