From 2c710161c45be83c13b120296ad13f5c9836e614 Mon Sep 17 00:00:00 2001
From: Christophe Geuzaine <cgeuzaine@ulg.ac.be>
Date: Wed, 15 Aug 2001 11:49:29 +0000
Subject: [PATCH] gcc 2.95 is still buggy...

---
 Makefile                   | 13 +++++++++++--
 Mesh/3D_Extrude.cpp        | 17 ++++++++---------
 benchmarks/3d/ellipsis.geo |  2 ++
 3 files changed, 21 insertions(+), 11 deletions(-)

diff --git a/Makefile b/Makefile
index 02ff182db6..0cbec3d862 100644
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,4 @@
-# $Id: Makefile,v 1.131 2001-08-15 10:03:33 geuzaine Exp $
+# $Id: Makefile,v 1.132 2001-08-15 11:49:29 geuzaine Exp $
 
 GMSH_RELEASE = 1.23
 
@@ -259,7 +259,7 @@ link_linux:
 linux: tag compile_linux link_linux strip_bin
 
 #
-# Linux, gcc-2.95.x
+# Linux, gcc-2.95.x (optimized build is still buggy)
 # 
 compile_linux_gcc-2.95:
 	@for i in $(GMSH_FLTK_DIR); do (cd $$i && $(MAKE) \
@@ -270,6 +270,15 @@ compile_linux_gcc-2.95:
            "GL_INCLUDE=-I/usr/X11R6/include" \
            "GUI_INCLUDE=-I$(HOME)/SOURCES/fltk" \
         ); done
+	rm -f Mesh/3D_Extrude.o
+	@for i in $(GMSH_FLTK_DIR); do (cd $$i && $(MAKE) \
+           "CC=$(HOME)/gcc-2.95.3/bin/g++" \
+           "C_FLAGS=-O0" \
+           "OS_FLAGS=-D_LITTLE_ENDIAN" \
+           "VERSION_FLAGS=-D_FLTK" \
+           "GL_INCLUDE=-I/usr/X11R6/include" \
+           "GUI_INCLUDE=-I$(HOME)/SOURCES/fltk" \
+        ); done
 link_linux_gcc-2.95:
 	$(HOME)/gcc-2.95.3/bin/g++ -o $(GMSH_BIN_DIR)/gmsh $(GMSH_FLTK_LIB) $(OPENGL_LIB) \
                  -L$(HOME)/SOURCES/fltk/lib $(FLTK_LIB) -L/usr/X11R6/lib $(X11_LIB) -lm -ldl
diff --git a/Mesh/3D_Extrude.cpp b/Mesh/3D_Extrude.cpp
index b30fdedb8b..a12751d494 100644
--- a/Mesh/3D_Extrude.cpp
+++ b/Mesh/3D_Extrude.cpp
@@ -1,4 +1,4 @@
-// $Id: 3D_Extrude.cpp,v 1.35 2001-08-15 08:16:30 geuzaine Exp $
+// $Id: 3D_Extrude.cpp,v 1.36 2001-08-15 11:49:29 geuzaine Exp $
 
 #include "Gmsh.h"
 #include "Numeric.h"
@@ -748,9 +748,9 @@ void copy_mesh (Surface * from, Surface * to){
 }
 
 int Extrude_Mesh (Surface * s){
-  int i;
+  int i, j;
   Vertex *v1;
-  Curve *cc;
+  Curve *c;
   extern int FACE_DIMENSION;
 
   if (!s->Extrude || !s->Extrude->mesh.ExtrudeMesh) return false;
@@ -766,29 +766,28 @@ int Extrude_Mesh (Surface * s){
   ToAdd = s->Vertices;
 
   for (i = 0; i < List_Nbr (s->Generatrices); i++){
-    List_Read (s->Generatrices, i, &cc);
-    for (int j = 0; j < List_Nbr (cc->Vertices); j++){
-      List_Read (cc->Vertices, j, &v1);
+    List_Read (s->Generatrices, i, &c);
+    for (j = 0; j < List_Nbr (c->Vertices); j++){
+      List_Read (c->Vertices, j, &v1);
       Tree_Insert (Vertex_Bound, &v1);
     }
   }
   if (ep->geo.Mode == EXTRUDED_ENTITY){
-    Curve *c = FindCurve (abs(ep->geo.Source), THEM);
+    c = FindCurve (abs(ep->geo.Source), THEM);
     if (!c) return false;
     for (i = 0; i < List_Nbr (c->Vertices); i++){
       List_Read (c->Vertices, i, &v1);
       Extrude_Vertex (&v1, NULL);
     }
     Extrude_Curve (&c, NULL);
-    return true;
   }
   else{
     Surface *ss = FindSurface (ep->geo.Source, THEM);
     if (!ss) return false;
     copy_mesh (ss, s);
-    return true;
   }
 
+  return true;
 }
 
 static Tree_T* tmp;
diff --git a/benchmarks/3d/ellipsis.geo b/benchmarks/3d/ellipsis.geo
index eb0fb39102..2b14017c23 100644
--- a/benchmarks/3d/ellipsis.geo
+++ b/benchmarks/3d/ellipsis.geo
@@ -35,3 +35,5 @@ Line Loop(25) = {-12,-4,8};
 Ruled Surface(26) = {25};
 Line Loop(27) = {-6,2,10};
 Ruled Surface(28) = {27};
+Surface Loop(29) = {26,24,22,28,14,16,18,20};
+Volume(30) = {29};
-- 
GitLab