Index: tools/gn/builder.cc |
diff --git a/tools/gn/builder.cc b/tools/gn/builder.cc |
index 0f54893268dc4356360b4158b96c3abeb80a53fd..a04d3ad9c141a57721070a6a1ad7b10565ee2f63 100644 |
--- a/tools/gn/builder.cc |
+++ b/tools/gn/builder.cc |
@@ -251,6 +251,7 @@ BuilderRecord* Builder::GetOrCreateRecordOfType(const Label& label, |
if (!record) { |
// Not seen this record yet, create a new one. |
record = new BuilderRecord(type, label); |
+ record->set_originally_referenced_from(request_from); |
records_[label] = record; |
return record; |
} |
@@ -259,12 +260,14 @@ BuilderRecord* Builder::GetOrCreateRecordOfType(const Label& label, |
if (record->type() != type) { |
*err = Err(request_from, "Item type does not match.", |
"The item \"" + label.GetUserVisibleName(false) + |
- "\" was expected\nto be a " + |
+ "\"\nwas expected to be a " + |
BuilderRecord::GetNameForType(type) + |
- " but was previously\n referenced as a " + |
+ " but was previously referenced as a " + |
BuilderRecord::GetNameForType(record->type())); |
- err->AppendSubErr(Err(record->originally_referenced_from(), |
- "The previous reference was here.")); |
+ if (record->originally_referenced_from()) { |
+ err->AppendSubErr(Err(record->originally_referenced_from(), |
+ "The previous reference was here.")); |
+ } |
return NULL; |
} |