summaryrefslogtreecommitdiffstats
path: root/include/clang/CodeGen/CGFunctionInfo.h
diff options
context:
space:
mode:
authorAaron Ballman <aaron@aaronballman.com>2014-03-17 18:10:01 +0000
committerAaron Ballman <aaron@aaronballman.com>2014-03-17 18:10:01 +0000
commitbbe3878c8894da9fb0f54286c42fba84e6da95c4 (patch)
treef7978c1ce72a355c3f3ee431519ae42222090797 /include/clang/CodeGen/CGFunctionInfo.h
parent3985a324489dc4477b803bbb72f5d853a41324d3 (diff)
[C++11] Replacing CGFunctionInfo arg iterators with iterator_range arguments(). Updating all of the usages of the iterators with range-based for loops.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204068 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/clang/CodeGen/CGFunctionInfo.h')
-rw-r--r--include/clang/CodeGen/CGFunctionInfo.h12
1 files changed, 10 insertions, 2 deletions
diff --git a/include/clang/CodeGen/CGFunctionInfo.h b/include/clang/CodeGen/CGFunctionInfo.h
index ec41e8bdec..e4a927292b 100644
--- a/include/clang/CodeGen/CGFunctionInfo.h
+++ b/include/clang/CodeGen/CGFunctionInfo.h
@@ -314,6 +314,14 @@ public:
typedef const ArgInfo *const_arg_iterator;
typedef ArgInfo *arg_iterator;
+ typedef llvm::iterator_range<arg_iterator> arg_range;
+ typedef llvm::iterator_range<const_arg_iterator> arg_const_range;
+
+ arg_range arguments() { return arg_range(arg_begin(), arg_end()); }
+ arg_const_range arguments() const {
+ return arg_const_range(arg_begin(), arg_end());
+ }
+
const_arg_iterator arg_begin() const { return getArgsBuffer() + 1; }
const_arg_iterator arg_end() const { return getArgsBuffer() + 1 + NumArgs; }
arg_iterator arg_begin() { return getArgsBuffer() + 1; }
@@ -382,8 +390,8 @@ public:
ID.AddInteger(RegParm);
ID.AddInteger(Required.getOpaqueData());
getReturnType().Profile(ID);
- for (arg_iterator it = arg_begin(), ie = arg_end(); it != ie; ++it)
- it->type.Profile(ID);
+ for (const auto &I : arguments())
+ I.type.Profile(ID);
}
static void Profile(llvm::FoldingSetNodeID &ID,
bool InstanceMethod,