Driver: Use pointee_iterator rather than iterating over unique_ptrs

There's probably never a good reason to iterate over unique_ptrs. This
lets us use range-for and say Job.foo instead of (*it)->foo in a few
places.

llvm-svn: 218938
diff --git a/clang/lib/Driver/Compilation.cpp b/clang/lib/Driver/Compilation.cpp
index 124ecca..2bcbd5c 100644
--- a/clang/lib/Driver/Compilation.cpp
+++ b/clang/lib/Driver/Compilation.cpp
@@ -202,9 +202,8 @@
       FailingCommands.push_back(std::make_pair(Res, FailingCommand));
   } else {
     const JobList *Jobs = cast<JobList>(&J);
-    for (JobList::const_iterator it = Jobs->begin(), ie = Jobs->end();
-         it != ie; ++it)
-      ExecuteJob(**it, FailingCommands);
+    for (const auto &Job : *Jobs)
+      ExecuteJob(Job, FailingCommands);
   }
 }
 
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index 6cf6c01..8b09775 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -578,8 +578,8 @@
 
 void Driver::setUpResponseFiles(Compilation &C, Job &J) {
   if (JobList *Jobs = dyn_cast<JobList>(&J)) {
-    for (JobList::iterator I = Jobs->begin(), E = Jobs->end(); I != E; ++I)
-      setUpResponseFiles(C, **I);
+    for (auto &Job : *Jobs)
+      setUpResponseFiles(C, Job);
     return;
   }
 
diff --git a/clang/lib/Driver/Job.cpp b/clang/lib/Driver/Job.cpp
index 1202c99..c13b56e 100644
--- a/clang/lib/Driver/Job.cpp
+++ b/clang/lib/Driver/Job.cpp
@@ -287,8 +287,8 @@
 
 void JobList::Print(raw_ostream &OS, const char *Terminator, bool Quote,
                     bool CrashReport) const {
-  for (const_iterator it = begin(), ie = end(); it != ie; ++it)
-    (*it)->Print(OS, Terminator, Quote, CrashReport);
+  for (const auto &Job : *this)
+    Job.Print(OS, Terminator, Quote, CrashReport);
 }
 
 void JobList::clear() { Jobs.clear(); }