From d700a8a0eb5f0a17d689216b5944ab6e39f1d55e Mon Sep 17 00:00:00 2001
From: "Urabe, Shyouhei" <shyouhei@ruby-lang.org>
Date: Fri, 26 Apr 2019 13:32:55 +0900
Subject: [PATCH] update travis clang

Seems clang-7 has false-positives around memory sanitizer.

This line should not be reported because the memory region is
correctly unpoisoned beforehand:
https://travis-ci.org/ruby/ruby/jobs/524766381

Clang 8 seems to fix it.
---
 .travis.yml | 37 +++++++++++++++++++++++++++++++------
 1 file changed, 31 insertions(+), 6 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index 8b50a2a68c..81efc2f324 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -98,6 +98,31 @@ env:
     before_install:
       - /usr/local/opt/openssl@1.1/bin/openssl version
 
+  - &clang-8
+    compiler: clang-8
+    addons:
+      apt:
+        config:
+          retries: true
+        update: true
+        sources:
+          - llvm-toolchain-xenial-8
+        packages:
+          - clang-8
+          - llvm-8-tools
+          - libffi-dev
+          - libgdbm-dev
+          - libgmp-dev
+          - libjemalloc-dev
+          - libncurses5-dev
+          - libncursesw5-dev
+          - libreadline6-dev
+          - libssl-dev
+          - libyaml-dev
+          - openssl
+          - valgrind
+          - zlib1g-dev
+
   # --------
 
   - &x86_64-linux
@@ -163,13 +188,13 @@ env:
     <<: *linux
     #<<: *cron-only
     <<: *make-test-only
-    compiler: clang
+    <<: *clang-8
     env:
       - ASAN_OPTIONS=detect_leaks=0
       - cflags='-march=native -fsanitize=address -fno-omit-frame-pointer -fPIC'
       - debugflags=-ggdb3
       - optflags=-O1
-      - LD=clang
+      - LD=clang-8
       - LDFLAGS='-fsanitize=address -fPIC'
       - CONFIG_FLAG='--with-out-ext=openssl --without-gmp --without-jemalloc --without-valgrind'
 
@@ -178,11 +203,11 @@ env:
     <<: *linux
     #<<: *cron-only
     <<: *make-test-only
-    compiler: clang
+    <<: *clang-8
     env:
       - cflags='-fsanitize=memory -fsanitize-memory-track-origins=2 -fno-omit-frame-pointer -fPIC'
       - optflags=-O1
-      - LD=clang
+      - LD=clang-8
       - LDFLAGS='-fsanitize=memory -fPIC'
       - CONFIG_FLAG='--with-out-ext=openssl --without-gmp --without-jemalloc --without-valgrind'
 
@@ -191,13 +216,13 @@ env:
     <<: *linux
     #<<: *cron-only
     <<: *make-test-only
-    compiler: clang
+    <<: *clang-8
     env:
       - cflags='-fsanitize=undefined,integer,nullability -fno-omit-frame-pointer'
       - cppflags=-DUNALIGNED_WORD_ACCESS=0
       - debugflags=-ggdb3
       - optflags='-O1 -march=native'
-      - LD=clang
+      - LD=clang-8
       - LDFLAGS=-fsanitize=undefined,integer,nullability
 
   - &i686-linux