ChangeLog 42 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112
  1. 2015-07-16 Release Manager
  2. * GCC 5.2.0 released.
  3. 2015-06-24 Mikael Morin <mikael@gcc.gnu.org>
  4. PR fortran/66549
  5. * resolve.c (resolve_global_procedure): Don't save and restore
  6. OpenMP state around the call to gfc_resolve.
  7. (gfc_resolve): Save OpenMP state on entry and restore it on return.
  8. 2015-06-14 Thomas Koenig <tkoenig@gcc.gnu.org>
  9. PR fortran/66385
  10. Backport from trunk
  11. * frontend-passes.c (combine_array_constructor): Return early if
  12. inside a FORALL loop.
  13. 2015-06-14 Thomas Koenig <tkoenig@gcc.gnu.org>
  14. * intrinsic.texi: Change \leq to < in descrition of imaginary
  15. part in argument to log.
  16. 2015-06-11 Pierre-Marie de Rodat <derodat@adacore.com>
  17. * f95-lang.c (gfc_create_decls): Register the main translation unit
  18. through the new debug hook.
  19. 2015-06-08 Steven G. Kargl <kargl@gcc.gnu.org>
  20. PR fortran/66245
  21. * match.c (gfc_match_type_is, gfc_match_class_is): Check if the
  22. return type spec or derived type spec is validate.
  23. 2015-06-05 Steven G. Kargl <kargl@gcc.gnu.org>
  24. PR fortran/66347
  25. * resolve.c (apply_default_init_local): Do not dereference a NULL
  26. pointer.
  27. 2015-06-05 Russell Whitesides <russelldub@gmail.com>
  28. Steven G. Kargl <kargl@gcc.gnu.org>
  29. PR fortran/40958
  30. PR fortran/60780
  31. PR fortran/66377
  32. * module.c (load_equiv): Add check for loading duplicate EQUIVALENCEs
  33. from different modules. Eliminate the pruning of unused
  34. equivalence-objects
  35. 2015-06-02 Steven G. Kargl <kargl@gcc.gnu.org>
  36. PR fortran/66380
  37. * simplify.c (gfc_simplify_reshape): Convert assert into returning
  38. NULL, which triggers an error condition.
  39. 2015-05-29 Mikael Morin <mikael@gcc.gnu.org>
  40. PR fortran/66257
  41. * resolve.c (resolve_actual_arglist): Don't throw an error
  42. if the argument with procedure pointer component is not a variable.
  43. 2015-05-22 Jakub Jelinek <jakub@redhat.com>
  44. Backported from mainline
  45. 2015-05-19 Jakub Jelinek <jakub@redhat.com>
  46. PR middle-end/66199
  47. * trans-openmp.c (gfc_trans_omp_teams): Set OMP_TEAMS_COMBINED for
  48. combined constructs.
  49. (gfc_trans_omp_target): Make sure BIND_EXPR has non-NULL
  50. BIND_EXPR_BLOCK.
  51. 2015-05-19 Jerry DeLisle <jvdelisle@gcc.gnu.org>
  52. PR fortran/65903
  53. * io.c (format_lex): Change to NONSTRING when checking for
  54. possible doubled quote.
  55. * scanner.c (gfc_next_char_literal): Revert change from 64506
  56. and add a check for quotes and return.
  57. 2015-05-19 Steven G. Kargl <kargl@gcc.gnu.org>
  58. PR fortran/66106
  59. * interface.c(gfc_match_end_interface): Enforce F2008 C1202 (R1201).
  60. * match.c(gfc_op2string): Return 'none' for INTRINSIC_NONE.
  61. 2015-05-19 Steven G. Kargl <kargl@gcc.gnu.org>
  62. PR fortran/66057
  63. * decl.c(gfc_match_generic): Detected a malformed GENERIC statement.
  64. 2015-05-19 Steven G. Kargl <kargl@gcc.gnu.org>
  65. PR fortran/66052
  66. * decl.c(gfc_match_protected): Prevent dereference of NULL pointer.
  67. 2015-05-19 Steven G. Kargl <kargl@gcc.gnu.org>
  68. PR fortran/66045
  69. * expr.c (gfc_check_assign): Check for assignment of NULL() instead
  70. of the (intended) pointer assignment.
  71. 2015-05-19 Steven G. Kargl <kargl@gcc.gnu.org>
  72. PR fortran/66044
  73. * decl.c(gfc_match_entry): Change a gfc_internal_error() into
  74. a gfc_error()
  75. 2015-05-19 Steven G. Kargl <kargl@gcc.gnu.org>
  76. PR fortran/66043
  77. * check.c (gfc_check_storage_size): Prevent the direct use of NULL()
  78. in STORAGE_SIZE() reference.
  79. 2015-05-19 Steven G. Kargl <kargl@gcc.gnu.org>
  80. PR fortran/66040
  81. * parse.c(verify_st_order): Replace a gfc_internal_error with your
  82. generic gfc_error.
  83. 2015-05-19 Steven G. Kargl <kargl@gcc.gnu.org>
  84. PR fortran/66039
  85. * io.c (match_filepos): Check for incomplete/mangled REWIND, FLUSH,
  86. BACKSPACE, and ENDFILE statements
  87. 2015-05-19 Steven G. Kargl <kargl@gcc.gnu.org>
  88. PR fortran/64925
  89. * symbol.c(check_conflict): Check for a conflict between a dummy
  90. argument and an internal procedure name.
  91. 2015-05-02 Steven G. Kargl <kargl@gcc.gnu.org>
  92. PR fortran/65976
  93. * invoke.texi: Remove 'no-' in '-fno-fixed-form'
  94. 2015-04-22 Release Manager
  95. * GCC 5.1.0 released.
  96. 2015-04-22 Steven G. Kargl <kargl@gcc.gnu.org>
  97. PR fortran/65429
  98. * decl.c (add_init_expr_to_sym): Set the length type parameter.
  99. 2015-04-10 Tobias Burnus <burnus@net-b.de>
  100. * trans-stmt.c (gfc_trans_lock_unlock): Implement -fcoarray=lib
  101. version; reject not-yet-implemented variants.
  102. * trans-types.c (gfc_get_derived_type): For lock_type with
  103. -fcoarray=lib, use a void pointer as type.
  104. * trans.c (gfc_allocate_using_lib, gfc_allocate_allocatable):
  105. Handle lock_type with -fcoarray=lib.
  106. 2015-04-10 Mikael Morin <mikael@gcc.gnu.org>
  107. PR fortran/56674
  108. PR fortran/58813
  109. PR fortran/59016
  110. PR fortran/59024
  111. * symbol.c (save_symbol_data, gfc_save_symbol_data): Rename the
  112. former to the latter and make it non-static. Update callers.
  113. * gfortran.h (gfc_save_symbol_data): New prototype.
  114. * decl.c (gfc_match_decl_type_spec): Call 'gfc_save_symbol_data'
  115. before modifying symbols 'sym' and 'dt_sym'.
  116. 2013-04-09 Paul Thomas <pault@gcc.gnu.org>
  117. PR fortran/56852
  118. * primary.c (gfc_variable_attr): Avoid ICE on AR_UNKNOWN if any
  119. of the index variables are untyped and errors are present.
  120. 2015-04-07 Andre Vehreschild <vehre@gmx.de>
  121. PR fortran/65548
  122. * trans-stmt.c (gfc_trans_allocate): For intrinsic functions
  123. use conv_expr_descriptor() instead of conv_expr_reference().
  124. 2015-03-30 Jakub Jelinek <jakub@redhat.com>
  125. PR fortran/65597
  126. * trans-openmp.c (gfc_trans_omp_do): For !simple simd with explicit
  127. linear clause for the iterator set OMP_CLAUSE_LINEAR_NO_COPYIN.
  128. For implcitly added !simple OMP_CLAUSE_LINEAR set it too. Use step 1
  129. instead of the original step on the new iterator - count.
  130. 2015-03-25 Mikael Morin <mikael@gcc.gnu.org>
  131. PR fortran/64952
  132. PR fortran/65532
  133. * gfortran.h (struct gfc_namespace): New field 'types_resolved'.
  134. * resolve.c (resolve_types): Return early if field 'types_resolved'
  135. is set. Set 'types_resolved' at the end.
  136. 2015-03-24 Andre Vehreschild <vehre@gmx.de>
  137. PR fortran/55901
  138. * trans-expr.c (gfc_conv_structure): Fixed indendation.
  139. Using integer_zero_node now instead of explicitly
  140. constructing a integer constant zero node.
  141. (gfc_conv_derived_to_class): Add handling of _len component,
  142. i.e., when the rhs has a string_length then assign that to
  143. class' _len, else assign 0.
  144. (gfc_conv_intrinsic_to_class): Likewise.
  145. 2015-03-24 Andre Vehreschild <vehre@gmx.de>
  146. PR fortran/64787
  147. PR fortran/57456
  148. PR fortran/63230
  149. * class.c (gfc_add_component_ref): Free no longer needed
  150. ref-chains to prevent memory loss.
  151. (find_intrinsic_vtab): For deferred length char arrays or
  152. unlimited polymorphic objects, store the size in bytes of one
  153. character in the size component of the vtab.
  154. * gfortran.h: Added gfc_add_len_component () define.
  155. * trans-array.c (gfc_trans_create_temp_array): Switched to new
  156. function name for getting a class' vtab's field.
  157. (build_class_array_ref): Likewise.
  158. (gfc_array_init_size): Using the size information from allocate
  159. more consequently now, i.e., the typespec of the entity to
  160. allocate is no longer needed. This is to address the last open
  161. comment in PR fortran/57456.
  162. (gfc_array_allocate): Likewise.
  163. (structure_alloc_comps): gfc_copy_class_to_class () needs to
  164. know whether the class is unlimited polymorphic.
  165. * trans-array.h: Changed interface of gfc_array_allocate () to
  166. reflect the no longer needed typespec.
  167. * trans-expr.c (gfc_find_and_cut_at_last_class_ref): New.
  168. (gfc_reset_len): New.
  169. (gfc_get_class_array_ref): Switch to new function name for
  170. getting a class' vtab's field.
  171. (gfc_copy_class_to_class): Added flag to know whether the class
  172. to copy is unlimited polymorphic. Adding _len dependent code
  173. then, which calls ->vptr->copy () with four arguments adding
  174. the length information ->vptr->copy(from, to, from_len, to_cap).
  175. (gfc_conv_procedure_call): Switch to new function name for
  176. getting a class' vtab's field.
  177. (alloc_scalar_allocatable_for_assignment): Use the string_length
  178. as computed by gfc_conv_expr and not the statically backend_decl
  179. which may be incorrect when ref-ing.
  180. (gfc_trans_assignment_1): Use the string_length variable and
  181. not the rse.string_length. The former has been computed more
  182. generally.
  183. * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Switch to new
  184. function name for getting a class' vtab's field.
  185. (gfc_conv_intrinsic_storage_size): Likewise.
  186. (gfc_conv_intrinsic_transfer): Likewise.
  187. * trans-stmt.c (gfc_trans_allocate): Restructured to evaluate
  188. source=expr3 only once before the loop over the objects to
  189. allocate, when the objects are not arrays. Doing correct _len
  190. initialization and calling of vptr->copy () fixing PR 64787.
  191. (gfc_trans_deallocate): Reseting _len to 0, preventing future
  192. errors.
  193. * trans.c (gfc_build_array_ref): Switch to new function name
  194. for getting a class' vtab's field.
  195. (gfc_add_comp_finalizer_call): Likewise.
  196. * trans.h: Define the prototypes for the gfc_class_vtab_*_get ()
  197. and gfc_vptr_*_get () functions.
  198. Added gfc_find_and_cut_at_last_class_ref () and
  199. gfc_reset_len () routine prototype. Added flag to
  200. gfc_copy_class_to_class () prototype to signal an unlimited
  201. polymorphic entity to copy.
  202. 2015-03-24 Iain Sandoe <iain@codesourcery.com>
  203. Tobias Burnus <burnus@net-b.de>
  204. * gfortran.texi (_gfortran_caf_sync_memory): Improve wording.
  205. 2015-03-23 Paul Thomas <pault@gcc.gnu.org>
  206. Mikael Morin <mikael@gcc.gnu.org>
  207. PR fortran/64952
  208. * gfortran.h (struct symbol_attribute) : New field
  209. 'array_outer_dependency'.
  210. * trans.h (struct gfc_ss_info): New field 'array_outer_dependency'.
  211. * module.c (enum ab_attribute): New value AB_ARRAY_OUTER_DEPENDENCY.
  212. (attr_bits): Append same value to initializer.
  213. (mio_symbol_attribute): Handle 'array_outer_dependency' attr
  214. in module read and write.
  215. * resolve.c (update_current_proc_outer_array_dependency): New function.
  216. (resolve_function, resolve_call): Add code to update current procedure's
  217. 'array_outer_dependency' attribute.
  218. (resolve_variable): Mark current procedure with attribute
  219. array_outer_dependency if the variable is an array coming from outside
  220. the current namespace.
  221. (resolve_fl_procedure): Mark a procedure without body with attribute
  222. 'array_outer_dependency'.
  223. * trans-array.c (gfc_conv_resolve_dependencies): If any ss is
  224. marked as 'array_outer_dependency' generate a temporary.
  225. (gfc_walk_function_expr): If the function may reference external arrays,
  226. mark the head gfc_ss with flag 'array_outer_dependency'.
  227. 2015-03-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
  228. PR libgfortran/59513
  229. * gfortran.texi (Read/Write after EOF marker): New information.
  230. 2015-03-21 H.J. Lu <hongjiu.lu@intel.com>
  231. * gfortran.texi (_gfortran_caf_sync_memory): Put @{xxx} in one
  232. line.
  233. 2015-03-21 Tobias Burnus <burnus@net-b.de>
  234. * gfortran.texi (_gfortran_caf_sync_all, _gfortran_caf_sync_images,
  235. _gfortran_caf_sync_memory, _gfortran_caf_error_stop,
  236. _gfortran_caf_error_stop_str, _gfortran_caf_atomic_define,
  237. _gfortran_caf_atomic_ref, _gfortran_caf_atomic_cas,
  238. _gfortran_caf_atomic_op): New sections.
  239. 2015-03-21 Tobias Burnus <burnus@net-b.de>
  240. * trans-expr.c (gfc_get_tree_for_caf_expr): Reject unimplemented
  241. coindexed coarray accesses.
  242. 2015-03-17 Paul Thomas <pault@gcc.gnu.org>
  243. PR fortran/59198
  244. * trans-types.c (gfc_get_derived_type): If an abstract derived
  245. type with procedure pointer components has no other type of
  246. component, return the backend_decl. Otherwise build the
  247. components if any of the non-procedure pointer components have
  248. no backend_decl.
  249. 2015-03-16 Jerry DeLisle <jvdelisle@gcc.gnu.org>
  250. PR fortran/64432
  251. *trans-intrinisic.c (conv_intrinsic_system_clock): Check the
  252. smallest kind passed in user arguments and hardcode tesults for
  253. KIND=1 or KIND=2 to indicate no clock available.
  254. 2015-03-16 Andre Vehreschild <vehre@gmx.de>
  255. * resolve.c: Prevent segfault on illegal input.
  256. 2015-03-14 Mikael Morin <mikael@gcc.gnu.org>
  257. PR fortran/61138
  258. * trans-expr.c (gfc_trans_pointer_assignment): Clear DESCRIPTOR_ONLY
  259. field before reusing LSE.
  260. 2015-03-11 Janne Blomqvist <jb@gcc.gnu.org>
  261. PR libfortran/65200
  262. * gfortran.texi: Document behavior when opening files without
  263. explicit ACTION= specifier.
  264. 2015-03-10 Paul Thomas <pault@gcc.gnu.org>
  265. PR fortran/65024
  266. * trans-expr.c (gfc_conv_component_ref): If the component
  267. backend declaration is missing and the derived type symbol is
  268. available in the reference, call gfc_build_derived_type.
  269. 2015-03-10 Alessandro Fanfarillo <fanfarillo.gcc@gmail.com>
  270. Tobias Burnus <burnus@net-b.de>
  271. * trans.h (caf_sync_memory): New function decl tree.
  272. * trans-decl.c (gfc_build_builtin_function_decls): Define it.
  273. (create_main_function): Don't call sync_synchronize and leave
  274. it to the CAF library.
  275. * trans-stmt.c (gfc_trans_stop): Ditto.
  276. (gfc_trans_sync): Ditto; add call library call for sync memory.
  277. 2015-03-08 Mikael Morin <mikael@gcc.gnu.org>
  278. PR fortran/60898
  279. * resolve.c (resolve_symbol): Check that the symbol found by
  280. name lookup really is the current symbol being resolved.
  281. 2015-03-02 Tobias Burnus <burnus@net-b.de>
  282. * check.c (gfc_check_atomic): Properly check for coarrayness
  283. and for being coindexed.
  284. 2015-02-26 Martin Liska <mliska@suse.cz>
  285. * resolve.c: Rename enum 'comparison' to 'compare_result' as
  286. solution for -Wodr issue.
  287. 2015-02-24 Thomas Schwinge <thomas@codesourcery.com>
  288. PR libgomp/64625
  289. * f95-lang.c (DEF_FUNCTION_TYPE_VAR_8, DEF_FUNCTION_TYPE_VAR_12):
  290. Remove macros.
  291. (DEF_FUNCTION_TYPE_VAR_7, DEF_FUNCTION_TYPE_VAR_11): New macros.
  292. * types.def (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
  293. (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
  294. Remove function types.
  295. (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR)
  296. (BT_FN_VOID_INT_SIZE_PTR_PTR_PTR_INT_INT_VAR)
  297. (BT_FN_VOID_INT_OMPFN_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
  298. New function types.
  299. 2015-02-22 Bernd Edlinger <bernd.edlinger@hotmail.de>
  300. PR fortran/64980
  301. PR fortran/61960
  302. * trans-expr.c (gfc_apply_interface_mapping_to_expr): Remove mapping
  303. for component references to class objects.
  304. (gfc_conv_procedure_call): Compare the class by name.
  305. 2015-02-13 Jerry DeLisle <jvdelisle@gcc.gnu.org>
  306. PR fortran/64506
  307. * scanner.c (gfc_next_char_literal): For free form source,
  308. check for '!' and if found, clear the comment and go back
  309. and get the next character. For fixed form source, skip the
  310. rest of the line.
  311. 2015-02-12 Paul Thomas <pault@gcc.gnu.org>
  312. PR fortran/64932
  313. * trans-stmt.c (gfc_trans_deallocate): If a component array
  314. expression is not a descriptor type and it is a derived type
  315. that has allocatable components and is not finalizable, then
  316. deallocate the allocatable components.
  317. 2015-02-08 Mikael Morin <mikael@gcc.gnu.org>
  318. PR fortran/63744
  319. * module.c (check_for_ambiguous): Change argument type
  320. from gfc_symbol to gfc_symtree. Check local (symtree) name
  321. instead of original (symbol) name.
  322. (read_module): Update caller.
  323. 2015-02-06 Paul Thomas <pault@gcc.gnu.org>
  324. PR fortran/63205
  325. * gfortran.h: Add 'must finalize' field to gfc_expr and
  326. prototypes for gfc_is_alloc_class_scalar_function and for
  327. gfc_is_alloc_class_array_function.
  328. * expr.c (gfc_is_alloc_class_scalar_function,
  329. gfc_is_alloc_class_array_function): New functions.
  330. * trans-array.c (gfc_add_loop_ss_code): Do not move the
  331. expression for allocatable class scalar functions outside the
  332. loop.
  333. (conv_array_index_offset): Cope with deltas being NULL_TREE.
  334. (build_class_array_ref): Do not return with allocatable class
  335. array functions. Add code to pick out the returned class array.
  336. Dereference if necessary and return if not a class object.
  337. (gfc_conv_scalarized_array_ref): Cope with offsets being NULL.
  338. (gfc_walk_function_expr): Return an array ss for the result of
  339. an allocatable class array function.
  340. * trans-expr.c (gfc_conv_subref_array_arg): Remove the assert
  341. that the argument should be a variable. If an allocatable class
  342. array function, set the offset to zero and skip the write-out
  343. loop in this case.
  344. (gfc_conv_procedure_call): Add allocatable class array function
  345. to the assert. Call gfc_conv_subref_array_arg for allocatable
  346. class array function arguments with derived type formal arg..
  347. Add the code for handling allocatable class functions, including
  348. finalization calls to prevent memory leaks.
  349. (arrayfunc_assign_needs_temporary): Return if an allocatable
  350. class array function.
  351. (gfc_trans_assignment_1): Set must_finalize to rhs expression
  352. for allocatable class functions. Set scalar_to_array as needed
  353. for scalar class allocatable functions assigned to an array.
  354. Nullify the allocatable components corresponding the the lhs
  355. derived type so that the finalization does not free them.
  356. 2015-01-29 Andre Vehreschild <vehre@gmx.de>
  357. Janus Weil <janus@gcc.gnu.org>
  358. PR fortran/60289
  359. Initial patch by Janus Weil
  360. * resolve.c (resolve_allocate_expr): Add check for comp. only
  361. when target is not unlimited polymorphic.
  362. * trans-stmt.c (gfc_trans_allocate): Assign correct value to
  363. _len component of unlimited polymorphic entities.
  364. 2015-02-05 Tobias Burnus <burnus@net-b.de>
  365. PR fortran/64943
  366. * resolve.c (resolve_transfer): Also check structure
  367. constructors.
  368. 2015-02-05 Paul Thomas <pault@gcc.gnu.org>
  369. PR fortran/64757
  370. * resolve.c (resolve_structure_cons): Obtain the rank of class
  371. components.
  372. * trans-expr.c (gfc_trans_alloc_subarray_assign): Do the
  373. assignment to allocatable class array components.
  374. (alloc_scalar_allocatable_for_subcomponent_assignment): If comp
  375. is a class component, allocate to the _data field.
  376. (gfc_trans_subcomponent_assign): If a class component with a
  377. derived type expression set the _vptr field and for array
  378. components, call gfc_trans_alloc_subarray_assign. For scalars,
  379. the assignment is performed here.
  380. 2015-02-04 Jakub Jelinek <jakub@redhat.com>
  381. * options.c: Include langhooks.h.
  382. (gfc_post_options): Change lang_hooks.name based on
  383. selected -std= mode.
  384. 2015-02-03 Steven G. Kargl <kargl@gcc.gnu.org>
  385. * intrinsic.texi (CO_ASSOCIATED): c_prt_1 should be c_ptr_1.
  386. 2015-01-30 Andre Vehreschild <vehre@gmx.de>
  387. * trans-decl.c (gfc_get_symbol_decl): Removed duplicate code.
  388. * trans-expr.c (gfc_conv_intrinsic_to_class): Fixed indentation.
  389. Fixed datatype of charlen to be a 32-bit int.
  390. 2015-02-01 Joseph Myers <joseph@codesourcery.com>
  391. * error.c (gfc_warning (const char *, ...), gfc_warning_now (const
  392. char *, ...)): Remove functions.
  393. * gfortran.h (gfc_warning (const char *, ...), gfc_warning_now
  394. (const char *, ...)): Remove declarations.
  395. * arith.c, check.c, data.c, decl.c, frontend-passes.c,
  396. interface.c, intrinsic.c, io.c, matchexp.c, module.c, openmp.c,
  397. options.c, parse.c, primary.c, resolve.c, scanner.c, symbol.c,
  398. trans-common.c, trans-const.c, trans-stmt.c: All callers of
  399. gfc_warning and gfc_warning_now changed to pass 0 or option number
  400. as first argument.
  401. 2015-01-30 Joseph Myers <joseph@codesourcery.com>
  402. * f95-lang.c, gfortranspec.c, trans-const.c, trans-expr.c: All
  403. callers of fatal_error changed to pass input_location as first
  404. argument.
  405. 2015-01-28 Tobias Burnus <burnus@net-b.de>
  406. * intrinsic.texi (CO_BROADCAST): Correct argument description.
  407. 2015-01-27 Tobias Burnus <burnus@net-b.de>
  408. PR fortran/63861
  409. * trans-openmp.c (gfc_has_alloc_comps, gfc_trans_omp_clauses):
  410. Fix handling for scalar coarrays.
  411. * trans-types.c (gfc_get_element_type): Add comment.
  412. 2015-01-27 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
  413. PR fortran/64771
  414. * interface.c: Remove <algorithm>.
  415. (check_dummy_characteristics): Use MAX instead of std::max.
  416. 2015-01-26 Paul Thomas <pault@gcc.gnu.org>
  417. PR fortran/62044
  418. * resolve.c (resolve_allocate_expr): If the default initializer
  419. is NULL, keep the original MOLD expression so that the correct
  420. typespec is available.
  421. 2015-01-26 Tobias Burnus <burnus@net-b.de>
  422. PR fortran/64771
  423. * interface.c (check_dummy_characteristics): Fix coarray handling.
  424. 2015-01-26 Tobias Burnus <burnus@net-b.de>
  425. * io.c (gfc_match_inquire): Replace "-1" by a defined constant.
  426. 2015-01-26 Janus Weil <janus@gcc.gnu.org>
  427. PR fortran/64230
  428. * class.c (finalize_component): New argument 'sub_ns'. Insert code to
  429. check if 'expr' is associated.
  430. (generate_finalization_wrapper): Rename 'ptr' symbols to 'ptr1' and
  431. 'ptr2'. Pass 'sub_ns' to finalize_component.
  432. 2015-01-25 Mikael Morin <mikael@gcc.gnu.org>
  433. PR fortran/62044
  434. * decl.c (gfc_match_derived_decl): Don't insert a new symtree element.
  435. * module.c (MOD_VERSION): Bump.
  436. (write_module): Don't write list of extensions.
  437. (read_module): Don't jump over list of extensions;
  438. don't load list of extensions.
  439. (load_derived_extensions, write_dt_extensions,
  440. write_derived_extensions): Remove.
  441. 2015-01-24 Tobias Burnus <burnus@net-b.de>
  442. * parse.c (gfc_parse_file): Fix two-location gfc_error call.
  443. 2015-01-23 Martin Liska <mliska@suse.cz>
  444. * decl.c (attr_decl1): Workaround -Wmaybe-uninitialized
  445. false positive during profiledbootstrap by initializing them.
  446. * matchexp.c (match_mult_operand): Likewise.
  447. * module.c (write_atom): Likewise.
  448. (read_module): Likewise.
  449. 2015-01-23 Tom de Vries <tom@codesourcery.com>
  450. PR libgomp/64672
  451. * lang.opt (fopenacc): Mark as LTO option.
  452. 2015-01-23 Tom de Vries <tom@codesourcery.com>
  453. PR libgomp/64707
  454. * lang.opt (fopenmp): Mark as LTO option.
  455. 2015-01-23 Andre Vehreschild <vehre@gmx.de>
  456. * trans-decl.c (gfc_finish_var_decl): Fixed moved comment.
  457. * trans-stmt.c (gfc_trans_allocate): Fixed indentation.
  458. 2015-01-23 Jakub Jelinek <jakub@redhat.com>
  459. * gfc-diagnostic.def (DK_ICE_NOBT): New kind.
  460. 2015-01-23 Janus Weil <janus@gcc.gnu.org>
  461. PR fortran/60922
  462. * class.c (finalize_component): Apply the check for 'fini_coarray' only
  463. to coarray components.
  464. 2015-01-23 Tobias Burnus <burnus@net-b.de>
  465. PR fortran/64726
  466. * trans-openmp.c (gfc_trans_oacc_combined_directive): Fix
  467. loop generation.
  468. 2015-01-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
  469. PR fortran/61933
  470. * libgfortran.h:
  471. * trans-io.c (set_parameter_value): Delete use of has_iostat.
  472. Redefine to not generate any runtime error check calls.
  473. (set_parameter_value_chk): Rename of the former
  474. set_parameter_value with the runtime error checks and fix
  475. whitespace. (set_parameter_value_inquire): New function that
  476. builds a runtime conditional block to set the INQUIRE
  477. common parameter block unit number to -2 when unit numbers
  478. exceed positive KIND=4 limits. (gfc_trans_open): Whitespace.
  479. For unit, use the renamed set_parameter_value_chk.
  480. (gfc_trans_close): Likewise use renamed function.
  481. (build_filepos): Whitespace and use renamed function.
  482. (gfc_trans_inquire): Whitespace and for unit use
  483. set_parameter_value and set_parameter_value_inquire.
  484. (gfc_trans_wait): Remove p->iostat from call to
  485. set_parameter_value. Use new set_parameter_value_chk for unit.
  486. (build_dt): Use the new set_parameter_value without p->iostat
  487. and fix whitespace. Use set_parameter_value_chk for unit.
  488. 2015-01-21 Thomas Koenig <tkoenig@netcologne.de>
  489. PR fortran/57023
  490. * dependency.c (callback_dummy_intent_not_int): New function.
  491. (dummy_intent_not_in): New function.
  492. (gfc_full_array_ref_p): Use dummy_intent_not_in.
  493. 2015-01-18 Andre Vehreschild <vehre@gmx.de>
  494. Janus Weil <janus@gcc.gnu.org>
  495. PR fortran/60255
  496. * class.c (gfc_get_len_component): New.
  497. (gfc_build_class_symbol): Add _len component to unlimited
  498. polymorphic entities.
  499. (find_intrinsic_vtab): Removed emitting of error message.
  500. * gfortran.h: Added prototype for gfc_get_len_component.
  501. * simplify.c (gfc_simplify_len): Use _len component where
  502. available.
  503. * trans-expr.c (gfc_class_len_get): New.
  504. (gfc_conv_intrinsic_to_class): Add handling for deferred
  505. character arrays.
  506. (gfc_conv_structure): Treat _len component correctly.
  507. (gfc_conv_expr): Prevent bind_c handling when not required.
  508. (gfc_trans_pointer_assignment): Propagate _len component.
  509. * trans-stmt.c (class_has_len_component): New.
  510. (trans_associate_var): _len component treatment for associate
  511. context.
  512. (gfc_trans_allocate): Same as for trans_associate_var()
  513. * trans.h: Added prototype for gfc_class_len_get.
  514. 2015-01-18 Paul Thomas <pault@gcc.gnu.org>
  515. PR fortran/57959
  516. * trans-expr.c (gfc_trans_subcomponent_assign): Use a deep copy
  517. for allocatable components, where the source is a variable.
  518. 2015-01-18 Paul Thomas <pault@gcc.gnu.org>
  519. PR fortran/55901
  520. * primary.c (gfc_match_varspec): Exclude dangling associate-
  521. names with dimension 0 from being counted as arrays.
  522. * resolve.c (resolve_assoc_var): Sub-strings are permissible
  523. for associate-names, so exclude characters from the test for
  524. misuse as arrays.
  525. * trans-decl.c (gfc_get_symbol_decl): Associate-names can use
  526. the hidden string length variable of their associated target.
  527. Signal this by setting 'length' to a constant, if the decl for
  528. the string length is a variable.
  529. 2015-01-17 Paul Thomas <pault@gcc.gnu.org>
  530. PR fortran/64578
  531. * trans-expr.c (gfc_trans_pointer_assignment): Make sure that
  532. before reinitializing rse, to add the rse.pre to block before
  533. creating 'ptrtemp'.
  534. * trans-intrinsic.c (gfc_conv_associated): Deal with the class
  535. data being a descriptor.
  536. 2015-01-17 Andre Vehreschild <vehre@gmx.de>
  537. PR fortran/60357
  538. * primary.c (build_actual_constructor): Prevent warning.
  539. * trans-expr.c (alloc_scalar_allocatable_for_subcomponent_
  540. assignment): New function encapsulates treatment of allocatable
  541. components.
  542. (gfc_trans_subcomponent_assign): Needed to distinguish between
  543. regular assignment and initilization.
  544. (gfc_trans_structure_assign): Same.
  545. (gfc_conv_structure): Same.
  546. PR fortran/61275
  547. * gfortran.h: deferred_parameter is not needed, because
  548. it artificial does the trick completely.
  549. * primary.c (build_actual_constructor): Same.
  550. (gfc_convert_to_structure_constructor): Same.
  551. * resolve.c (resolve_fl_derived0): Same.
  552. * trans-expr.c (gfc_conv_component_ref): Prevent treating
  553. allocatable deferred length char arrays here.
  554. (gfc_trans_subcomponent_assign): Same as above.
  555. * trans-types.c (gfc_sym_type): This is done in
  556. gfc_get_derived_type already.
  557. 2015-01-17 Andre Vehreschild <vehre@gmx.de>
  558. PR fortran/60334
  559. * trans-decl.c (gfc_get_symbol_decl):Use a ref on the string
  560. length when the symbol is declared to be a result.
  561. * trans-expr.c (gfc_conv_procedure_call): Strip deref on the
  562. string length when functions are nested and the string length
  563. is a reference already.
  564. 2015-01-16 Janus Weil <janus@gcc.gnu.org>
  565. PR fortran/45290
  566. * decl.c (match_pointer_init): Error out if resolution of init expr
  567. failed.
  568. 2015-01-15 Tobias Burnus <burnus@net-b.de>
  569. * openmp.c (check_symbol_not_pointer, resolve_oacc_data_clauses,
  570. resolve_oacc_deviceptr_clause, resolve_omp_clauses,
  571. gfc_resolve_oacc_declare): Replace '%s' by %qs.
  572. 2015-01-15 Thomas Schwinge <thomas@codesourcery.com>
  573. Cesar Philippidis <cesar@codesourcery.com>
  574. James Norris <jnorris@codesourcery.com>
  575. Ilmir Usmanov <i.usmanov@samsung.com>
  576. Tobias Burnus <burnus@net-b.de>
  577. * lang.opt (fopenacc): New option.
  578. * cpp.c (cpp_define_builtins): Conditionally define _OPENACC.
  579. * dump-parse-tree.c (show_omp_node): Split part of it into...
  580. (show_omp_clauses): ... this new function.
  581. (show_omp_node, show_code_node): Handle EXEC_OACC_PARALLEL_LOOP,
  582. EXEC_OACC_PARALLEL, EXEC_OACC_KERNELS_LOOP, EXEC_OACC_KERNELS,
  583. EXEC_OACC_DATA, EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP,
  584. EXEC_OACC_UPDATE, EXEC_OACC_WAIT, EXEC_OACC_CACHE,
  585. EXEC_OACC_ENTER_DATA, EXEC_OACC_EXIT_DATA.
  586. (show_namespace): Update for OpenACC.
  587. * f95-lang.c (DEF_FUNCTION_TYPE_VAR_2, DEF_FUNCTION_TYPE_VAR_8)
  588. (DEF_FUNCTION_TYPE_VAR_12, DEF_GOACC_BUILTIN)
  589. (DEF_GOACC_BUILTIN_COMPILER): New macros.
  590. * types.def (BT_FN_VOID_INT_INT_VAR)
  591. (BT_FN_VOID_INT_PTR_SIZE_PTR_PTR_PTR_INT_INT_VAR)
  592. (BT_FN_VOID_INT_OMPFN_PTR_SIZE_PTR_PTR_PTR_INT_INT_INT_INT_INT_VAR):
  593. New function types.
  594. * gfortran.h (gfc_statement): Add ST_OACC_PARALLEL_LOOP,
  595. ST_OACC_END_PARALLEL_LOOP, ST_OACC_PARALLEL, ST_OACC_END_PARALLEL,
  596. ST_OACC_KERNELS, ST_OACC_END_KERNELS, ST_OACC_DATA,
  597. ST_OACC_END_DATA, ST_OACC_HOST_DATA, ST_OACC_END_HOST_DATA,
  598. ST_OACC_LOOP, ST_OACC_END_LOOP, ST_OACC_DECLARE, ST_OACC_UPDATE,
  599. ST_OACC_WAIT, ST_OACC_CACHE, ST_OACC_KERNELS_LOOP,
  600. ST_OACC_END_KERNELS_LOOP, ST_OACC_ENTER_DATA, ST_OACC_EXIT_DATA,
  601. ST_OACC_ROUTINE.
  602. (struct gfc_expr_list): New data type.
  603. (gfc_get_expr_list): New macro.
  604. (gfc_omp_map_op): Add OMP_MAP_FORCE_ALLOC, OMP_MAP_FORCE_DEALLOC,
  605. OMP_MAP_FORCE_TO, OMP_MAP_FORCE_FROM, OMP_MAP_FORCE_TOFROM,
  606. OMP_MAP_FORCE_PRESENT, OMP_MAP_FORCE_DEVICEPTR.
  607. (OMP_LIST_FIRST, OMP_LIST_DEVICE_RESIDENT, OMP_LIST_USE_DEVICE)
  608. (OMP_LIST_CACHE): New enumerators.
  609. (struct gfc_omp_clauses): Add async_expr, gang_expr, worker_expr,
  610. vector_expr, num_gangs_expr, num_workers_expr, vector_length_expr,
  611. wait_list, tile_list, async, gang, worker, vector, seq,
  612. independent, wait, par_auto, gang_static, and loc members.
  613. (struct gfc_namespace): Add oacc_declare_clauses member.
  614. (gfc_exec_op): Add EXEC_OACC_KERNELS_LOOP,
  615. EXEC_OACC_PARALLEL_LOOP, EXEC_OACC_PARALLEL, EXEC_OACC_KERNELS,
  616. EXEC_OACC_DATA, EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP,
  617. EXEC_OACC_UPDATE, EXEC_OACC_WAIT, EXEC_OACC_CACHE,
  618. EXEC_OACC_ENTER_DATA, EXEC_OACC_EXIT_DATA.
  619. (gfc_free_expr_list, gfc_resolve_oacc_directive)
  620. (gfc_resolve_oacc_declare, gfc_resolve_oacc_parallel_loop_blocks)
  621. (gfc_resolve_oacc_blocks): New prototypes.
  622. * match.c (match_exit_cycle): Handle EXEC_OACC_LOOP and
  623. EXEC_OACC_PARALLEL_LOOP.
  624. * match.h (gfc_match_oacc_cache, gfc_match_oacc_wait)
  625. (gfc_match_oacc_update, gfc_match_oacc_declare)
  626. (gfc_match_oacc_loop, gfc_match_oacc_host_data)
  627. (gfc_match_oacc_data, gfc_match_oacc_kernels)
  628. (gfc_match_oacc_kernels_loop, gfc_match_oacc_parallel)
  629. (gfc_match_oacc_parallel_loop, gfc_match_oacc_enter_data)
  630. (gfc_match_oacc_exit_data, gfc_match_oacc_routine): New
  631. prototypes.
  632. * openmp.c: Include "diagnostic.h" and "gomp-constants.h".
  633. (gfc_free_omp_clauses): Update for members added to struct
  634. gfc_omp_clauses.
  635. (gfc_match_omp_clauses): Change mask paramter to uint64_t. Add
  636. openacc parameter.
  637. (resolve_omp_clauses): Add openacc parameter. Update for OpenACC.
  638. (struct fortran_omp_context): Add is_openmp member.
  639. (gfc_resolve_omp_parallel_blocks): Initialize it.
  640. (gfc_resolve_do_iterator): Update for OpenACC.
  641. (gfc_resolve_omp_directive): Call
  642. resolve_omp_directive_inside_oacc_region.
  643. (OMP_CLAUSE_PRIVATE, OMP_CLAUSE_FIRSTPRIVATE)
  644. (OMP_CLAUSE_LASTPRIVATE, OMP_CLAUSE_COPYPRIVATE)
  645. (OMP_CLAUSE_SHARED, OMP_CLAUSE_COPYIN, OMP_CLAUSE_REDUCTION)
  646. (OMP_CLAUSE_IF, OMP_CLAUSE_NUM_THREADS, OMP_CLAUSE_SCHEDULE)
  647. (OMP_CLAUSE_DEFAULT, OMP_CLAUSE_ORDERED, OMP_CLAUSE_COLLAPSE)
  648. (OMP_CLAUSE_UNTIED, OMP_CLAUSE_FINAL, OMP_CLAUSE_MERGEABLE)
  649. (OMP_CLAUSE_ALIGNED, OMP_CLAUSE_DEPEND, OMP_CLAUSE_INBRANCH)
  650. (OMP_CLAUSE_LINEAR, OMP_CLAUSE_NOTINBRANCH, OMP_CLAUSE_PROC_BIND)
  651. (OMP_CLAUSE_SAFELEN, OMP_CLAUSE_SIMDLEN, OMP_CLAUSE_UNIFORM)
  652. (OMP_CLAUSE_DEVICE, OMP_CLAUSE_MAP, OMP_CLAUSE_TO)
  653. (OMP_CLAUSE_FROM, OMP_CLAUSE_NUM_TEAMS, OMP_CLAUSE_THREAD_LIMIT)
  654. (OMP_CLAUSE_DIST_SCHEDULE): Use uint64_t.
  655. (OMP_CLAUSE_ASYNC, OMP_CLAUSE_NUM_GANGS, OMP_CLAUSE_NUM_WORKERS)
  656. (OMP_CLAUSE_VECTOR_LENGTH, OMP_CLAUSE_COPY, OMP_CLAUSE_COPYOUT)
  657. (OMP_CLAUSE_CREATE, OMP_CLAUSE_PRESENT)
  658. (OMP_CLAUSE_PRESENT_OR_COPY, OMP_CLAUSE_PRESENT_OR_COPYIN)
  659. (OMP_CLAUSE_PRESENT_OR_COPYOUT, OMP_CLAUSE_PRESENT_OR_CREATE)
  660. (OMP_CLAUSE_DEVICEPTR, OMP_CLAUSE_GANG, OMP_CLAUSE_WORKER)
  661. (OMP_CLAUSE_VECTOR, OMP_CLAUSE_SEQ, OMP_CLAUSE_INDEPENDENT)
  662. (OMP_CLAUSE_USE_DEVICE, OMP_CLAUSE_DEVICE_RESIDENT)
  663. (OMP_CLAUSE_HOST_SELF, OMP_CLAUSE_OACC_DEVICE, OMP_CLAUSE_WAIT)
  664. (OMP_CLAUSE_DELETE, OMP_CLAUSE_AUTO, OMP_CLAUSE_TILE): New macros.
  665. (gfc_match_omp_clauses): Handle those.
  666. (OACC_PARALLEL_CLAUSES, OACC_KERNELS_CLAUSES, OACC_DATA_CLAUSES)
  667. (OACC_LOOP_CLAUSES, OACC_PARALLEL_LOOP_CLAUSES)
  668. (OACC_KERNELS_LOOP_CLAUSES, OACC_HOST_DATA_CLAUSES)
  669. (OACC_DECLARE_CLAUSES, OACC_UPDATE_CLAUSES)
  670. (OACC_ENTER_DATA_CLAUSES, OACC_EXIT_DATA_CLAUSES)
  671. (OACC_WAIT_CLAUSES): New macros.
  672. (gfc_free_expr_list, match_oacc_expr_list, match_oacc_clause_gang)
  673. (gfc_match_omp_map_clause, gfc_match_oacc_parallel_loop)
  674. (gfc_match_oacc_parallel, gfc_match_oacc_kernels_loop)
  675. (gfc_match_oacc_kernels, gfc_match_oacc_data)
  676. (gfc_match_oacc_host_data, gfc_match_oacc_loop)
  677. (gfc_match_oacc_declare, gfc_match_oacc_update)
  678. (gfc_match_oacc_enter_data, gfc_match_oacc_exit_data)
  679. (gfc_match_oacc_wait, gfc_match_oacc_cache)
  680. (gfc_match_oacc_routine, oacc_is_loop)
  681. (resolve_oacc_scalar_int_expr, resolve_oacc_positive_int_expr)
  682. (check_symbol_not_pointer, check_array_not_assumed)
  683. (resolve_oacc_data_clauses, resolve_oacc_deviceptr_clause)
  684. (oacc_compatible_clauses, oacc_is_parallel, oacc_is_kernels)
  685. (omp_code_to_statement, oacc_code_to_statement)
  686. (resolve_oacc_directive_inside_omp_region)
  687. (resolve_omp_directive_inside_oacc_region)
  688. (resolve_oacc_nested_loops, resolve_oacc_params_in_parallel)
  689. (resolve_oacc_loop_blocks, gfc_resolve_oacc_blocks)
  690. (resolve_oacc_loop, resolve_oacc_cache, gfc_resolve_oacc_declare)
  691. (gfc_resolve_oacc_directive): New functions.
  692. * parse.c (next_free): Update for OpenACC. Move some code into...
  693. (verify_token_free): ... this new function.
  694. (next_fixed): Update for OpenACC. Move some code into...
  695. (verify_token_fixed): ... this new function.
  696. (case_executable): Add ST_OACC_UPDATE, ST_OACC_WAIT,
  697. ST_OACC_CACHE, ST_OACC_ENTER_DATA, and ST_OACC_EXIT_DATA.
  698. (case_exec_markers): Add ST_OACC_PARALLEL_LOOP, ST_OACC_PARALLEL,
  699. ST_OACC_KERNELS, ST_OACC_DATA, ST_OACC_HOST_DATA, ST_OACC_LOOP,
  700. ST_OACC_KERNELS_LOOP.
  701. (case_decl): Add ST_OACC_ROUTINE.
  702. (push_state, parse_critical_block, parse_progunit): Update for
  703. OpenACC.
  704. (gfc_ascii_statement): Handle ST_OACC_PARALLEL_LOOP,
  705. ST_OACC_END_PARALLEL_LOOP, ST_OACC_PARALLEL, ST_OACC_END_PARALLEL,
  706. ST_OACC_KERNELS, ST_OACC_END_KERNELS, ST_OACC_KERNELS_LOOP,
  707. ST_OACC_END_KERNELS_LOOP, ST_OACC_DATA, ST_OACC_END_DATA,
  708. ST_OACC_HOST_DATA, ST_OACC_END_HOST_DATA, ST_OACC_LOOP,
  709. ST_OACC_END_LOOP, ST_OACC_DECLARE, ST_OACC_UPDATE, ST_OACC_WAIT,
  710. ST_OACC_CACHE, ST_OACC_ENTER_DATA, ST_OACC_EXIT_DATA,
  711. ST_OACC_ROUTINE.
  712. (verify_st_order, parse_spec): Handle ST_OACC_DECLARE.
  713. (parse_executable): Handle ST_OACC_PARALLEL_LOOP,
  714. ST_OACC_KERNELS_LOOP, ST_OACC_LOOP, ST_OACC_PARALLEL,
  715. ST_OACC_KERNELS, ST_OACC_DATA, ST_OACC_HOST_DATA.
  716. (decode_oacc_directive, parse_oacc_structured_block)
  717. (parse_oacc_loop, is_oacc): New functions.
  718. * parse.h (struct gfc_state_data): Add oacc_declare_clauses
  719. member.
  720. (is_oacc): New prototype.
  721. * resolve.c (gfc_resolve_blocks, gfc_resolve_code): Handle
  722. EXEC_OACC_PARALLEL_LOOP, EXEC_OACC_PARALLEL,
  723. EXEC_OACC_KERNELS_LOOP, EXEC_OACC_KERNELS, EXEC_OACC_DATA,
  724. EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP, EXEC_OACC_UPDATE,
  725. EXEC_OACC_WAIT, EXEC_OACC_CACHE, EXEC_OACC_ENTER_DATA,
  726. EXEC_OACC_EXIT_DATA.
  727. (resolve_codes): Call gfc_resolve_oacc_declare.
  728. * scanner.c (openacc_flag, openacc_locus): New variables.
  729. (skip_free_comments): Update for OpenACC. Move some code into...
  730. (skip_omp_attribute): ... this new function.
  731. (skip_oacc_attribute): New function.
  732. (skip_fixed_comments, gfc_next_char_literal): Update for OpenACC.
  733. * st.c (gfc_free_statement): Handle EXEC_OACC_PARALLEL_LOOP,
  734. EXEC_OACC_PARALLEL, EXEC_OACC_KERNELS_LOOP, EXEC_OACC_KERNELS,
  735. EXEC_OACC_DATA, EXEC_OACC_HOST_DATA, EXEC_OACC_LOOP,
  736. EXEC_OACC_UPDATE, EXEC_OACC_WAIT, EXEC_OACC_CACHE,
  737. EXEC_OACC_ENTER_DATA, EXEC_OACC_EXIT_DATA.
  738. * trans-decl.c (gfc_generate_function_code): Update for OpenACC.
  739. * trans-openmp.c: Include "gomp-constants.h".
  740. (gfc_omp_finish_clause, gfc_trans_omp_clauses): Use GOMP_MAP_*
  741. instead of OMP_CLAUSE_MAP_*. Use OMP_CLAUSE_SET_MAP_KIND.
  742. (gfc_trans_omp_clauses): Handle OMP_LIST_USE_DEVICE,
  743. OMP_LIST_DEVICE_RESIDENT, OMP_LIST_CACHE, and OMP_MAP_FORCE_ALLOC,
  744. OMP_MAP_FORCE_DEALLOC, OMP_MAP_FORCE_TO, OMP_MAP_FORCE_FROM,
  745. OMP_MAP_FORCE_TOFROM, OMP_MAP_FORCE_PRESENT,
  746. OMP_MAP_FORCE_DEVICEPTR, and gfc_omp_clauses' async, seq,
  747. independent, wait_list, num_gangs_expr, num_workers_expr,
  748. vector_length_expr, vector, vector_expr, worker, worker_expr,
  749. gang, gang_expr members.
  750. (gfc_trans_omp_do): Handle EXEC_OACC_LOOP.
  751. (gfc_convert_expr_to_tree, gfc_trans_oacc_construct)
  752. (gfc_trans_oacc_executable_directive)
  753. (gfc_trans_oacc_wait_directive, gfc_trans_oacc_combined_directive)
  754. (gfc_trans_oacc_declare, gfc_trans_oacc_directive): New functions.
  755. * trans-stmt.c (gfc_trans_block_construct): Update for OpenACC.
  756. * trans-stmt.h (gfc_trans_oacc_directive, gfc_trans_oacc_declare):
  757. New prototypes.
  758. * trans.c (tranc_code): Handle EXEC_OACC_CACHE, EXEC_OACC_WAIT,
  759. EXEC_OACC_UPDATE, EXEC_OACC_LOOP, EXEC_OACC_HOST_DATA,
  760. EXEC_OACC_DATA, EXEC_OACC_KERNELS, EXEC_OACC_KERNELS_LOOP,
  761. EXEC_OACC_PARALLEL, EXEC_OACC_PARALLEL_LOOP, EXEC_OACC_ENTER_DATA,
  762. EXEC_OACC_EXIT_DATA.
  763. * gfortran.texi: Update for OpenACC.
  764. * intrinsic.texi: Likewise.
  765. * invoke.texi: Likewise.
  766. 2015-01-15 Janus Weil <janus@gcc.gnu.org>
  767. PR fortran/58023
  768. * resolve.c (resolve_fl_derived0): Continue resolving next component
  769. after error.
  770. 2015-01-14 Jerry DeLisle <jvdelisle@gcc.gnu.org>
  771. PR fortran/61933
  772. * io.c (gfc_match_inquire): Generate error if unit number in
  773. inquire statement is a constant -1. All other values allowed.
  774. * trans-io.c (gfc_trans_inquire): Delete dummy iostat variable.
  775. (create_dummy_iostat): Delete function no longer used.
  776. 2015-01-13 Jakub Jelinek <jakub@redhat.com>
  777. PR fortran/64528
  778. * trans-decl.c (create_function_arglist): Don't set TREE_READONLY
  779. on dummy args with VALUE attribute.
  780. 2015-01-11 Janus Weil <janus@gcc.gnu.org>
  781. PR fortran/63733
  782. * interface.c (gfc_extend_expr): Look for type-bound operators before
  783. non-typebound ones.
  784. 2015-01-11 Janus Weil <janus@gcc.gnu.org>
  785. PR fortran/58023
  786. * resolve.c (resolve_fl_derived0): Set error flag if problems with the
  787. interface of a procedure-pointer component were detected.
  788. 2015-01-11 Janus Weil <janus@gcc.gnu.org>
  789. PR fortran/64508
  790. * interface.c (compare_parameter): Interface check for
  791. procedure-pointer component as actual argument.
  792. 2015-01-10 Thomas Schwinge <thomas@codesourcery.com>
  793. * gfortran.texi: Update for libgomp being renamed from "GNU OpenMP
  794. Runtime Library" to "GNU Offloading and Multi Processing Runtime
  795. Library".
  796. * intrinsic.texi: Likewise.
  797. 2015-01-10 Tobias Burnus <burnus@net-b.de>
  798. PR fortran/64522
  799. * invoke.texi (Wline-truncation): Document new behaviour.
  800. * lang.opt (Wline-truncation): Add Init(-1).
  801. * options.c (gfc_post_options): If -Wline-truncation is unset,
  802. enable it for free-form source files; for the latter, also use
  803. -Werror=line-truncation, unless -Wno-error has been specified.
  804. 2015-01-09 Michael Collison <michael.collison@linaro.org>
  805. * convert.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
  806. input.h, alias.h, symtab.h, options.h, fold-const.h,
  807. wide-int.h, and inchash.h due to flattening of tree.h.
  808. * cpp.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
  809. input.h, alias.h, symtab.h, fold-const.h,
  810. wide-int.h, and inchash.h due to flattening of tree.h.
  811. * decl.c: Ditto.
  812. * f95.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
  813. input.h, alias.h, symtab.h, options.h, fold-const.h,
  814. wide-int.h, and inchash.h due to flattening of tree.h.
  815. * iresolve.c: Ditto.
  816. * match.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
  817. input.h, alias.h, symtab.h, fold-const.h,
  818. wide-int.h, and inchash.h due to flattening of tree.h.
  819. * module.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
  820. input.h, alias.h, symtab.h, options.h, fold-const.h,
  821. wide-int.h, and inchash.h due to flattening of tree.h.
  822. * options.c: Ditto.
  823. * target-memory.c: Include hash-set.h, vec.h,
  824. double-int.h, input.h, alias.h, symtab.h, fold-const.h,
  825. wide-int.h, and inchash.h due to flattening of tree.h.
  826. * trans-array.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
  827. input.h, alias.h, symtab.h, options.h, fold-const.h,
  828. wide-int.h, and inchash.h due to flattening of tree.h.
  829. * trans.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
  830. input.h, alias.h, symtab.h, options.h, fold-const.h,
  831. wide-int.h, and inchash.h due to flattening of tree.h.
  832. * trans-common.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
  833. input.h, alias.h, symtab.h, fold-const.h,
  834. wide-int.h, and inchash.h due to flattening of tree.h.
  835. * trans-const.c: Ditto.
  836. * trans-decl.c: Ditto.
  837. * trans-expr.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
  838. input.h, alias.h, symtab.h, options.h, fold-const.h,
  839. wide-int.h, and inchash.h due to flattening of tree.h.
  840. * trans-intrinsic.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
  841. input.h, alias.h, symtab.h, fold-const.h,
  842. wide-int.h, inchash.h and real.h due to flattening of tree.h.
  843. * trans-io.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
  844. input.h, alias.h, symtab.h, options.h, fold-const.h,
  845. wide-int.h, and inchash.h due to flattening of tree.h.
  846. * trans-openmp.c: Ditto.
  847. * trans-stmt.c: Ditto.
  848. * trans-types.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
  849. input.h, alias.h, symtab.h, fold-const.h,
  850. wide-int.h, inchash.h and real.h due to flattening of tree.h.
  851. 2015-01-08 Tobias Burnus <burnus@net-b.de>
  852. * trans-decl.c (gfc_build_qualified_array): Fix coarray tokens
  853. for module coarrays with -fcoarray=lib.
  854. (get_proc_pointer_decl): As module variable, make only public
  855. when not marked as private.
  856. 2015-01-05 Thomas Koenig <tkoenig@gcc.gnu.org>
  857. PR fortran/47674
  858. * dependency.h: Actually commit changes.
  859. 2015-01-05 Thomas Koenig <tkoenig@gcc.gnu.org>
  860. PR fortran/47674
  861. * dependency.c: Update copyright years.
  862. (gfc_discard_nops): Add prototype.
  863. * dependency.c (discard_nops): Rename to gfc_discard_nops,
  864. make non-static.
  865. (gfc_discard_nops): Use gfc_discard_nops.
  866. (gfc_dep_difference): Likewise.
  867. * frontend-passes.c Update copyright years.
  868. (realloc_strings): New function. Add prototype.
  869. (gfc_run_passes): Call realloc_strings.
  870. (realloc_string_callback): New function.
  871. (create_var): Add prototype. Handle case of a
  872. scalar character variable.
  873. (optimize_trim): Do not handle allocatable variables.
  874. 2015-01-05 Jakub Jelinek <jakub@redhat.com>
  875. Update copyright years.
  876. * gfortranspec.c (lang_specific_driver): Update copyright notice
  877. dates.
  878. * gfc-internals.texi: Bump @copying's copyright year.
  879. * gfortran.texi: Ditto.
  880. * intrinsic.texi: Ditto.
  881. * invoke.texi: Ditto.
  882. 2015-01-02 Janus Weil <janus@gcc.gnu.org>
  883. PR fortran/57562
  884. * expr.c (find_component_ref): Deal with extended types.
  885. 2015-01-02 Tobias Burnus <burnus@net-b.de>
  886. * trans-decl.c (gfc_build_qualified_array): Fix coarray tokens
  887. for module coarrays with -fcoarray=lib.
  888. 2015-01-02 Janus Weil <janus@gcc.gnu.org>
  889. PR fortran/60507
  890. * interface.c (is_procptr_result): New function to check if an
  891. expression is a procedure-pointer result.
  892. (compare_actual_formal): Use it.
  893. ^L
  894. Copyright (C) 2015 Free Software Foundation, Inc.
  895. Copying and distribution of this file, with or without modification,
  896. are permitted in any medium without royalty provided the copyright
  897. notice and this notice are preserved.