public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug fortran/40568]  New: F2008: C_SIZEOF is in the wrong scope
@ 2009-06-27 16:06 burnus at gcc dot gnu dot org
  2009-07-05  9:19 ` [Bug fortran/40568] " fxcoudert at gcc dot gnu dot org
                   ` (4 more replies)
  0 siblings, 5 replies; 8+ messages in thread
From: burnus at gcc dot gnu dot org @ 2009-06-27 16:06 UTC (permalink / raw)
  To: gcc-bugs

C_SIZEOF should be a function in ISO_C_BINDING, however, in gfortran it is a
normal intrinsic.

Expected:
- The USE statement works
- Using C_SIZEOF should give an error

use iso_c_binding, only: so => c_sizeof
implicit none
print *, c_sizeof(1)
end


-- 
           Summary: F2008: C_SIZEOF is in the wrong scope
           Product: gcc
           Version: 4.5.0
            Status: UNCONFIRMED
          Keywords: rejects-valid
          Severity: normal
          Priority: P3
         Component: fortran
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: burnus at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40568


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug fortran/40568] F2008: C_SIZEOF is in the wrong scope
  2009-06-27 16:06 [Bug fortran/40568] New: F2008: C_SIZEOF is in the wrong scope burnus at gcc dot gnu dot org
@ 2009-07-05  9:19 ` fxcoudert at gcc dot gnu dot org
  2009-12-13 16:20 ` [Bug fortran/40568] F2008: C_SIZEOF is in the wrong scope, rejected as initialization expression dfranke at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 8+ messages in thread
From: fxcoudert at gcc dot gnu dot org @ 2009-07-05  9:19 UTC (permalink / raw)
  To: gcc-bugs



-- 

fxcoudert at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
           Keywords|                            |accepts-invalid
   Last reconfirmed|0000-00-00 00:00:00         |2009-07-05 09:19:02
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40568


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug fortran/40568] F2008: C_SIZEOF is in the wrong scope, rejected as initialization expression
  2009-06-27 16:06 [Bug fortran/40568] New: F2008: C_SIZEOF is in the wrong scope burnus at gcc dot gnu dot org
  2009-07-05  9:19 ` [Bug fortran/40568] " fxcoudert at gcc dot gnu dot org
@ 2009-12-13 16:20 ` dfranke at gcc dot gnu dot org
  2010-05-02 15:21 ` dfranke at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 8+ messages in thread
From: dfranke at gcc dot gnu dot org @ 2009-12-13 16:20 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from dfranke at gcc dot gnu dot org  2009-12-13 16:19 -------
F2008 allows C_SIZEOF in initialization expressions:
The definition for "specification inquiry" is in Fortran 2008 (7.1.11
Specification expression):
"A speci\fcation inquiry is a reference to
(1) an intrinsic inquiry function,
[...]
(4) the function C_SIZEOF from the intrinsic module ISO C BINDING (15.2.3.7)"

Currently C_SIZEOF is rejected as init expression as it is not listed as valid
inquiry function, neither is CLASS_INQUIRY in intrinsic.c(add_functions) set.


-- 

dfranke at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |dfranke at gcc dot gnu dot
                   |                            |org
OtherBugsDependingO|                            |29962, 39627
              nThis|                            |
            Summary|F2008: C_SIZEOF is in the   |F2008: C_SIZEOF is in the
                   |wrong scope                 |wrong scope, rejected as
                   |                            |initialization expression


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40568


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug fortran/40568] F2008: C_SIZEOF is in the wrong scope, rejected as initialization expression
  2009-06-27 16:06 [Bug fortran/40568] New: F2008: C_SIZEOF is in the wrong scope burnus at gcc dot gnu dot org
  2009-07-05  9:19 ` [Bug fortran/40568] " fxcoudert at gcc dot gnu dot org
  2009-12-13 16:20 ` [Bug fortran/40568] F2008: C_SIZEOF is in the wrong scope, rejected as initialization expression dfranke at gcc dot gnu dot org
@ 2010-05-02 15:21 ` dfranke at gcc dot gnu dot org
  2010-05-09 18:11 ` dfranke at gcc dot gnu dot org
  2010-06-23 16:45 ` burnus at gcc dot gnu dot org
  4 siblings, 0 replies; 8+ messages in thread
From: dfranke at gcc dot gnu dot org @ 2010-05-02 15:21 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from dfranke at gcc dot gnu dot org  2010-05-02 15:21 -------
See also PR36437.


-- 

dfranke at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
OtherBugsDependingO|                            |32630
              nThis|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40568


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug fortran/40568] F2008: C_SIZEOF is in the wrong scope, rejected as initialization expression
  2009-06-27 16:06 [Bug fortran/40568] New: F2008: C_SIZEOF is in the wrong scope burnus at gcc dot gnu dot org
                   ` (2 preceding siblings ...)
  2010-05-02 15:21 ` dfranke at gcc dot gnu dot org
@ 2010-05-09 18:11 ` dfranke at gcc dot gnu dot org
  2010-06-23 16:45 ` burnus at gcc dot gnu dot org
  4 siblings, 0 replies; 8+ messages in thread
From: dfranke at gcc dot gnu dot org @ 2010-05-09 18:11 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from dfranke at gcc dot gnu dot org  2010-05-09 18:11 -------
Created an attachment (id=20612)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20612&action=view)
first steps to bring C_SIZEOF to the ISO_C_BINDING

Attached patch is a start only. Comments:
 * symbol.c (build_formal_args): wrong parameter generated, probably needs a
new gen_*_param function
 * on -std=f2003 there's only a linker error (undefined reference), no
F2008-only warning
 * simplification/translation needs to be hijacked from sizeof


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40568


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug fortran/40568] F2008: C_SIZEOF is in the wrong scope, rejected as initialization expression
  2009-06-27 16:06 [Bug fortran/40568] New: F2008: C_SIZEOF is in the wrong scope burnus at gcc dot gnu dot org
                   ` (3 preceding siblings ...)
  2010-05-09 18:11 ` dfranke at gcc dot gnu dot org
@ 2010-06-23 16:45 ` burnus at gcc dot gnu dot org
  4 siblings, 0 replies; 8+ messages in thread
From: burnus at gcc dot gnu dot org @ 2010-06-23 16:45 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from burnus at gcc dot gnu dot org  2010-06-23 16:45 -------
Cf. PR 40569 for two other module procedures of ISO_C_BINDING


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40568


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug fortran/40568] F2008: C_SIZEOF is in the wrong scope, rejected as initialization expression
       [not found] <bug-40568-4@http.gcc.gnu.org/bugzilla/>
  2010-09-26  6:08 ` burnus at gcc dot gnu.org
@ 2010-09-27 10:05 ` burnus at gcc dot gnu.org
  1 sibling, 0 replies; 8+ messages in thread
From: burnus at gcc dot gnu.org @ 2010-09-27 10:05 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40568

--- Comment #6 from Tobias Burnus <burnus at gcc dot gnu.org> 2010-09-26 22:30:52 UTC ---
Author: burnus
Date: Sun Sep 26 22:30:48 2010
New Revision: 164639

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=164639
Log:
2010-09-27  Tobias Burnus  <burnus@net-b.de>

        PR fortran/40569
        PR fortran/40568
        * intrinsic.h (gfc_simplify_compiler_options,
        gfc_simplify_compiler_version): New prototypes.
        * intrinsic.c (gfc_intrinsic_function_by_id,
        make_from_module): New functions.
        (gfc_find_function, gfc_find_subroutine, gfc_generic_intrinsic,
        gfc_specific_intrinsic): Don't return module intrinsics.
        (add_functions): Add compiler_options, compiler_version.
        (gfc_intrinsic_func_interface): Also lookup symbol by ISYM ID.
        * symbol.c (std_for_isocbinding_symbol): Add version check for
        NAMED_FUNCTIONS.
        * iso-fortran-env.def: Add compiler_options, compiler_version.
        * iso-c-binding.def: Add c_sizeof.
        * gfortran.h (gfc_intrinsic_sym): Add from_module:1.
        (iso_c_binding_symbol, iso_fortran_env_symbol): Add NAMED_FUNCTIONS.
        (gfc_intrinsic_function_by_id): New prototype.
        * module.c (create_intrinsic_function): New function.
        (import_iso_c_binding_module, use_iso_fortran_env_module): Use it.
        * trans-types.c (init_c_interop_kinds): Add NAMED_FUNCTIONS.
        * resolve.c (resolve_intrinsic): Try also to resolve intrinsics
        by ISYM ID.
        * simplify.c (gfc_simplify_compiler_options,
        gfc_simplify_compiler_version): New functions.

2010-09-27  Tobias Burnus  <burnus@net-b.de>

        PR fortran/40569
        PR fortran/40568
        * gfortran.dg/storage_size_2.f08: Fix test.
        * gfortran.dg/c_sizeof_1.f90: Fix test.
        * gfortran.dg/c_sizeof_2.f90: Update dg-error.
        * gfortran.dg/c_sizeof_3.f90: New.
        * gfortran.dg/c_sizeof_4.f90: New.
        * gfortran.dg/iso_c_binding_compiler_1.f90: New.
        * gfortran.dg/iso_c_binding_compiler_2.f90: New.


Added:
    trunk/gcc/testsuite/gfortran.dg/c_sizeof_3.f90
    trunk/gcc/testsuite/gfortran.dg/c_sizeof_4.f90
    trunk/gcc/testsuite/gfortran.dg/iso_c_binding_compiler_1.f90
    trunk/gcc/testsuite/gfortran.dg/iso_c_binding_compiler_2.f90
Modified:
    trunk/gcc/fortran/ChangeLog
    trunk/gcc/fortran/gfortran.h
    trunk/gcc/fortran/intrinsic.c
    trunk/gcc/fortran/intrinsic.h
    trunk/gcc/fortran/iso-c-binding.def
    trunk/gcc/fortran/iso-fortran-env.def
    trunk/gcc/fortran/module.c
    trunk/gcc/fortran/resolve.c
    trunk/gcc/fortran/simplify.c
    trunk/gcc/fortran/symbol.c
    trunk/gcc/fortran/trans-types.c
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/gfortran.dg/c_sizeof_1.f90
    trunk/gcc/testsuite/gfortran.dg/c_sizeof_2.f90
    trunk/gcc/testsuite/gfortran.dg/storage_size_2.f08


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [Bug fortran/40568] F2008: C_SIZEOF is in the wrong scope, rejected as initialization expression
       [not found] <bug-40568-4@http.gcc.gnu.org/bugzilla/>
@ 2010-09-26  6:08 ` burnus at gcc dot gnu.org
  2010-09-27 10:05 ` burnus at gcc dot gnu.org
  1 sibling, 0 replies; 8+ messages in thread
From: burnus at gcc dot gnu.org @ 2010-09-26  6:08 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40568

--- Comment #5 from Tobias Burnus <burnus at gcc dot gnu.org> 2010-09-25 22:42:38 UTC ---
Patch for the issue in comment 0:
http://gcc.gnu.org/ml/fortran/2010-09/msg00455.html

TODO: Issue mentioned in comment 1: C_SIZEOF in init expressions.


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2010-09-26 22:31 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-06-27 16:06 [Bug fortran/40568] New: F2008: C_SIZEOF is in the wrong scope burnus at gcc dot gnu dot org
2009-07-05  9:19 ` [Bug fortran/40568] " fxcoudert at gcc dot gnu dot org
2009-12-13 16:20 ` [Bug fortran/40568] F2008: C_SIZEOF is in the wrong scope, rejected as initialization expression dfranke at gcc dot gnu dot org
2010-05-02 15:21 ` dfranke at gcc dot gnu dot org
2010-05-09 18:11 ` dfranke at gcc dot gnu dot org
2010-06-23 16:45 ` burnus at gcc dot gnu dot org
     [not found] <bug-40568-4@http.gcc.gnu.org/bugzilla/>
2010-09-26  6:08 ` burnus at gcc dot gnu.org
2010-09-27 10:05 ` burnus at gcc dot gnu.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).