summaryrefslogtreecommitdiff
path: root/gcc/fortran/simplify.c
diff options
context:
space:
mode:
authorburnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4>2010-09-28 19:51:38 +0000
committerburnus <burnus@138bc75d-0d04-0410-961f-82ee72b054a4>2010-09-28 19:51:38 +0000
commite3d1ab2bdf7b9008475deb5432108db2f0c672be (patch)
treef3feddbb7172dda121a8dcfbdba67d925fe2b5df /gcc/fortran/simplify.c
parent2ae04593dc8f68eeeca312b03043c4e5afe6bb99 (diff)
downloadgcc-e3d1ab2bdf7b9008475deb5432108db2f0c672be.tar.gz
gcc/
2010-09-28 Tobias Burnus <burnus@net-b.de> PR fortran/40569 PR fortran/40568 * toplev.h (save_decoded_options, save_decoded_options_count): New global variables. * toplev.c (save_decoded_options, save_decoded_options_count): export variables. gcc/fortran/ 2010-09-28 Tobias Burnus <burnus@net-b.de> PR fortran/40569 PR fortran/40568 * intrinsic.c (add_functions): Make compiler_version and compiler_options CLASS_INQUIRY. * gfortran.h (gfc_get_option_string): New prototype. * intrinsic.texi (COMPILER_VERSION, COMPILER_OPTIONS): Add documentation. (C_SIZEOF): Mark as inquiry function of ISO_C_BINDING. (ISO_FORTRAN_ENV): Refer to COMPILER_VERSION and COMPILER_OPTIONS. (ISO_C_BINDING): Refer to C_SIZEOF. * options.c (gfc_get_option_string): New function. * simplify.c (gfc_simplify_compiler_options): Use it. (gfc_simplify_compiler_version): Include compiler name. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@164698 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/fortran/simplify.c')
-rw-r--r--gcc/fortran/simplify.c20
1 files changed, 15 insertions, 5 deletions
diff --git a/gcc/fortran/simplify.c b/gcc/fortran/simplify.c
index 8748ecfba8b..cdefcb51533 100644
--- a/gcc/fortran/simplify.c
+++ b/gcc/fortran/simplify.c
@@ -6739,16 +6739,26 @@ gfc_convert_char_constant (gfc_expr *e, bt type ATTRIBUTE_UNUSED, int kind)
gfc_expr *
gfc_simplify_compiler_options (void)
{
- /* FIXME: PR40569 - return the proper compiler arguments. */
- return gfc_get_character_expr (gfc_default_character_kind,
- &gfc_current_locus, "", 0);
+ char *str;
+ gfc_expr *result;
+
+ str = gfc_get_option_string ();
+ result = gfc_get_character_expr (gfc_default_character_kind,
+ &gfc_current_locus, str, strlen (str));
+ gfc_free (str);
+ return result;
}
gfc_expr *
gfc_simplify_compiler_version (void)
{
+ char *buffer;
+ size_t len;
+
+ len = strlen ("GCC version ") + strlen (version_string) + 1;
+ buffer = (char*) alloca (len);
+ snprintf (buffer, len, "GCC version %s", version_string);
return gfc_get_character_expr (gfc_default_character_kind,
- &gfc_current_locus, version_string,
- strlen (version_string));
+ &gfc_current_locus, buffer, len);
}