<div dir="ltr">Done, thanks! <div>r286870.<br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Nov 14, 2016 at 9:34 AM, David Blaikie <span dir="ltr"><<a href="mailto:dblaikie@gmail.com" target="_blank">dblaikie@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><br><br><div class="gmail_quote"><div><div class="h5"><div dir="ltr">On Fri, Nov 11, 2016 at 4:34 PM Kostya Serebryany via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: kcc<br class="m_8633805646381056630gmail_msg">
Date: Fri Nov 11 18:24:35 2016<br class="m_8633805646381056630gmail_msg">
New Revision: 286689<br class="m_8633805646381056630gmail_msg">
<br class="m_8633805646381056630gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=286689&view=rev" rel="noreferrer" class="m_8633805646381056630gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project?rev=286689&view=rev</a><br class="m_8633805646381056630gmail_msg">
Log:<br class="m_8633805646381056630gmail_msg">
[libFuzzer] use less stack<br class="m_8633805646381056630gmail_msg">
<br class="m_8633805646381056630gmail_msg">
Added:<br class="m_8633805646381056630gmail_msg">
    llvm/trunk/lib/Fuzzer/test/<wbr>ulimit.test<br class="m_8633805646381056630gmail_msg">
Modified:<br class="m_8633805646381056630gmail_msg">
    llvm/trunk/lib/Fuzzer/<wbr>FuzzerDriver.cpp<br class="m_8633805646381056630gmail_msg">
<br class="m_8633805646381056630gmail_msg">
Modified: llvm/trunk/lib/Fuzzer/<wbr>FuzzerDriver.cpp<br class="m_8633805646381056630gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Fuzzer/FuzzerDriver.cpp?rev=286689&r1=286688&r2=286689&view=diff" rel="noreferrer" class="m_8633805646381056630gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/lib/Fuzzer/<wbr>FuzzerDriver.cpp?rev=286689&<wbr>r1=286688&r2=286689&view=diff</a><br class="m_8633805646381056630gmail_msg">
==============================<wbr>==============================<wbr>==================<br class="m_8633805646381056630gmail_msg">
--- llvm/trunk/lib/Fuzzer/<wbr>FuzzerDriver.cpp (original)<br class="m_8633805646381056630gmail_msg">
+++ llvm/trunk/lib/Fuzzer/<wbr>FuzzerDriver.cpp Fri Nov 11 18:24:35 2016<br class="m_8633805646381056630gmail_msg">
@@ -446,15 +446,15 @@ int FuzzerDriver(int *argc, char ***argv<br class="m_8633805646381056630gmail_msg">
     Printf("INFO: Seed: %u\n", Seed);<br class="m_8633805646381056630gmail_msg">
<br class="m_8633805646381056630gmail_msg">
   Random Rand(Seed);<br class="m_8633805646381056630gmail_msg">
-  MutationDispatcher MD(Rand, Options);<br class="m_8633805646381056630gmail_msg">
-  InputCorpus Corpus(Options.OutputCorpus);<br class="m_8633805646381056630gmail_msg">
-  Fuzzer F(Callback, Corpus, MD, Options);<br class="m_8633805646381056630gmail_msg">
+  auto MD = new MutationDispatcher(Rand, Options);<br class="m_8633805646381056630gmail_msg">
+  auto Corpus = new InputCorpus(Options.<wbr>OutputCorpus);<br class="m_8633805646381056630gmail_msg">
+  auto F = new Fuzzer(Callback, *Corpus, *MD, Options);<br class="m_8633805646381056630gmail_msg"></blockquote><div><br></div></div></div><div>Generally it's preferable to use 'auto *' when something's a pointer ( <a href="http://llvm.org/docs/CodingStandards.html#beware-unnecessary-copies-with-auto" target="_blank">http://llvm.org/docs/<wbr>CodingStandards.html#beware-<wbr>unnecessary-copies-with-auto</a> )<wbr>.</div><div><div class="h5"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br class="m_8633805646381056630gmail_msg">
   for (auto &U: Dictionary)<br class="m_8633805646381056630gmail_msg">
     if (U.size() <= Word::GetMaxSize())<br class="m_8633805646381056630gmail_msg">
-      MD.AddWordToManualDictionary(<wbr>Word(U.data(), U.size()));<br class="m_8633805646381056630gmail_msg">
+      MD->AddWordToManualDictionary(<wbr>Word(U.data(), U.size()));<br class="m_8633805646381056630gmail_msg">
<br class="m_8633805646381056630gmail_msg">
-  StartRssThread(&F, Flags.rss_limit_mb);<br class="m_8633805646381056630gmail_msg">
+  StartRssThread(F, Flags.rss_limit_mb);<br class="m_8633805646381056630gmail_msg">
<br class="m_8633805646381056630gmail_msg">
   // Timer<br class="m_8633805646381056630gmail_msg">
   if (Flags.timeout > 0)<br class="m_8633805646381056630gmail_msg">
@@ -468,7 +468,7 @@ int FuzzerDriver(int *argc, char ***argv<br class="m_8633805646381056630gmail_msg">
   if (Flags.handle_term) SetSigTermHandler();<br class="m_8633805646381056630gmail_msg">
<br class="m_8633805646381056630gmail_msg">
   if (Flags.minimize_crash_<wbr>internal_step)<br class="m_8633805646381056630gmail_msg">
-    return MinimizeCrashInputInternalStep<wbr>(&F, &Corpus);<br class="m_8633805646381056630gmail_msg">
+    return MinimizeCrashInputInternalStep<wbr>(F, Corpus);<br class="m_8633805646381056630gmail_msg">
<br class="m_8633805646381056630gmail_msg">
   if (DoPlainRun) {<br class="m_8633805646381056630gmail_msg">
     Options.SaveArtifacts = false;<br class="m_8633805646381056630gmail_msg">
@@ -479,7 +479,7 @@ int FuzzerDriver(int *argc, char ***argv<br class="m_8633805646381056630gmail_msg">
       auto StartTime = system_clock::now();<br class="m_8633805646381056630gmail_msg">
       Printf("Running: %s\n", Path.c_str());<br class="m_8633805646381056630gmail_msg">
       for (int Iter = 0; Iter < Runs; Iter++)<br class="m_8633805646381056630gmail_msg">
-        RunOneTest(&F, Path.c_str(), Options.MaxLen);<br class="m_8633805646381056630gmail_msg">
+        RunOneTest(F, Path.c_str(), Options.MaxLen);<br class="m_8633805646381056630gmail_msg">
       auto StopTime = system_clock::now();<br class="m_8633805646381056630gmail_msg">
       auto MS = duration_cast<milliseconds>(<wbr>StopTime - StartTime).count();<br class="m_8633805646381056630gmail_msg">
       Printf("Executed %s in %zd ms\n", Path.c_str(), (long)MS);<br class="m_8633805646381056630gmail_msg">
@@ -488,14 +488,14 @@ int FuzzerDriver(int *argc, char ***argv<br class="m_8633805646381056630gmail_msg">
            "*** NOTE: fuzzing was not performed, you have only\n"<br class="m_8633805646381056630gmail_msg">
            "***       executed the target code on a fixed set of inputs.\n"<br class="m_8633805646381056630gmail_msg">
            "***\n");<br class="m_8633805646381056630gmail_msg">
-    F.PrintFinalStats();<br class="m_8633805646381056630gmail_msg">
+    F->PrintFinalStats();<br class="m_8633805646381056630gmail_msg">
     exit(0);<br class="m_8633805646381056630gmail_msg">
   }<br class="m_8633805646381056630gmail_msg">
<br class="m_8633805646381056630gmail_msg">
   if (Flags.merge) {<br class="m_8633805646381056630gmail_msg">
     if (Options.MaxLen == 0)<br class="m_8633805646381056630gmail_msg">
-      F.SetMaxInputLen(kMaxSaneLen);<br class="m_8633805646381056630gmail_msg">
-    F.Merge(*Inputs);<br class="m_8633805646381056630gmail_msg">
+      F->SetMaxInputLen(kMaxSaneLen)<wbr>;<br class="m_8633805646381056630gmail_msg">
+    F->Merge(*Inputs);<br class="m_8633805646381056630gmail_msg">
     exit(0);<br class="m_8633805646381056630gmail_msg">
   }<br class="m_8633805646381056630gmail_msg">
<br class="m_8633805646381056630gmail_msg">
@@ -512,7 +512,7 @@ int FuzzerDriver(int *argc, char ***argv<br class="m_8633805646381056630gmail_msg">
     size_t MaxLen = 0;<br class="m_8633805646381056630gmail_msg">
     for (auto &U : InitialCorpus)<br class="m_8633805646381056630gmail_msg">
       MaxLen = std::max(U.size(), MaxLen);<br class="m_8633805646381056630gmail_msg">
-    F.SetMaxInputLen(std::min(std:<wbr>:max(kMinDefaultLen, MaxLen), kMaxSaneLen));<br class="m_8633805646381056630gmail_msg">
+    F->SetMaxInputLen(std::min(<wbr>std::max(kMinDefaultLen, MaxLen), kMaxSaneLen));<br class="m_8633805646381056630gmail_msg">
   }<br class="m_8633805646381056630gmail_msg">
<br class="m_8633805646381056630gmail_msg">
   if (InitialCorpus.empty()) {<br class="m_8633805646381056630gmail_msg">
@@ -520,14 +520,14 @@ int FuzzerDriver(int *argc, char ***argv<br class="m_8633805646381056630gmail_msg">
     if (Options.Verbosity)<br class="m_8633805646381056630gmail_msg">
       Printf("INFO: A corpus is not provided, starting from an empty corpus\n");<br class="m_8633805646381056630gmail_msg">
   }<br class="m_8633805646381056630gmail_msg">
-  F.ShuffleAndMinimize(&<wbr>InitialCorpus);<br class="m_8633805646381056630gmail_msg">
+  F->ShuffleAndMinimize(&<wbr>InitialCorpus);<br class="m_8633805646381056630gmail_msg">
   InitialCorpus.clear();  // Don't need this memory any more.<br class="m_8633805646381056630gmail_msg">
-  F.Loop();<br class="m_8633805646381056630gmail_msg">
+  F->Loop();<br class="m_8633805646381056630gmail_msg">
<br class="m_8633805646381056630gmail_msg">
   if (Flags.verbosity)<br class="m_8633805646381056630gmail_msg">
-    Printf("Done %d runs in %zd second(s)\n", F.getTotalNumberOfRuns(),<br class="m_8633805646381056630gmail_msg">
-           F.secondsSinceProcessStartUp(<wbr>));<br class="m_8633805646381056630gmail_msg">
-  F.PrintFinalStats();<br class="m_8633805646381056630gmail_msg">
+    Printf("Done %d runs in %zd second(s)\n", F->getTotalNumberOfRuns(),<br class="m_8633805646381056630gmail_msg">
+           F-><wbr>secondsSinceProcessStartUp());<br class="m_8633805646381056630gmail_msg">
+  F->PrintFinalStats();<br class="m_8633805646381056630gmail_msg">
<br class="m_8633805646381056630gmail_msg">
   exit(0);  // Don't let F destroy itself.<br class="m_8633805646381056630gmail_msg">
 }<br class="m_8633805646381056630gmail_msg">
<br class="m_8633805646381056630gmail_msg">
Added: llvm/trunk/lib/Fuzzer/test/<wbr>ulimit.test<br class="m_8633805646381056630gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Fuzzer/test/ulimit.test?rev=286689&view=auto" rel="noreferrer" class="m_8633805646381056630gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/lib/Fuzzer/<wbr>test/ulimit.test?rev=286689&<wbr>view=auto</a><br class="m_8633805646381056630gmail_msg">
==============================<wbr>==============================<wbr>==================<br class="m_8633805646381056630gmail_msg">
--- llvm/trunk/lib/Fuzzer/test/<wbr>ulimit.test (added)<br class="m_8633805646381056630gmail_msg">
+++ llvm/trunk/lib/Fuzzer/test/<wbr>ulimit.test Fri Nov 11 18:24:35 2016<br class="m_8633805646381056630gmail_msg">
@@ -0,0 +1,2 @@<br class="m_8633805646381056630gmail_msg">
+RUN: ulimit -s 1000<br class="m_8633805646381056630gmail_msg">
+RUN: LLVMFuzzer-SimpleTest<br class="m_8633805646381056630gmail_msg">
<br class="m_8633805646381056630gmail_msg">
<br class="m_8633805646381056630gmail_msg">
______________________________<wbr>_________________<br class="m_8633805646381056630gmail_msg">
llvm-commits mailing list<br class="m_8633805646381056630gmail_msg">
<a href="mailto:llvm-commits@lists.llvm.org" class="m_8633805646381056630gmail_msg" target="_blank">llvm-commits@lists.llvm.org</a><br class="m_8633805646381056630gmail_msg">
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" class="m_8633805646381056630gmail_msg" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-commits</a><br class="m_8633805646381056630gmail_msg">
</blockquote></div></div></div></div>
</blockquote></div><br></div>