[thirdparty] fix building LLVM 9 with GCC 10

This patch fixes LLVM 9 build with GCC 10 in Kudu's thirdparty.  The
imported patch is already in the LLVM repo, see [1].

Prior to this patch, LLVM9 build in thirdparty would fail with the
following error:

  thirdparty/src/llvm-9.0.0.src/include/llvm/Demangle/MicrosoftDemangleNodes.h:566:3: error: unknown type name 'uint32_t'
    uint32_t NVOffset = 0;
    ^

[1] https://github.com/llvm-mirror/llvm/commit/e0402b5c9813a2458b8dd3f640883110db280395

Change-Id: I3332556229dbf2bce65d52f37c48d62624465f70
Reviewed-on: http://gerrit.cloudera.org:8080/17627
Tested-by: Kudu Jenkins
Reviewed-by: Andrew Wong <awong@cloudera.com>
diff --git a/thirdparty/download-thirdparty.sh b/thirdparty/download-thirdparty.sh
index 944b00f..d724f73 100755
--- a/thirdparty/download-thirdparty.sh
+++ b/thirdparty/download-thirdparty.sh
@@ -328,13 +328,14 @@
  $PYTHON_SOURCE \
  $PYTHON_PATCHLEVEL
 
-LLVM_PATCHLEVEL=4
+LLVM_PATCHLEVEL=5
 fetch_and_patch \
  llvm-${LLVM_VERSION}-iwyu-${IWYU_VERSION}.src.tar.gz \
  $LLVM_SOURCE \
  $LLVM_PATCHLEVEL \
   "patch -p1 < $TP_DIR/patches/llvm-add-iwyu.patch" \
   "patch -p1 < $TP_DIR/patches/llvm-iwyu-include-picker.patch" \
+  "patch -p1 < $TP_DIR/patches/llvm-MicrosoftDemangleNodes-e0402b5c9813a2458b8dd3f640883110db280395.patch" \
   "patch -p0 < $TP_DIR/patches/llvm-iwyu-sized-deallocation.patch" \
   "patch -d projects -p1 < $TP_DIR/patches/llvm-947f9692440836dcb8d88b74b69dd379d85974ce.patch"
 
diff --git a/thirdparty/patches/llvm-MicrosoftDemangleNodes-e0402b5c9813a2458b8dd3f640883110db280395.patch b/thirdparty/patches/llvm-MicrosoftDemangleNodes-e0402b5c9813a2458b8dd3f640883110db280395.patch
new file mode 100644
index 0000000..04cfa3f
--- /dev/null
+++ b/thirdparty/patches/llvm-MicrosoftDemangleNodes-e0402b5c9813a2458b8dd3f640883110db280395.patch
@@ -0,0 +1,32 @@
+commit e0402b5c9813a2458b8dd3f640883110db280395
+Author: Than McIntosh <thanm@google.com>
+Date:   Fri Jul 19 13:13:54 2019 +0000
+
+    [NFC] include cstdint/string prior to using uint8_t/string
+    
+    Summary: include proper header prior to use of uint8_t typedef
+    and std::string.
+    
+    Subscribers: llvm-commits
+    
+    Reviewers: cherry
+    
+    Tags: #llvm
+    
+    Differential Revision: https://reviews.llvm.org/D64937
+    
+    git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@366572 91177308-0d34-0410-b5e6-96231b3b80d8
+
+diff --git a/include/llvm/Demangle/MicrosoftDemangleNodes.h b/include/llvm/Demangle/MicrosoftDemangleNodes.h
+index da9d9d5bfdc..3d47471f0ef 100644
+--- a/include/llvm/Demangle/MicrosoftDemangleNodes.h
++++ b/include/llvm/Demangle/MicrosoftDemangleNodes.h
+@@ -16,6 +16,8 @@
+ #include "llvm/Demangle/DemangleConfig.h"
+ #include "llvm/Demangle/StringView.h"
+ #include <array>
++#include <cstdint>
++#include <string>
+ 
+ namespace llvm {
+ namespace itanium_demangle {