getting the core type of a complex qual type

Is there a known short way to get the core datatype of a complex qualtype?

typedef int i32;

func( const i32& ioData );

I have a parameter indicating ioData, and I can get the QualType from
that. I would like to strip the const, strip the reference, and
navigate down through any typedefs so I get back just int.

I think I can do this a very manual way but I was just wondering about
a quick and easy way.