4506f614cb6983a16d117cf77a968608e66d7a5c fixed parsing of textual IR to
reject ptr*, but broke the auto-conversion of i32** to ptr with
--force-opaque-pointers.
Get that working again by refactoring LLParser::parseType to only send
ptr-spelled pointers into the type suffix logic when it's the return
of a function type. This also rejects ptr addrspace(3) addrspace(2),
which 1e6303e60ca5af4fbe7ca728572fd65666a98271 invadvertently started
accepting. Just the default top-level error message for the
double-addrspace since I had trouble thinking of something nice; open to
ideas, but it's fine as is (it doesn't look valid the way that ptr*
does).
Actually, maybe this is all wrong. ptr addrspace(1) addrspace(2) isn't valid. This would have been rejected originally, but was loosened at the same time that ptr * slipped through.
I'll undo the addrspace logic shuffle, and update this patch to fix that bug too.