diff options
author | Steve Baird <baird@adacore.com> | 2019-09-19 08:14:52 +0000 |
---|---|---|
committer | Pierre-Marie de Rodat <pmderodat@gcc.gnu.org> | 2019-09-19 08:14:52 +0000 |
commit | 0c27222c60b26cd21588576f140abd04f1d8a853 (patch) | |
tree | 644c9e9873f147c02c00846ae01ab92a4e3d0feb /gcc/ada/doc | |
parent | c3a75a09b8424c192b32a39fa273d27db5b9c039 (diff) | |
download | gcc-0c27222c60b26cd21588576f140abd04f1d8a853.zip gcc-0c27222c60b26cd21588576f140abd04f1d8a853.tar.gz gcc-0c27222c60b26cd21588576f140abd04f1d8a853.tar.bz2 |
[Ada] Accept concatentation arguments to pragma Annotate
In cases where pragma Annotate accepts a string literal as an argument,
we now also accept a concatenation of string literals.
2019-09-19 Steve Baird <baird@adacore.com>
gcc/ada/
* sem_prag.adb (Preferred_String_Type): A new function. Given an
expression, determines whether the preference rules defined for
the third-and-later arguments of pragma Annotate suffice to
determine the type of the expression. If so, then the preferred
type is returned; if not then Empty is returned. Handles
concatenations.
(Analyze_Pragma): Replace previous code, which dealt only with
string literals, with calls to the new Preferred_String_Type
function, which also handles concatenations.
* doc/gnat_rm/implementation_defined_pragmas.rst: Update
documentation for pragma Annotate.
* gnat_rm.texi: Regenerate.
gcc/testsuite/
* gnat.dg/annotation1.adb: New testcase.
From-SVN: r275957
Diffstat (limited to 'gcc/ada/doc')
-rw-r--r-- | gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst b/gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst index 126aaf8..bf0a9d4 100644 --- a/gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst +++ b/gcc/ada/doc/gnat_rm/implementation_defined_pragmas.rst @@ -455,7 +455,8 @@ not otherwise analyze it. The second optional identifier is also left unanalyzed, and by convention is used to control the action of the tool to which the annotation is addressed. The remaining ARG arguments can be either string literals or more generally expressions. -String literals are assumed to be either of type +String literals (and concatenations of string literals) are assumed to be +either of type ``Standard.String`` or else ``Wide_String`` or ``Wide_Wide_String`` depending on the character literals they contain. All other kinds of arguments are analyzed as expressions, and must be |