[Mesa-dev] [PATCH 4/6] ir_to_mesa: Move some things outside the 'extern "C"' blocks
Ian Romanick
idr at freedesktop.org
Fri Oct 7 17:06:50 PDT 2011
From: Ian Romanick <ian.d.romanick at intel.com>
Having a few of these includes or forward declarations inside the
'extern "C"' block can cause problems later. Specifically, it
prevents C++ linkage functions from being added to ir_to_mesa.h and
makes G++ angry if 'struct foo' is seen both inside and outside an
'extern "C"'.
Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
---
src/glsl/ir_clone.cpp | 2 --
src/glsl/ir_print_visitor.cpp | 3 ---
src/glsl/ir_set_program_inouts.cpp | 2 --
src/mesa/program/ir_to_mesa.cpp | 7 ++++---
src/mesa/program/ir_to_mesa.h | 8 ++++----
src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 7 ++++---
6 files changed, 12 insertions(+), 17 deletions(-)
diff --git a/src/glsl/ir_clone.cpp b/src/glsl/ir_clone.cpp
index c1befa9..9adf470 100644
--- a/src/glsl/ir_clone.cpp
+++ b/src/glsl/ir_clone.cpp
@@ -25,9 +25,7 @@
#include "main/compiler.h"
#include "ir.h"
#include "glsl_types.h"
-extern "C" {
#include "program/hash_table.h"
-}
/**
* Duplicate an IR variable
diff --git a/src/glsl/ir_print_visitor.cpp b/src/glsl/ir_print_visitor.cpp
index ea78582..b713bd0 100644
--- a/src/glsl/ir_print_visitor.cpp
+++ b/src/glsl/ir_print_visitor.cpp
@@ -24,10 +24,7 @@
#include "ir_print_visitor.h"
#include "glsl_types.h"
#include "glsl_parser_extras.h"
-
-extern "C" {
#include "program/hash_table.h"
-}
static void print_type(const glsl_type *t);
diff --git a/src/glsl/ir_set_program_inouts.cpp b/src/glsl/ir_set_program_inouts.cpp
index 3b10b90..ae3ef74 100644
--- a/src/glsl/ir_set_program_inouts.cpp
+++ b/src/glsl/ir_set_program_inouts.cpp
@@ -34,10 +34,8 @@
* from the GLSL IR.
*/
-extern "C" {
#include "main/core.h" /* for struct gl_program */
#include "program/hash_table.h"
-}
#include "ir.h"
#include "ir_visitor.h"
#include "glsl_types.h"
diff --git a/src/mesa/program/ir_to_mesa.cpp b/src/mesa/program/ir_to_mesa.cpp
index 5be44bc..8330bc5 100644
--- a/src/mesa/program/ir_to_mesa.cpp
+++ b/src/mesa/program/ir_to_mesa.cpp
@@ -41,12 +41,13 @@
#include "ir_optimization.h"
#include "ast.h"
-extern "C" {
#include "main/mtypes.h"
-#include "main/shaderapi.h"
#include "main/shaderobj.h"
-#include "main/uniforms.h"
#include "program/hash_table.h"
+
+extern "C" {
+#include "main/shaderapi.h"
+#include "main/uniforms.h"
#include "program/prog_instruction.h"
#include "program/prog_optimize.h"
#include "program/prog_print.h"
diff --git a/src/mesa/program/ir_to_mesa.h b/src/mesa/program/ir_to_mesa.h
index 7410e14..5649282 100644
--- a/src/mesa/program/ir_to_mesa.h
+++ b/src/mesa/program/ir_to_mesa.h
@@ -21,16 +21,16 @@
* DEALINGS IN THE SOFTWARE.
*/
-#ifdef __cplusplus
-extern "C" {
-#endif
-
#include "main/glheader.h"
struct gl_context;
struct gl_shader;
struct gl_shader_program;
+#ifdef __cplusplus
+extern "C" {
+#endif
+
void _mesa_glsl_compile_shader(struct gl_context *ctx, struct gl_shader *sh);
void _mesa_glsl_link_shader(struct gl_context *ctx, struct gl_shader_program *prog);
GLboolean _mesa_ir_compile_shader(struct gl_context *ctx, struct gl_shader *shader);
diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
index fe65ae5..c5b816c 100644
--- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
+++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
@@ -42,12 +42,13 @@
#include "ir_optimization.h"
#include "ast.h"
-extern "C" {
#include "main/mtypes.h"
-#include "main/shaderapi.h"
#include "main/shaderobj.h"
-#include "main/uniforms.h"
#include "program/hash_table.h"
+
+extern "C" {
+#include "main/shaderapi.h"
+#include "main/uniforms.h"
#include "program/prog_instruction.h"
#include "program/prog_optimize.h"
#include "program/prog_print.h"
--
1.7.6
More information about the mesa-dev
mailing list