re PR c++/45984 (ICE: canonical types differ for identical types)