[libFuzzer] reimplement the way we do -only_ascii to allow more 'const' in function declarations. Add a test for -only_ascii. NFC intended

llvm-svn: 270900
diff --git a/llvm/lib/Fuzzer/FuzzerTraceState.cpp b/llvm/lib/Fuzzer/FuzzerTraceState.cpp
index 8123407..d994481 100644
--- a/llvm/lib/Fuzzer/FuzzerTraceState.cpp
+++ b/llvm/lib/Fuzzer/FuzzerTraceState.cpp
@@ -175,7 +175,7 @@
 class TraceState {
  public:
    TraceState(MutationDispatcher &MD, const Fuzzer::FuzzingOptions &Options,
-              uint8_t **CurrentUnitData, size_t *CurrentUnitSize)
+              const uint8_t **CurrentUnitData, size_t *CurrentUnitSize)
        : MD(MD), Options(Options), CurrentUnitData(CurrentUnitData),
          CurrentUnitSize(CurrentUnitSize) {
      // Current trace collection is not thread-friendly and it probably
@@ -293,7 +293,7 @@
   size_t LastDfsanLabel = 0;
   MutationDispatcher &MD;
   const Fuzzer::FuzzingOptions &Options;
-  uint8_t **CurrentUnitData;
+  const uint8_t **CurrentUnitData;
   size_t *CurrentUnitSize;
   std::map<Word, size_t> AutoDictUnitCounts;
   size_t AutoDictAdds = 0;