This is an attempt to fix https://llvm.org/bugs/show_bug.cgi?id=23882
Sema doesn't diagnose that binding 'volatile W' to to reference of type 'const W&' will discard qualifier and we end up in an infinite loop later on (until we run out of stack).
InitSequence::Perform() -> ... -> GatherArgumentsForCall() -> InitSequence::Perform()
I'm not sure if the check is OK as is, or needs to be generalized and/or moved.
I'll add the testcase in the PR if this review is accepted.
Thanks,
Davide