[Mesa-dev] [PATCH 1/3] mesa: Make unreachable macro take a string argument.
Matt Turner
mattst88 at gmail.com
Mon Jun 30 10:27:38 PDT 2014
To aid in debugging.
---
src/glsl/opt_vectorize.cpp | 3 +--
src/mesa/drivers/common/meta.c | 3 +--
src/mesa/drivers/dri/i965/brw_blorp_clear.cpp | 4 +---
src/mesa/drivers/dri/i965/brw_reg.h | 3 +--
src/mesa/drivers/dri/i965/test_vec4_copy_propagation.cpp | 3 +--
src/mesa/drivers/dri/i965/test_vec4_register_coalesce.cpp | 3 +--
src/mesa/main/compiler.h | 14 +++++++++++---
7 files changed, 17 insertions(+), 16 deletions(-)
diff --git a/src/glsl/opt_vectorize.cpp b/src/glsl/opt_vectorize.cpp
index f9a3b61..28534a8 100644
--- a/src/glsl/opt_vectorize.cpp
+++ b/src/glsl/opt_vectorize.cpp
@@ -227,8 +227,7 @@ write_mask_to_swizzle(unsigned write_mask)
case WRITEMASK_Z: return SWIZZLE_Z;
case WRITEMASK_W: return SWIZZLE_W;
}
- assert(!"not reached");
- unreachable();
+ unreachable("not reached");
}
/**
diff --git a/src/mesa/drivers/common/meta.c b/src/mesa/drivers/common/meta.c
index 1a2e453..3db3611 100644
--- a/src/mesa/drivers/common/meta.c
+++ b/src/mesa/drivers/common/meta.c
@@ -2613,8 +2613,7 @@ _mesa_meta_setup_texture_coords(GLenum faceTarget,
coord = coords3;
break;
default:
- assert(0);
- unreachable();
+ unreachable("not reached");
}
coord[3] = (float) (slice / 6);
diff --git a/src/mesa/drivers/dri/i965/brw_blorp_clear.cpp b/src/mesa/drivers/dri/i965/brw_blorp_clear.cpp
index 5efdf71..df34c72 100644
--- a/src/mesa/drivers/dri/i965/brw_blorp_clear.cpp
+++ b/src/mesa/drivers/dri/i965/brw_blorp_clear.cpp
@@ -337,9 +337,7 @@ brw_blorp_clear_params::brw_blorp_clear_params(struct brw_context *brw,
x_scaledown = 2;
break;
default:
- assert(!"Unexpected sample count for fast clear");
- unreachable();
- break;
+ unreachable("Unexpected sample count for fast clear");
}
y_scaledown = 2;
x_align = x_scaledown * 2;
diff --git a/src/mesa/drivers/dri/i965/brw_reg.h b/src/mesa/drivers/dri/i965/brw_reg.h
index fc2e0b0..24346be 100644
--- a/src/mesa/drivers/dri/i965/brw_reg.h
+++ b/src/mesa/drivers/dri/i965/brw_reg.h
@@ -358,9 +358,8 @@ brw_vecn_reg(unsigned width, unsigned file, unsigned nr, unsigned subnr)
case 16:
return brw_vec16_reg(file, nr, subnr);
default:
- assert(!"Invalid register width");
+ unreachable("Invalid register width");
}
- unreachable();
}
static inline struct brw_reg
diff --git a/src/mesa/drivers/dri/i965/test_vec4_copy_propagation.cpp b/src/mesa/drivers/dri/i965/test_vec4_copy_propagation.cpp
index fd517f8..0667465 100644
--- a/src/mesa/drivers/dri/i965/test_vec4_copy_propagation.cpp
+++ b/src/mesa/drivers/dri/i965/test_vec4_copy_propagation.cpp
@@ -86,8 +86,7 @@ protected:
virtual vec4_instruction *emit_urb_write_opcode(bool complete)
{
- assert(!"Not reached");
- unreachable();
+ unreachable("Not reached");
}
};
diff --git a/src/mesa/drivers/dri/i965/test_vec4_register_coalesce.cpp b/src/mesa/drivers/dri/i965/test_vec4_register_coalesce.cpp
index 7563aef..78c758c 100644
--- a/src/mesa/drivers/dri/i965/test_vec4_register_coalesce.cpp
+++ b/src/mesa/drivers/dri/i965/test_vec4_register_coalesce.cpp
@@ -89,8 +89,7 @@ protected:
virtual vec4_instruction *emit_urb_write_opcode(bool complete)
{
- assert(!"Not reached");
- unreachable();
+ unreachable("Not reached");
}
};
diff --git a/src/mesa/main/compiler.h b/src/mesa/main/compiler.h
index 6006917..79d8740 100644
--- a/src/mesa/main/compiler.h
+++ b/src/mesa/main/compiler.h
@@ -253,15 +253,23 @@ static INLINE GLuint CPU_TO_LE32(GLuint x)
* function" warnings.
*/
#if __GNUC__ >= 4 && __GNUC_MINOR__ >= 5
-#define unreachable() __builtin_unreachable()
+#define unreachable(str) \
+do { \
+ assert(!str); \
+ __builtin_unreachable(); \
+} while (0)
#elif (defined(__clang__) && defined(__has_builtin))
# if __has_builtin(__builtin_unreachable)
-# define unreachable() __builtin_unreachable()
+# define unreachable(str) \
+do { \
+ assert(!str); \
+ __builtin_unreachable(); \
+} while (0)
# endif
#endif
#ifndef unreachable
-#define unreachable()
+#define unreachable(str)
#endif
/*
--
1.8.3.2
More information about the mesa-dev
mailing list