implementation_defined_pragmas.rst (Machine_Attribute): Document additional optional...
authorEric Botcazou <ebotcazou@adacore.com>
Tue, 28 May 2019 08:47:33 +0000 (08:47 +0000)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Tue, 28 May 2019 08:47:33 +0000 (08:47 +0000)
commit5ca5ef68709f317927a055a610bfcec6e4ec0172
treedec6a653b7329a451f0344e9c05b5d25a6bffdb1
parent79069232df7ae1f59c68bbe90804a30c2dbec5d3
implementation_defined_pragmas.rst (Machine_Attribute): Document additional optional parameters.

* doc/gnat_rm/implementation_defined_pragmas.rst (Machine_Attribute):
Document additional optional parameters.
* sem_prag.adb (Analyze_Pragma) <Pragma_Machine_Attribute>: Accept
more than one optional parameter.
* gcc-interface/decl.c (prepend_one_attribute_pragma): Alphabetize
the list of supported pragmas.  Simplify the handling of parameters
and add support for more than one optional parameter.
* gcc-interface/utils.c (attr_cold_hot_exclusions): New constant.
(gnat_internal_attribute_table): Add entry for no_icf, noipa, flatten,
used, cold, hot, target and target_clones.
(begin_subprog_body): Do not create the RTL for the subprogram here.
(handle_noicf_attribute): New static function.
(handle_noipa_attribute): Likewise.
(handle_flatten_attribute): Likewise.
(handle_used_attribute): Likewise.
(handle_cold_attribute): Likewise.
(handle_hot_attribute): Likewise.
(handle_target_attribute): Likewise.
(handle_target_clones_attribute): Likewise.

From-SVN: r271693
gcc/ada/ChangeLog
gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst
gcc/ada/gcc-interface/decl.c
gcc/ada/gcc-interface/utils.c
gcc/ada/sem_prag.adb
gcc/testsuite/ChangeLog
gcc/testsuite/gnat.dg/machine_attr1.adb [new file with mode: 0644]
gcc/testsuite/gnat.dg/machine_attr1.ads [new file with mode: 0644]