my program was generating a "Segmentation fault" and i finally narrowed down where it was occuring. i have developed a simple program below that re-creates the seg fault.

the seg fault occurs in the testLoop on the line "if ( clock() < $min_calc )". it does not seem to happen if i comment out the "const long double" line and replace "$min_calc" with "GLOB_min_calc_time".

can someone please either let me know why this is happening or if i have other errors in my code that are causing this?

i using FreeBSD 5.3 and GCC 4.1

thanks so much!

Code:`#include <iostream>`

#include <ctime>

bool testLoop ( int * const $calc_val );

long double GLOB_min_calc_time = 0;

int GLOB_min_secs = 5;

using namespace std;

int main( const int $argc, const char * $argv_arr[]){

int * $calc_val = new int;

*$calc_val = 2;

long double $clock_start = clock();

GLOB_min_calc_time = (long double)(clock() + (GLOB_min_secs * CLOCKS_PER_SEC)); //CLK_TCK

testLoop($calc_val);

long double $clock_end = clock();

cout << "calc_val: " << *$calc_val << endl;

cout << (long double)( $clock_end - $clock_start ) / (long double)CLOCKS_PER_SEC << " secs" << endl;

delete $calc_val;

return 0;

}

bool testLoop ( int * const $calc_val ){

const long double $min_calc = GLOB_min_calc_time;

*$calc_val = *$calc_val; //do some calculations

if ( clock() < $min_calc ){

testLoop($calc_val);

}

return true;

}