Skip to content

Commit

Permalink
Issue diagnostics when returning FP values on x86_64 without SSE1/2
Browse files Browse the repository at this point in the history
Avoid using report_fatal_error, because it will ask the user to file a
bug. If the user attempts to disable SSE on x86_64 and them use floating
point, that's a bug in their code, not a bug in the compiler.

This is just a start. There are other ways to crash the backend in this
configuration, but they should be updated to follow this pattern.

Differential Revision: https://reviews.llvm.org/D27522

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@302835 91177308-0d34-0410-b5e6-96231b3b80d8
  • Loading branch information
rnk committed May 11, 2017
1 parent 45ddcc4 commit 8d78bb1
Showing 1 changed file with 15 additions and 0 deletions.
15 changes: 15 additions & 0 deletions test/CodeGen/x86_64-mno-sse.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
// 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}}
return 1.4;
}
extern double g;
void f2(void) { // expected-error {{SSE register return with SSE disabled}}
g = f1();
}
void take_double(double);
void pass_double(void) {
// FIXME: Still asserts.
//take_double(1.5);
}

0 comments on commit 8d78bb1

Please sign in to comment.