Add the new Args / entry-access API.

The long-term goal here is to get rid of the functions
GetArgumentAtIndex() and GetQuoteCharAtIndex(), instead
replacing them with operator based access and range-based for
enumeration.  There are a lot of callsites, though, so the
changes will be done incrementally, starting with this one.

Differential Revision: https://reviews.llvm.org/D26883

llvm-svn: 287597
This commit is contained in:
Zachary Turner
2016-11-21 23:18:07 +00:00
parent c2cd4e004c
commit 1c55c9b5bf
8 changed files with 93 additions and 97 deletions

View File

@@ -122,13 +122,12 @@ void BreakpointIDList::FindAndReplaceIDRanges(Args &old_args, Target *target,
llvm::StringRef range_from;
llvm::StringRef range_to;
llvm::StringRef current_arg;
const size_t num_old_args = old_args.GetArgumentCount();
std::set<std::string> names_found;
for (size_t i = 0; i < num_old_args; ++i) {
for (size_t i = 0; i < old_args.size(); ++i) {
bool is_range = false;
current_arg = old_args.GetArgumentAtIndex(i);
current_arg = old_args[i].ref;
if (!allow_locations && current_arg.contains('.')) {
result.AppendErrorWithFormat(
"Breakpoint locations not allowed, saw location: %s.",
@@ -152,19 +151,17 @@ void BreakpointIDList::FindAndReplaceIDRanges(Args &old_args, Target *target,
return;
} else
names_found.insert(current_arg);
} else if ((i + 2 < num_old_args) &&
BreakpointID::IsRangeIdentifier(
old_args.GetArgumentAtIndex(i + 1)) &&
} else if ((i + 2 < old_args.size()) &&
BreakpointID::IsRangeIdentifier(old_args[i + 1].ref) &&
BreakpointID::IsValidIDExpression(current_arg) &&
BreakpointID::IsValidIDExpression(
old_args.GetArgumentAtIndex(i + 2))) {
BreakpointID::IsValidIDExpression(old_args[i + 2].ref)) {
range_from = current_arg;
range_to = old_args.GetArgumentAtIndex(i + 2);
range_to = old_args[i + 2].ref;
is_range = true;
i = i + 2;
} else {
// See if user has specified id.*
llvm::StringRef tmp_str = old_args.GetArgumentAtIndex(i);
llvm::StringRef tmp_str = old_args[i].ref;
size_t pos = tmp_str.find('.');
if (pos != llvm::StringRef::npos) {
llvm::StringRef bp_id_str = tmp_str.substr(0, pos);