[Mesa-dev] [PATCH 2/6] glsl: Make _mesa_print_ir() available from anything including ir.h.

Eric Anholt eric at anholt.net
Mon Jun 17 16:10:46 PDT 2013


No more forgetting to #include "ir_print_visitor.h" when doing temporary
debug code, or forgetting and leaving it in after removing your temporary
debug code.  Also, available from C code so you don't need to move the
caller to C++ just to call it (see also: ir_to_mesa.cpp).
---
 src/glsl/ir.h                 | 8 ++++++++
 src/glsl/ir_print_visitor.cpp | 3 +++
 src/glsl/ir_print_visitor.h   | 3 ---
 3 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/src/glsl/ir.h b/src/glsl/ir.h
index 9442681..1f0dc09 100644
--- a/src/glsl/ir.h
+++ b/src/glsl/ir.h
@@ -2052,6 +2052,14 @@ extern char *
 prototype_string(const glsl_type *return_type, const char *name,
 		 exec_list *parameters);
 
+extern "C" {
 #endif /* __cplusplus */
 
+extern void _mesa_print_ir(struct exec_list *instructions,
+                           struct _mesa_glsl_parse_state *state);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
 #endif /* IR_H */
diff --git a/src/glsl/ir_print_visitor.cpp b/src/glsl/ir_print_visitor.cpp
index f01019c..ca973a5 100644
--- a/src/glsl/ir_print_visitor.cpp
+++ b/src/glsl/ir_print_visitor.cpp
@@ -38,6 +38,7 @@ ir_instruction::print(void) const
    deconsted->accept(&v);
 }
 
+extern "C" {
 void
 _mesa_print_ir(exec_list *instructions,
 	       struct _mesa_glsl_parse_state *state)
@@ -69,6 +70,8 @@ _mesa_print_ir(exec_list *instructions,
    printf("\n)");
 }
 
+} /* extern "C" */
+
 ir_print_visitor::ir_print_visitor()
 {
    indentation = 0;
diff --git a/src/glsl/ir_print_visitor.h b/src/glsl/ir_print_visitor.h
index 6c308f3..a84056d 100644
--- a/src/glsl/ir_print_visitor.h
+++ b/src/glsl/ir_print_visitor.h
@@ -33,9 +33,6 @@ extern "C" {
 #include "program/symbol_table.h"
 }
 
-extern void _mesa_print_ir(exec_list *instructions,
-			   struct _mesa_glsl_parse_state *state);
-
 /**
  * Abstract base class of visitors of IR instruction trees
  */
-- 
1.8.3.rc0



More information about the mesa-dev mailing list