This is the mail archive of the fortran@gcc.gnu.org mailing list for the GNU Fortran project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
Hi all, unfortunately triggered this patch a regression in the opencoarray's testsuite, which also occurs outside of opencoarray, when a caf-function is used in a block in the main-program. This patch fixes the error and adds a testcase. Bootstrapped and regtested ok on x86_64-linux/f25. Ok for trunk? Regards, Andre On Wed, 18 Jan 2017 19:35:59 +0100 Andre Vehreschild <vehre@gmx.de> wrote: > Hi Jerry, > > thanks for the fast review. Committed as r244587. > > Regards, > Andre > > On Wed, 18 Jan 2017 09:38:40 -0800 > Jerry DeLisle <jvdelisle@charter.net> wrote: > > > On 01/18/2017 04:26 AM, Andre Vehreschild wrote: > > > Hi all, > > > > > > the patch I proposed for this pr unfortunately did not catch all errors. > > > Dominique figured, that the original testcase was not resolved (thanks for > > > that). > > > > > > This patch resolves the linker problem by putting the static token into > > > the parent function's decl list. Furthermore does the patch beautify the > > > retrieval of the symbol in gfc_get_tree_for_caf_expr () and remove the > > > following assert which is unnecessary then, because the symbol is either > > > already present or created. And gfc_get_symbol_decl () can not return > > > NULL. > > > > > > Bootstrapped and regtested ok on x86_64-linux/f25 and x86-linux/f25 for > > > trunk. Bootstrapped and regtested ok on x86_64-linux/f25 for gcc-6 > > > (x86-linux has not been tested, because the VM is not that fast). > > > > > > Ok for trunk and gcc-6? > > > > > > Regards, > > > Andre > > > > > > > This one is OK, thanks. > > > > Jerry > > -- Andre Vehreschild * Email: vehre ad gmx dot de
Attachment:
pr70696_v3.clog
Description: Text document
diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c
index 51c23e8..5d246cd 100644
--- a/gcc/fortran/trans-decl.c
+++ b/gcc/fortran/trans-decl.c
@@ -971,7 +971,9 @@ gfc_build_qualified_array (tree decl, gfc_symbol * sym)
DECL_CONTEXT (token) = sym->ns->proc_name->backend_decl;
gfc_module_add_decl (cur_module, token);
}
- else if (sym->attr.host_assoc)
+ else if (sym->attr.host_assoc
+ && TREE_CODE (DECL_CONTEXT (current_function_decl))
+ != TRANSLATION_UNIT_DECL)
gfc_add_decl_to_parent_function (token);
else
gfc_add_decl_to_function (token);
diff --git a/gcc/testsuite/gfortran.dg/coarray_43.f90 b/gcc/testsuite/gfortran.dg/coarray_43.f90
new file mode 100644
index 0000000..d5ee4e1
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/coarray_43.f90
@@ -0,0 +1,13 @@
+! { dg-do link }
+! { dg-options "-fcoarray=lib -lcaf_single" }
+
+program coarray_43
+ implicit none
+ integer, parameter :: STR_LEN = 50
+ character(len=STR_LEN) :: str[*]
+ integer :: pos
+ write(str,"(2(a,i2))") "Greetings from image ",this_image()," of ",num_images()
+ block
+ pos = scan(str[5], set="123456789")
+ end block
+end program
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |