Index: src/IceTargetLowering.h |
diff --git a/src/IceTargetLowering.h b/src/IceTargetLowering.h |
index f35983f1846e6bf9ed43ff05a238bb470cbfd241..e8c2ab8301225c869211baa3feee6727c1690bc4 100644 |
--- a/src/IceTargetLowering.h |
+++ b/src/IceTargetLowering.h |
@@ -28,6 +28,18 @@ |
namespace Ice { |
+// UnimplementedError is defined as a macro so that we can get actual line |
+// numbers. |
+#define UnimplementedError(Flags) \ |
+ do { \ |
+ if (!static_cast<const ClFlags &>(Flags).getSkipUnimplemented()) { \ |
Jim Stichnoth
2015/10/08 23:50:41
Do you really need the cast here?
For proper macr
John
2015/10/09 12:12:24
I'll reply on his behalf, for this is my fault.
R
Karl
2015/10/09 19:08:18
Acknowledged.
Jim Stichnoth
2015/10/09 20:05:44
I guess I was thinking of the case where the "Flag
|
+ /* Use llvm_unreachable instead of report_fatal_error, which gives \ |
+ better stack traces. */ \ |
+ llvm_unreachable("Not yet implemented"); \ |
+ abort(); \ |
+ } \ |
+ } while (0) |
+ |
/// LoweringContext makes it easy to iterate through non-deleted instructions in |
/// a node, and insert new (lowered) instructions at the current point. Along |
/// with the instruction list container and associated iterators, it holds the |