From d9acbb08aab0b7af637d0c385581191091d498f0 Mon Sep 17 00:00:00 2001
From: Yaxun Liu <Yaxun.Liu@amd.com>
Date: Sun, 18 Dec 2016 06:35:06 +0000
Subject: [PATCH] Attempt to fix build failure and regressions due to r290056

Add llvm:: namespace to StringRef.
Make conversion between bool and uint64_t explicit.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@290058 91177308-0d34-0410-b5e6-96231b3b80d8
---
 include/clang/Basic/OpenCLOptions.h | 14 +++++++-------
 lib/Serialization/ASTReader.cpp     |  4 ++--
 lib/Serialization/ASTWriter.cpp     |  4 ++--
 3 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/include/clang/Basic/OpenCLOptions.h b/include/clang/Basic/OpenCLOptions.h
index 9fb4dbb7ba7..a51494fa2e3 100644
--- a/include/clang/Basic/OpenCLOptions.h
+++ b/include/clang/Basic/OpenCLOptions.h
@@ -32,24 +32,24 @@ class OpenCLOptions {
   };
   llvm::StringMap<Info> OptMap;
 public:
-  bool isKnown(StringRef Ext) const {
+  bool isKnown(llvm::StringRef Ext) const {
     return OptMap.find(Ext) != OptMap.end();
   }
 
-  bool isEnabled(StringRef Ext) const {
+  bool isEnabled(llvm::StringRef Ext) const {
     return OptMap.find(Ext)->second.Enabled;
   }
 
   // Is supported as either an extension or an (optional) core feature for
   // OpenCL version \p CLVer.
-  bool isSupported(StringRef Ext, unsigned CLVer) const {
+  bool isSupported(llvm::StringRef Ext, unsigned CLVer) const {
     auto I = OptMap.find(Ext)->getValue();
     return I.Supported && I.Avail <= CLVer;
   }
 
   // Is supported (optional) OpenCL core features for OpenCL version \p CLVer.
   // For supported extension, return false.
-  bool isSupportedCore(StringRef Ext, unsigned CLVer) const {
+  bool isSupportedCore(llvm::StringRef Ext, unsigned CLVer) const {
     auto I = OptMap.find(Ext)->getValue();
     return I.Supported && I.Avail <= CLVer &&
       I.Core != ~0U && CLVer >= I.Core;
@@ -57,13 +57,13 @@ public:
 
   // Is supported OpenCL extension for OpenCL version \p CLVer.
   // For supported (optional) core feature, return false.
- bool isSupportedExtension(StringRef Ext, unsigned CLVer) const {
+ bool isSupportedExtension(llvm::StringRef Ext, unsigned CLVer) const {
     auto I = OptMap.find(Ext)->getValue();
     return I.Supported && I.Avail <= CLVer &&
       (I.Core == ~0U || CLVer < I.Core);
   }
 
-  void enable(StringRef Ext, bool V = true) {
+  void enable(llvm::StringRef Ext, bool V = true) {
     OptMap[Ext].Enabled = V;
   }
 
@@ -71,7 +71,7 @@ public:
   /// \param Ext name of the extension optionally prefixed with
   ///        '+' or '-'
   /// \param Enable used when \p Ext is not prefixed by '+' or '-'
-  void support(StringRef Ext, bool V = true) {
+  void support(llvm::StringRef Ext, bool V = true) {
     assert(!Ext.empty() && "Extension is empty.");
 
     switch (Ext[0]) {
diff --git a/lib/Serialization/ASTReader.cpp b/lib/Serialization/ASTReader.cpp
index d6324b41d6c..066261c0215 100644
--- a/lib/Serialization/ASTReader.cpp
+++ b/lib/Serialization/ASTReader.cpp
@@ -3167,8 +3167,8 @@ ASTReader::ReadASTBlock(ModuleFile &F, unsigned ClientLoadCapabilities) {
       for (unsigned I = 0, E = Record.size(); I != E; ) {
         auto Name = ReadString(Record, I);
         auto &Opt = OpenCLExtensions.OptMap[Name];
-        Opt.Supported = Record[I++];
-        Opt.Enabled = Record[I++];
+        Opt.Supported = Record[I++] != 0;
+        Opt.Enabled = Record[I++] != 0;
         Opt.Avail = Record[I++];
         Opt.Core = Record[I++];
       }
diff --git a/lib/Serialization/ASTWriter.cpp b/lib/Serialization/ASTWriter.cpp
index 493941a3eff..6d79ea53b65 100644
--- a/lib/Serialization/ASTWriter.cpp
+++ b/lib/Serialization/ASTWriter.cpp
@@ -3944,8 +3944,8 @@ void ASTWriter::WriteOpenCLExtensions(Sema &SemaRef) {
   for (const auto &I:Opts.OptMap) {
     AddString(I.getKey(), Record);
     auto V = I.getValue();
-    Record.push_back(V.Supported);
-    Record.push_back(V.Enabled);
+    Record.push_back(V.Supported ? 1 : 0);
+    Record.push_back(V.Enabled ? 1 : 0);
     Record.push_back(V.Avail);
     Record.push_back(V.Core);
   }
-- 
GitLab