|  | // RUN: not %clang_cc1 -std=c++11 -triple x86_64-unknown-linux-gnu \ | 
|  | // RUN:   -emit-llvm -o - %s 2>&1 | FileCheck %s | 
|  | // RUN: not %clang_cc1 -std=c++11 -triple x86_64-unknown-linux-gnu \ | 
|  | // RUN:   -fcuda-is-device -emit-llvm -o - %s 2>&1 \ | 
|  | // RUN:   | FileCheck %s | 
|  |  | 
|  | // Check no crash due to deferred diagnostics. | 
|  |  | 
|  | #include "Inputs/cuda.h" | 
|  |  | 
|  | // CHECK: error: invalid output constraint '=h' in asm | 
|  | // CHECK-NOT: core dump | 
|  | inline __host__ __device__ int foo() { | 
|  | short h; | 
|  | __asm__("dont care" : "=h"(h) : "f"(0.0), "d"(0.0), "h"(0), "r"(0), "l"(0)); | 
|  | return 0; | 
|  | } | 
|  |  | 
|  | void host_fun() { | 
|  | foo(); | 
|  | } | 
|  |  | 
|  | __global__ void kernel() { | 
|  | foo(); | 
|  | } |