It happens e.g. in test/SemaTemplate/instantiate-default-assignment-operator.cpp. Not sure whether it is a bug or not. I think if the entire member is implicit, getLocation() delivers a somewhat reasonable location whereas getLocEnd() (or EndRangeLoc) is never set. http://reviews.llvm.org/D4175