public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug fortran/41389] New: problem compiling file
@ 2009-09-17 17:05 clerman at fuse dot net
2009-09-17 20:08 ` [Bug fortran/41389] " dominiq at lps dot ens dot fr
` (4 more replies)
0 siblings, 5 replies; 6+ messages in thread
From: clerman at fuse dot net @ 2009-09-17 17:05 UTC (permalink / raw)
To: gcc-bugs
to the gfortran development team,
Here is a file that I am trying to compile:
module exceptions
! Purpose: module for the program-wide exceptions
! Author: N. S. Clerman
! Notes:
! =====
! N. S. Clerman, 5 Sept. 2009: there is a problem here. Calls are made to
Set_flag, which is not pure. No procedure that
! invokes it can be pure. I need to check the Fortran exception handling to
see what happens. (I would think that not
! the case.) The exceptions themselves -- exception_array -- are private, so
I think I could potentially be calling
! this simultaneously from more than one thread, but how do I handle the case
where one thread is setting the flag to
! SIGNALLING and another to QUIET?
implicit none
private
public :: Get_flag, Set_flag
! public :: UNKNOWN_INDEX, BAD_YEAR_INDEX, BAD_MONTH_INDEX, BAD_DAY_INDEX,
BAD_DATE_INDEX
! public :: READ_ERROR_INDEX, FILE_OPEN_ERROR_INDEX, BAD_PRICE_INDEX,
BAD_NO_OF_SHARES_INDEX
! public :: BAD_TRANSACTION_INDEX, UNOPENED_PORTFOLIO_INDEX,
EMPTY_PORTFOLIO_INDEX
! public :: PORTFOLIO_OPENED_INDEX, BAD_PORTFOLIO_NAME_INDEX
! public :: LAST_INDEX, ALLOCATION_ERROR_INDEX
logical, public, parameter :: QUIET = .false., SIGNALLING = .true.
type, public :: exception_t
logical :: flag = QUIET
end type exception_t
type, private :: exception_flag_t
integer :: flag_index
end type exception_flag_t
enum, bind(c)
enumerator :: UNKNOWN_INDEX, BAD_YEAR_INDEX, BAD_MONTH_INDEX,
BAD_DAY_INDEX, BAD_DATE_INDEX , &
READ_ERROR_INDEX, FILE_OPEN_ERROR_INDEX, BAD_PRICE_INDEX,
BAD_NO_OF_SHARES_INDEX, &
BAD_TRANSACTION_INDEX, UNOPENED_PORTFOLIO_INDEX,
EMPTY_PORTFOLIO_INDEX, &
PORTFOLIO_OPENED_INDEX, BAD_PORTFOLIO_NAME_INDEX,
ALLOCATION_ERROR_INDEX, EMPTY_INVESTOR_INDEX, &
LAST_INDEX
end enum
! UNKNOWN_FLAG -
! BAD_YEAR_FLAG - year is out of exceptable range
! BAD_MONTH_FLAG - month is out of range
! BAD_DAY_FLAG - day is out of range
! BAD_DATE_FLAG - date is out of range
! READ_ERROR_FLAG - problem reading with read statement
! FILE_OPEN_ERROR_FLAG - problem opening a file with the open statement.
! BAD_PRICE_FLAG - negative price
! BAD_NO_OF_SHARES_FLAG -
! BAD_TRANSACTION_FLAG -
!
type (exception_flag_t), public, parameter :: &
UNKNOWN_FLAG = exception_flag_t (UNKNOWN_INDEX), &
BAD_YEAR_FLAG = exception_flag_t (BAD_YEAR_INDEX), &
BAD_MONTH_FLAG = exception_flag_t (BAD_MONTH_INDEX), &
BAD_DAY_FLAG = exception_flag_t (BAD_DAY_INDEX), &
BAD_DATE_FLAG = exception_flag_t (BAD_DATE_INDEX), &
READ_ERROR_FLAG = exception_flag_t (READ_ERROR_INDEX), &
FILE_OPEN_ERROR_FLAG = exception_flag_t (FILE_OPEN_ERROR_INDEX), &
BAD_PRICE_FLAG = exception_flag_t (BAD_PRICE_INDEX), &
BAD_NO_OF_SHARES_FLAG = exception_flag_t (BAD_NO_OF_SHARES_INDEX), &
BAD_TRANSACTION_FLAG = exception_flag_t (BAD_TRANSACTION_INDEX), &
EMPTY_PORTFOLIO_FLAG = exception_flag_t (EMPTY_PORTFOLIO_INDEX), &
PORTFOLIO_OPENED_FLAG = exception_flag_t (PORTFOLIO_OPENED_INDEX), &
BAD_PORTFOLIO_NAME_FLAG = exception_flag_t (BAD_PORTFOLIO_NAME_INDEX), &
ALLOCATION_ERROR_FLAG = exception_flag_t (ALLOCATION_ERROR_INDEX), &
EMPTY_INVESTOR_FLAG = exception_flag_t (EMPTY_INVESTOR_INDEX)
type (exception_t), save :: exception_array(0: LAST_INDEX - 1)
contains
elemental function Get_flag (flag_) result (return_value)
type (exception_flag_t), intent (in) :: flag_
logical :: return_value
if (lbound (exception_array, dim = 1) <= flag_% flag_index .and. flag_%
flag_index <= ubound (exception_array, dim = 1) ) &
return_value = exception_array (flag_% flag_index) % flag
end function Get_flag
subroutine Set_flag (flag_, passed_value_)
type (exception_flag_t), intent (in) :: flag_
logical, intent (in) :: passed_value_
if (lbound (exception_array, dim = 1) <= flag_% flag_index .and. flag_%
flag_index <= ubound (exception_array, dim = 1) ) &
exception_array(flag_% flag_index) = exception_t (passed_value_)
end subroutine Set_flag
end module exceptions
here is the output of the compilaton:
norm@oxford:~/allocator> cat exceptions.gfortran.xyz
Using built-in specs.
Target: x86_64-unknown-linux-gnu
Configured with: /home/tob/projects/gcc-trunk-checkout/configure
--with-gmp-lib=/home/tob/projects/gcc-build/lib-aux
--with-mpfr-lib=/home/tob/projects/gcc-build/lib-aux
--with-mpc-lib=/home/tob/projects/gcc-build/lib-aux
--enable-languages=c,fortran,c++ --prefix=/projects/tob/gcc-trunk
Thread model: posix
gcc version 4.5.0 20090917 (experimental) [trunk revision 151786] (GCC)
COLLECT_GCC_OPTIONS='-c' '-g' '-Wall' '-std=f2003' '-O0' '-v' '-mtune=generic'
/opt/gfortran/gcc-trunk/bin/../libexec/gcc/x86_64-unknown-linux-gnu/4.5.0/f951
exceptionsM.f90 -quiet -dumpbase exceptionsM.f90 -mtune=generic -auxbase
exceptionsM -g -O0 -Wall -std=f2003 -version -fintrinsic-modules-path
/opt/gfortran/gcc-trunk/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.5.0/finclude
-o /tmp/ccvPWckV.s
GNU Fortran (GCC) version 4.5.0 20090917 (experimental) [trunk revision 151786]
(x86_64-unknown-linux-gnu)
compiled by GNU C version 4.5.0 20090917 (experimental) [trunk revision
151786], GMP version 4.3.1, MPFR version 2.4.1-p5, MPC version 0.6
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
GNU Fortran (GCC) version 4.5.0 20090917 (experimental) [trunk revision 151786]
(x86_64-unknown-linux-gnu)
compiled by GNU C version 4.5.0 20090917 (experimental) [trunk revision
151786], GMP version 4.3.1, MPFR version 2.4.1-p5, MPC version 0.6
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
COLLECT_GCC_OPTIONS='-c' '-g' '-Wall' '-std=f2003' '-O0' '-v' '-mtune=generic'
as -V -Qy -o exceptionsM.o /tmp/ccvPWckV.s
GNU assembler version 2.19 (x86_64-suse-linux) using BFD version (GNU Binutils;
openSUSE 11.1) 2.19
/tmp/ccvPWckV.s: Assembler messages:
/tmp/ccvPWckV.s:133: Error: unknown .loc sub-directive `discriminator'
/tmp/ccvPWckV.s:133: Error: junk at end of line, first unrecognized character
is `1'
/tmp/ccvPWckV.s:136: Error: unknown .loc sub-directive `discriminator'
/tmp/ccvPWckV.s:136: Error: junk at end of line, first unrecognized character
is `1'
/tmp/ccvPWckV.s:140: Error: unknown .loc sub-directive `discriminator'
/tmp/ccvPWckV.s:140: Error: junk at end of line, first unrecognized character
is `2'
/tmp/ccvPWckV.s:143: Error: unknown .loc sub-directive `discriminator'
/tmp/ccvPWckV.s:143: Error: junk at end of line, first unrecognized character
is `2'
/tmp/ccvPWckV.s:145: Error: unknown .loc sub-directive `discriminator'
/tmp/ccvPWckV.s:145: Error: junk at end of line, first unrecognized character
is `2'
/tmp/ccvPWckV.s:148: Error: unknown .loc sub-directive `discriminator'
/tmp/ccvPWckV.s:148: Error: junk at end of line, first unrecognized character
is `2'
/tmp/ccvPWckV.s:181: Error: unknown .loc sub-directive `discriminator'
/tmp/ccvPWckV.s:181: Error: junk at end of line, first unrecognized character
is `1'
/tmp/ccvPWckV.s:184: Error: unknown .loc sub-directive `discriminator'
/tmp/ccvPWckV.s:184: Error: junk at end of line, first unrecognized character
is `1'
/tmp/ccvPWckV.s:187: Error: unknown .loc sub-directive `discriminator'
/tmp/ccvPWckV.s:187: Error: junk at end of line, first unrecognized character
is `2'
/tmp/ccvPWckV.s:190: Error: unknown .loc sub-directive `discriminator'
/tmp/ccvPWckV.s:190: Error: junk at end of line, first unrecognized character
is `2'
I'm afraid I cannot interpret this problem. Perhaps I am using the incorrect
flags, but they are the same that I am using to compile files that are far
longer and more complicated. (Both version 5.2 of the nag compiler and version
11.1 of the Intel compiler are able to successfully compile this file.)
Yours truly,
Norm
Norm Clerman
--
Summary: problem compiling file
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: clerman at fuse dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41389
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug fortran/41389] problem compiling file
2009-09-17 17:05 [Bug fortran/41389] New: problem compiling file clerman at fuse dot net
@ 2009-09-17 20:08 ` dominiq at lps dot ens dot fr
2009-09-18 8:38 ` rguenth at gcc dot gnu dot org
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: dominiq at lps dot ens dot fr @ 2009-09-17 20:08 UTC (permalink / raw)
To: gcc-bugs
------- Comment #1 from dominiq at lps dot ens dot fr 2009-09-17 20:08 -------
4.2.4 gives
pr41389.f90:19.20:
public :: Get_flag, Set_flag
1
Error: 'flag_' is of a PRIVATE type and cannot be a dummy argument of
'get_flag', which is PUBLIC at (1)
probably a bug fixed since then, but the code compiles for me
(i686-apple-darwin9) with 4.3.4, 4.4.1 and trunk revision 151771.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41389
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug fortran/41389] problem compiling file
2009-09-17 17:05 [Bug fortran/41389] New: problem compiling file clerman at fuse dot net
2009-09-17 20:08 ` [Bug fortran/41389] " dominiq at lps dot ens dot fr
@ 2009-09-18 8:38 ` rguenth at gcc dot gnu dot org
2009-09-20 21:02 ` pinskia at gcc dot gnu dot org
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2009-09-18 8:38 UTC (permalink / raw)
To: gcc-bugs
------- Comment #2 from rguenth at gcc dot gnu dot org 2009-09-18 08:37 -------
You are getting assembler errors because it doesn't understand CFI directives.
You can use -fno-dwarf2-cfi-asm to work around the issue or update the
binutils package to something more recent.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41389
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug fortran/41389] problem compiling file
2009-09-17 17:05 [Bug fortran/41389] New: problem compiling file clerman at fuse dot net
2009-09-17 20:08 ` [Bug fortran/41389] " dominiq at lps dot ens dot fr
2009-09-18 8:38 ` rguenth at gcc dot gnu dot org
@ 2009-09-20 21:02 ` pinskia at gcc dot gnu dot org
2009-09-20 23:28 ` clerman at fuse dot net
2009-09-21 7:45 ` burnus at gcc dot gnu dot org
4 siblings, 0 replies; 6+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2009-09-20 21:02 UTC (permalink / raw)
To: gcc-bugs
------- Comment #3 from pinskia at gcc dot gnu dot org 2009-09-20 21:02 -------
You are using a gfortran binary which was compiled for use with a newer version
of binutils than you have. You should either install a newer version of
binutils or compile gfotran yourself.
--
pinskia at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
Resolution| |INVALID
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41389
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug fortran/41389] problem compiling file
2009-09-17 17:05 [Bug fortran/41389] New: problem compiling file clerman at fuse dot net
` (2 preceding siblings ...)
2009-09-20 21:02 ` pinskia at gcc dot gnu dot org
@ 2009-09-20 23:28 ` clerman at fuse dot net
2009-09-21 7:45 ` burnus at gcc dot gnu dot org
4 siblings, 0 replies; 6+ messages in thread
From: clerman at fuse dot net @ 2009-09-20 23:28 UTC (permalink / raw)
To: gcc-bugs
------- Comment #4 from clerman at fuse dot net 2009-09-20 23:28 -------
Subject: Re: problem compiling file
Thank you for your response. I would appreciate very much if you could you
please supply me with a web site and the name of the particular version of
binutils.
Thanks for your assistance.
Yours truly,
Norm
Norman S. Clerman
---- pinskia at gcc dot gnu dot org <gcc-bugzilla@gcc.gnu.org> wrote:
>
>
> ------- Comment #3 from pinskia at gcc dot gnu dot org 2009-09-20 21:02 -------
> You are using a gfortran binary which was compiled for use with a newer version
> of binutils than you have. You should either install a newer version of
> binutils or compile gfotran yourself.
>
>
> --
>
> pinskia at gcc dot gnu dot org changed:
>
> What |Removed |Added
> ----------------------------------------------------------------------------
> Status|UNCONFIRMED |RESOLVED
> Resolution| |INVALID
>
>
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41389
>
> ------- You are receiving this mail because: -------
> You reported the bug, or are watching the reporter.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41389
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug fortran/41389] problem compiling file
2009-09-17 17:05 [Bug fortran/41389] New: problem compiling file clerman at fuse dot net
` (3 preceding siblings ...)
2009-09-20 23:28 ` clerman at fuse dot net
@ 2009-09-21 7:45 ` burnus at gcc dot gnu dot org
4 siblings, 0 replies; 6+ messages in thread
From: burnus at gcc dot gnu dot org @ 2009-09-21 7:45 UTC (permalink / raw)
To: gcc-bugs
------- Comment #5 from burnus at gcc dot gnu dot org 2009-09-21 07:45 -------
> Thank you for your response. I would appreciate very much if you could you
> please supply me with a web site and the name of the particular version of
> binutils.
The generic place is http://www.gnu.org/software/binutils/
However, as you are seemingly using openSUSE 11.1,
> GNU assembler version 2.19 (x86_64-suse-linux) using BFD version
> (GNU Binutils; openSUSE 11.1) 2.19
you can go to
http://software.opensuse.org/search?baseproject=openSUSE%3A11.1&p=1&q=binutils
and install the one from the "devel:gcc/openSUSE_11.1" repository.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41389
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2009-09-21 7:45 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-09-17 17:05 [Bug fortran/41389] New: problem compiling file clerman at fuse dot net
2009-09-17 20:08 ` [Bug fortran/41389] " dominiq at lps dot ens dot fr
2009-09-18 8:38 ` rguenth at gcc dot gnu dot org
2009-09-20 21:02 ` pinskia at gcc dot gnu dot org
2009-09-20 23:28 ` clerman at fuse dot net
2009-09-21 7:45 ` burnus at gcc dot gnu dot org
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).