]> git.ipfire.org Git - thirdparty/gcc.git/blobdiff - gcc/fortran/intrinsic.c
Wrap option names in gcc internal messages with %< and %>.
[thirdparty/gcc.git] / gcc / fortran / intrinsic.c
index 0c934e13dd7771c3aadba7b20a61aecbf183d12c..4797b3d95cfec181f01c250621bea5504ee0b963 100644 (file)
@@ -1,6 +1,6 @@
 /* Build up a list of intrinsic subroutines and functions for the
    name-resolution stage.
-   Copyright (C) 2000-2018 Free Software Foundation, Inc.
+   Copyright (C) 2000-2019 Free Software Foundation, Inc.
    Contributed by Andy Vaught & Katherine Holcomb
 
 This file is part of GCC.
@@ -211,6 +211,7 @@ do_ts29113_check (gfc_intrinsic_sym *specific, gfc_actual_arglist *arg)
               && specific->id != GFC_ISYM_SIZE
               && specific->id != GFC_ISYM_SIZEOF
               && specific->id != GFC_ISYM_UBOUND
+              && specific->id != GFC_ISYM_IS_CONTIGUOUS
               && specific->id != GFC_ISYM_C_LOC)
        {
          gfc_error ("Assumed-type argument at %L is not permitted as actual"
@@ -1124,8 +1125,8 @@ gfc_is_intrinsic (gfc_symbol* sym, int subroutine_flag, locus loc)
        gfc_warning_now (OPT_Wintrinsics_std, "The intrinsic %qs at %L is not "
                         "included in the selected standard but %s and %qs will"
                         " be treated as if declared EXTERNAL.  Use an"
-                        " appropriate -std=* option or define"
-                        " -fall-intrinsics to allow this intrinsic.",
+                        " appropriate %<-std=%>* option or define"
+                        " %<-fall-intrinsics%> to allow this intrinsic.",
                         sym->name, &loc, symstd, sym->name);
 
       return false;
@@ -2235,6 +2236,14 @@ add_functions (void)
 
   make_generic ("isatty", GFC_ISYM_ISATTY, GFC_STD_GNU);
 
+  add_sym_1 ("is_contiguous", GFC_ISYM_IS_CONTIGUOUS, CLASS_INQUIRY, ACTUAL_NO,
+            BT_LOGICAL, dl, GFC_STD_F2008,
+            gfc_check_is_contiguous, gfc_simplify_is_contiguous,
+            gfc_resolve_is_contiguous,
+            ar, BT_REAL, dr, REQUIRED);
+
+  make_generic ("is_contiguous", GFC_ISYM_IS_CONTIGUOUS, GFC_STD_F2008);
+
   add_sym_1 ("is_iostat_end", GFC_ISYM_IS_IOSTAT_END,
             CLASS_ELEMENTAL, ACTUAL_NO, BT_LOGICAL, dl, GFC_STD_F2003,
             gfc_check_i, gfc_simplify_is_iostat_end, NULL,
@@ -5019,6 +5028,8 @@ gfc_convert_type_warn (gfc_expr *expr, gfc_typespec *ts, int eflag, int wflag)
   if (ts->type == BT_UNKNOWN)
     goto bad;
 
+  expr->do_not_warn = ! wflag;
+
   /* NULL and zero size arrays get their type here, unless they already have a
      typespec.  */
   if ((expr->expr_type == EXPR_NULL