[Patch, fortran] PR44265 - Link error with reference to parameter array in specification expression

Andre Vehreschild vehre@gmx.de
Wed Dec 7 21:51:00 GMT 2016


Hi Paul,

When you can narrow it down to only failing on Darwin, then filter the testcases not to run on that system.

- Andre

Am 7. Dezember 2016 22:44:15 MEZ, schrieb Paul Richard Thomas <paul.richard.thomas@gmail.com>:
>Dear Dominique,
>
>Thanks for the feedback. However, I don't know what to do about it.
>Perhaps I should commit the patch without char_result_[16,17].f90 and
>pass it on to somebody who is a bit more conversent with these issues?
>As far as I am concerned, it is fixed on Linux.
>
>Any ideas anybody?
>
>Paul
>
>On 7 December 2016 at 20:11, Dominique d'Humières <dominiq@lps.ens.fr>
>wrote:
>> The tests gfortran.dg/char_result_16.f90 and
>gfortran.dg/char_result_17.f90 fail with
>>
>> lto1: error: two or more sections for
>.gnu.lto___get_PROC_names.3e3ee55b08747e7c
>> lto1: internal compiler error: cannot read LTO decls from
>/var/folders/8q/sh_swgz96r7f5vnn08f7fxr00000gn/T//ccEJosbA.o
>>
>> This may be darwin specific as the linker is more picky than the
>linux one.
>>
>> Dominique
>>
>>> Le 7 déc. 2016 à 16:47, Paul Richard Thomas
><paul.richard.thomas@gmail.com> a écrit :
>>>
>>> Dear Dominique,
>>>
>>> I will turn to the effect on PR77414 after committing the patch for
>PR44265.
>>>
>>> The attached fixes the -flto problem. The chunk in
>>> trans-decl.c(gfc_finish_var_decl) did the job. It is quite obvious
>now
>>> and, in fact, I am a bit surprised that the patch worked at all
>>> without the DECL_EXTERNAL.
>>>
>>> Bootstraps and regtests on FC21/x86_64 - OK for trunk?
>>>
>>> Paul
>>>
>>> 2016-12-07  Paul Thomas  <pault@gcc.gnu.org>
>>>
>>>    PR fortran/44265
>>>    * gfortran.h : Add fn_result_spec bitfield to gfc_symbol.
>>>    * resolve.c (flag_fn_result_spec): New function.
>>>    (resolve_fntype): Call it for character result lengths.
>>>    * symbol.c (gfc_new_symbol): Set fn_result_spec to zero.
>>>    * trans-decl.c (gfc_sym_mangled_identifier): Include the
>>>    procedure name in the mangled name for symbols with the
>>>    fn_result_spec bit set.
>>>    (gfc_finish_var_decl): Mark the decls of these symbols
>>>    appropriately for the case where the function is external.
>>>    (gfc_get_symbol_decl): Mangle the name of these symbols.
>>>    (gfc_create_module_variable): Allow them through the assert.
>>>    (gfc_generate_function_code): Remove the assert before the
>>>    initialization of sym->tlink because the frontend no longer
>>>    uses this field.
>>>    * trans-expr.c (gfc_map_intrinsic_function): Add a case to
>>>    treat the LEN_TRIM intrinsic.
>>>
>>> 2016-12-07  Paul Thomas  <pault@gcc.gnu.org>
>>>
>>>    PR fortran/44265
>>>    * gfortran.dg/char_result_14.f90: New test.
>>>    * gfortran.dg/char_result_15.f90: New test.
>>>    * gfortran.dg/char_result_16.f90: New test.
>>>    * gfortran.dg/char_result_17.f90: New test.
>>>
>>>
>>

-- 
Andre Vehreschild * Kreuzherrenstr. 8 * 52062 Aachen
Tel.: +49 241 929 10 18 * vehre@gmx.de



More information about the Gcc-patches mailing list