Maybe tweak the diagnostic (for both this case and the normal self-assignment case) to: explicitly assigning value of variable of type %0 to itself (Adding the 'value of' makes this message work better for the compound-assignment case.) Other than that, LGTM http://reviews.llvm.org/D3753