aboutsummaryrefslogtreecommitdiff
path: root/gcc/fortran/simplify.c
diff options
context:
space:
mode:
authorTobias Burnus <burnus@net-b.de>2006-10-08 15:21:42 +0200
committerFrançois-Xavier Coudert <fxcoudert@gcc.gnu.org>2006-10-08 13:21:42 +0000
commitbec93d793735ff33a75a0e77ba96e78dd4b01262 (patch)
tree4454e84128bde146be79c1a71c6c353d05b947ae /gcc/fortran/simplify.c
parent3ac25120de29ce52ab034ba79612657f8c9cdfbe (diff)
downloadgcc-bec93d793735ff33a75a0e77ba96e78dd4b01262.zip
gcc-bec93d793735ff33a75a0e77ba96e78dd4b01262.tar.gz
gcc-bec93d793735ff33a75a0e77ba96e78dd4b01262.tar.bz2
re PR fortran/28585 (Fortran 2003: Support NEW_LINE intrinsic)
PR fortran/28585 * intrinsic.c (add_functions): Add new_line Fortran 2003 intrinsic. * intrinsic.h: Add gfc_simplify_new_line and gfc_check_new_line prototypes. * check.c (gfc_check_new_line): New function. * simplify.c (gfc_simplify_new_line): New function. * intrinsic.texi: Document new_line intrinsic. * gfortran.dg/new_line.f90: New test. From-SVN: r117555
Diffstat (limited to 'gcc/fortran/simplify.c')
-rw-r--r--gcc/fortran/simplify.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/gcc/fortran/simplify.c b/gcc/fortran/simplify.c
index c9ca230..9d35bae 100644
--- a/gcc/fortran/simplify.c
+++ b/gcc/fortran/simplify.c
@@ -2615,6 +2615,25 @@ simplify_nint (const char *name, gfc_expr * e, gfc_expr * k)
gfc_expr *
+gfc_simplify_new_line (gfc_expr * e)
+{
+ gfc_expr *result;
+
+ if (e->expr_type != EXPR_CONSTANT)
+ return NULL;
+
+ result = gfc_constant_result (BT_CHARACTER, e->ts.kind, &e->where);
+
+ result->value.character.string = gfc_getmem (2);
+
+ result->value.character.length = 1;
+ result->value.character.string[0] = '\n';
+ result->value.character.string[1] = '\0'; /* For debugger */
+ return result;
+}
+
+
+gfc_expr *
gfc_simplify_nint (gfc_expr * e, gfc_expr * k)
{
return simplify_nint ("NINT", e, k);