summaryrefslogtreecommitdiffstats
path: root/clang/utils
diff options
context:
space:
mode:
authorRichard Smith <richard-llvm@metafoo.co.uk>2016-09-14 01:51:10 +0000
committerRichard Smith <richard-llvm@metafoo.co.uk>2016-09-14 01:51:10 +0000
commitce9d586fdbb1eb3d20888f5bbc831718423c3ec9 (patch)
tree00db35a8b1a3390a318303a434b5e57b11329c1e /clang/utils
parent60cdd6113f5c94f2cf076008ff46e024b35da300 (diff)
downloadbcm5719-llvm-ce9d586fdbb1eb3d20888f5bbc831718423c3ec9.tar.gz
bcm5719-llvm-ce9d586fdbb1eb3d20888f5bbc831718423c3ec9.zip
Update DiagnosticsReference and fix emitter to emit -Wpedantic diagnostics and groups in a deterministic order.
llvm-svn: 281433
Diffstat (limited to 'clang/utils')
-rw-r--r--clang/utils/TableGen/ClangDiagnosticsEmitter.cpp15
1 files changed, 12 insertions, 3 deletions
diff --git a/clang/utils/TableGen/ClangDiagnosticsEmitter.cpp b/clang/utils/TableGen/ClangDiagnosticsEmitter.cpp
index 036e7423111..58a53b64702 100644
--- a/clang/utils/TableGen/ClangDiagnosticsEmitter.cpp
+++ b/clang/utils/TableGen/ClangDiagnosticsEmitter.cpp
@@ -1248,11 +1248,20 @@ void EmitClangDiagDocs(RecordKeeper &Records, raw_ostream &OS) {
// Compute the set of diagnostics that are in -Wpedantic.
{
- RecordSet DiagsInPedantic;
- RecordSet GroupsInPedantic;
+ RecordSet DiagsInPedanticSet;
+ RecordSet GroupsInPedanticSet;
InferPedantic inferPedantic(DGParentMap, Diags, DiagGroups, DiagsInGroup);
- inferPedantic.compute(&DiagsInPedantic, &GroupsInPedantic);
+ inferPedantic.compute(&DiagsInPedanticSet, &GroupsInPedanticSet);
auto &PedDiags = DiagsInGroup["pedantic"];
+ // Put the diagnostics into a deterministic order.
+ RecordVec DiagsInPedantic(DiagsInPedanticSet.begin(),
+ DiagsInPedanticSet.end());
+ RecordVec GroupsInPedantic(GroupsInPedanticSet.begin(),
+ GroupsInPedanticSet.end());
+ std::sort(DiagsInPedantic.begin(), DiagsInPedantic.end(),
+ beforeThanCompare);
+ std::sort(GroupsInPedantic.begin(), GroupsInPedantic.end(),
+ beforeThanCompare);
PedDiags.DiagsInGroup.insert(PedDiags.DiagsInGroup.end(),
DiagsInPedantic.begin(),
DiagsInPedantic.end());
OpenPOWER on IntegriCloud