Index: clang/test/CodeGen/x86_64-mno-sse.c =================================================================== --- clang/test/CodeGen/x86_64-mno-sse.c +++ clang/test/CodeGen/x86_64-mno-sse.c @@ -1,15 +1,14 @@ // RUN: %clang_cc1 -triple x86_64-linux -target-feature -sse -target-feature -sse2 -S -o /dev/null -verify %s // REQUIRES: x86-registered-target -double f1(void) { // expected-error {{SSE register return with SSE disabled}} +double f1(void) { // expected-warning {{SSE register return with SSE disabled}} return 1.4; } extern double g; -void f2(void) { // expected-error {{SSE register return with SSE disabled}} +void f2(void) { // expected-warning {{SSE register return with SSE disabled}} g = f1(); } void take_double(double); void pass_double(void) { - // FIXME: Still asserts. - //take_double(1.5); + take_double(1.5); } Index: clang/test/CodeGen/x86_64-mno-sse2.c =================================================================== --- clang/test/CodeGen/x86_64-mno-sse2.c +++ clang/test/CodeGen/x86_64-mno-sse2.c @@ -1,11 +1,11 @@ // RUN: %clang_cc1 -triple x86_64-linux -target-feature -sse2 -S -o /dev/null -verify %s // REQUIRES: x86-registered-target -double f1(void) { // expected-error {{SSE2 register return with SSE2 disabled}} +double f1(void) { // expected-warning {{SSE2 register return with SSE2 disabled}} return 1.4; } extern double g; -void f2(void) { // expected-error {{SSE2 register return with SSE2 disabled}} +void f2(void) { // expected-warning {{SSE2 register return with SSE2 disabled}} g = f1(); } void take_double(double); @@ -15,6 +15,6 @@ } double return_double(); -void call_double(double *a) { // expected-error {{SSE2 register return with SSE2 disabled}} +void call_double(double *a) { // expected-warning {{SSE2 register return with SSE2 disabled}} *a = return_double(); } Index: llvm/lib/Target/X86/X86ISelLowering.cpp =================================================================== --- llvm/lib/Target/X86/X86ISelLowering.cpp +++ llvm/lib/Target/X86/X86ISelLowering.cpp @@ -96,8 +96,8 @@ static void errorUnsupported(SelectionDAG &DAG, const SDLoc &dl, const char *Msg) { MachineFunction &MF = DAG.getMachineFunction(); - DAG.getContext()->diagnose( - DiagnosticInfoUnsupported(MF.getFunction(), Msg, dl.getDebugLoc())); + DAG.getContext()->diagnose(DiagnosticInfoUnsupported( + MF.getFunction(), Msg, dl.getDebugLoc(), DS_Warning)); } X86TargetLowering::X86TargetLowering(const X86TargetMachine &TM,