This is intended as a clean up after the big clang-format commit
(r280751), which unfortunately resulted in many of the comment
paragraphs in LLDB being very hard to read.
FYI, the script I used was:
import textwrap
import commands
import os
import sys
import re
tmp = "%s.tmp"%sys.argv[1]
out = open(tmp, "w+")
with open(sys.argv[1], "r") as f:
header = ""
text = ""
comment = re.compile(r'^( *//) ([^ ].*)$')
special = re.compile(r'^((([A-Z]+[: ])|([0-9]+ )).*)|(.*;)$')
for line in f:
match = comment.match(line)
if match and not special.match(match.group(2)):
# skip intentionally short comments.
if not text and len(match.group(2)) < 40:
out.write(line)
continue
if text:
text += " " + match.group(2)
else:
header = match.group(1)
text = match.group(2)
continue
if text:
filled = textwrap.wrap(text, width=(78-len(header)),
break_long_words=False)
for l in filled:
out.write(header+" "+l+'\n')
text = ""
out.write(line)
os.rename(tmp, sys.argv[1])
Differential Revision: https://reviews.llvm.org/D46144
llvm-svn: 331197
89 lines
3.1 KiB
C++
89 lines
3.1 KiB
C++
//===-- DWARFDeclContext.cpp ------------------------------------*- C++ -*-===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#include "DWARFDeclContext.h"
|
|
|
|
const char *DWARFDeclContext::GetQualifiedName() const {
|
|
if (m_qualified_name.empty()) {
|
|
// The declaration context array for a class named "foo" in namespace
|
|
// "a::b::c" will be something like:
|
|
// [0] DW_TAG_class_type "foo"
|
|
// [1] DW_TAG_namespace "c"
|
|
// [2] DW_TAG_namespace "b"
|
|
// [3] DW_TAG_namespace "a"
|
|
if (!m_entries.empty()) {
|
|
if (m_entries.size() == 1) {
|
|
if (m_entries[0].name) {
|
|
m_qualified_name.append("::");
|
|
m_qualified_name.append(m_entries[0].name);
|
|
}
|
|
} else {
|
|
collection::const_reverse_iterator pos;
|
|
collection::const_reverse_iterator begin = m_entries.rbegin();
|
|
collection::const_reverse_iterator end = m_entries.rend();
|
|
for (pos = begin; pos != end; ++pos) {
|
|
if (pos != begin)
|
|
m_qualified_name.append("::");
|
|
if (pos->name == NULL) {
|
|
if (pos->tag == DW_TAG_namespace)
|
|
m_qualified_name.append("(anonymous namespace)");
|
|
else if (pos->tag == DW_TAG_class_type)
|
|
m_qualified_name.append("(anonymous class)");
|
|
else if (pos->tag == DW_TAG_structure_type)
|
|
m_qualified_name.append("(anonymous struct)");
|
|
else if (pos->tag == DW_TAG_union_type)
|
|
m_qualified_name.append("(anonymous union)");
|
|
else
|
|
m_qualified_name.append("(anonymous)");
|
|
} else
|
|
m_qualified_name.append(pos->name);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (m_qualified_name.empty())
|
|
return NULL;
|
|
return m_qualified_name.c_str();
|
|
}
|
|
|
|
bool DWARFDeclContext::operator==(const DWARFDeclContext &rhs) const {
|
|
if (m_entries.size() != rhs.m_entries.size())
|
|
return false;
|
|
|
|
collection::const_iterator pos;
|
|
collection::const_iterator begin = m_entries.begin();
|
|
collection::const_iterator end = m_entries.end();
|
|
|
|
collection::const_iterator rhs_pos;
|
|
collection::const_iterator rhs_begin = rhs.m_entries.begin();
|
|
// The two entry arrays have the same size
|
|
|
|
// First compare the tags before we do expensive name compares
|
|
for (pos = begin, rhs_pos = rhs_begin; pos != end; ++pos, ++rhs_pos) {
|
|
if (pos->tag != rhs_pos->tag) {
|
|
// Check for DW_TAG_structure_type and DW_TAG_class_type as they are
|
|
// often used interchangeably in GCC
|
|
if (pos->tag == DW_TAG_structure_type &&
|
|
rhs_pos->tag == DW_TAG_class_type)
|
|
continue;
|
|
if (pos->tag == DW_TAG_class_type &&
|
|
rhs_pos->tag == DW_TAG_structure_type)
|
|
continue;
|
|
return false;
|
|
}
|
|
}
|
|
// The tags all match, now compare the names
|
|
for (pos = begin, rhs_pos = rhs_begin; pos != end; ++pos, ++rhs_pos) {
|
|
if (!pos->NameMatches(*rhs_pos))
|
|
return false;
|
|
}
|
|
// All tags and names match
|
|
return true;
|
|
}
|