diff options
author | Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | 2025-04-13 12:53:54 +0200 |
---|---|---|
committer | Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | 2025-04-13 12:53:54 +0200 |
commit | 962c3d69f189f6fa451153faf3ce261c50d23d5a (patch) | |
tree | 0fa63bcf31f60ede9b58fea7bd49c2e31901df74 /gcc | |
parent | 4b990a03bd4cd6cf13ae1b5ab6c965dadf404619 (diff) | |
download | gcc-962c3d69f189f6fa451153faf3ce261c50d23d5a.zip gcc-962c3d69f189f6fa451153faf3ce261c50d23d5a.tar.gz gcc-962c3d69f189f6fa451153faf3ce261c50d23d5a.tar.bz2 |
cobol: Avoid conflict with timespec_t in system headers [PR119217]
util.cc doesn't compile on Solaris:
/vol/gcc/src/hg/master/local/gcc/cobol/util.cc:2135:7: error: using typedef-name ‘timespec_t’ after ‘class’
2135 | class timespec_t {
| ^~~~~~~~~~
This happens because <time.h> declares timespec_t itself. In fact,
POSIX.1 reserves every *_t identifier, so this is benign.
To avoid the problem, this patch renames the cobol timespec_t to
cbl_timespec.
Bootstrapped without regressions on amd64-pc-solaris2.11,
sparcv9-sun-solaris2.11, and x86_64-pc-linux-gnu.
2025-04-08 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
gcc/cobol:
PR cobol/119217
* util.cc (class timespec_t): Rename to cbl_timespec.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/cobol/util.cc | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/gcc/cobol/util.cc b/gcc/cobol/util.cc index f7b89b8..f28fddf 100644 --- a/gcc/cobol/util.cc +++ b/gcc/cobol/util.cc @@ -2099,20 +2099,20 @@ cobol_fileline_set( const char line[] ) { return file.name; } -class timespec_t { +class cbl_timespec { struct timespec now; public: - timespec_t() { + cbl_timespec() { clock_gettime(CLOCK_MONOTONIC, &now); } double ns() const { return now.tv_sec * 1000000000 + now.tv_nsec; } - friend double operator-( const timespec_t& now, const timespec_t& then ); + friend double operator-( const cbl_timespec& now, const cbl_timespec& then ); }; double -operator-( const timespec_t& then, const timespec_t& now ) { +operator-( const cbl_timespec& then, const cbl_timespec& now ) { return (now.ns() - then.ns()) / 1000000000; } @@ -2125,11 +2125,11 @@ parse_file( const char filename[] ) parser_enter_file(filename); - timespec_t start; + cbl_timespec start; int erc = yyparse(); - timespec_t finish; + cbl_timespec finish; double dt = finish - start; parser_leave_file(); |