add -Wundef, fix uncovered bugs
19 files changed