inveigher

(noun)

noun

1. One who inveighs.