diff gcc/fortran/libgfortran.h @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children 1830386684a0
line wrap: on
line diff
--- a/gcc/fortran/libgfortran.h	Fri Oct 27 22:46:09 2017 +0900
+++ b/gcc/fortran/libgfortran.h	Thu Oct 25 07:37:49 2018 +0900
@@ -1,5 +1,5 @@
 /* Header file to the Fortran front-end and runtime library
-   Copyright (C) 2007-2017 Free Software Foundation, Inc.
+   Copyright (C) 2007-2018 Free Software Foundation, Inc.
 
 This file is part of GCC.
 
@@ -22,9 +22,9 @@
    Note that no features were obsoleted nor deleted in F2003.
    Please remember to keep those definitions in sync with
    gfortran.texi.  */
-/* For now, use F2015 = GFC_STD_GNU.  */
-#define GFC_STD_F2015	        (1<<5)	/* PLACEHOLDER for Fortran 2015.  */
-#define GFC_STD_F2008_TS	(1<<9)	/* POST-F2008 technical reports.  */
+#define GFC_STD_F2018_DEL	(1<<11)	/* Deleted in F2018.  */
+#define GFC_STD_F2018_OBS	(1<<10)	/* Obsolescent in F2018.  */
+#define GFC_STD_F2018		(1<<9)	/* New in F2018.  */
 #define GFC_STD_F2008_OBS	(1<<8)	/* Obsolescent in F2008.  */
 #define GFC_STD_F2008		(1<<7)	/* New in F2008.  */
 #define GFC_STD_LEGACY		(1<<6)	/* Backward compatibility.  */
@@ -36,6 +36,15 @@
 #define GFC_STD_F77		(1<<0)	/* Included in F77, but not deleted or
 					   obsolescent in later standards.  */
 
+/* Combinations of the above flags that specify which classes of features
+ * are allowed with a certain -std option.  */
+#define GFC_STD_OPT_F95		(GFC_STD_F77 | GFC_STD_F95 | GFC_STD_F95_OBS  \
+				| GFC_STD_F2008_OBS | GFC_STD_F2018_OBS \
+				| GFC_STD_F2018_DEL)
+#define GFC_STD_OPT_F03		(GFC_STD_OPT_F95 | GFC_STD_F2003)
+#define GFC_STD_OPT_F08		(GFC_STD_OPT_F03 | GFC_STD_F2008)
+#define GFC_STD_OPT_F18		((GFC_STD_OPT_F08 | GFC_STD_F2018) \
+				& (~GFC_STD_F2018_DEL))
 
 /* Bitmasks for the various FPE that can be enabled.  These need to be straight integers
    e.g., 8 instead of (1<<3), because they will be included in Fortran source.  */
@@ -149,15 +158,13 @@
 #define GFC_STDOUT_UNIT_NUMBER 6
 #define GFC_STDERR_UNIT_NUMBER 0
 
-
-/* FIXME: Increase to 15 for Fortran 2008. Also needs changes to
-   GFC_DTYPE_RANK_MASK. See PR 36825.  */
-#define GFC_MAX_DIMENSIONS 7
+/* F2003 onward. For std < F2003, error caught in array.c(gfc_match_array_ref).  */
+#define GFC_MAX_DIMENSIONS 15
 
-#define GFC_DTYPE_RANK_MASK 0x07
-#define GFC_DTYPE_TYPE_SHIFT 3
-#define GFC_DTYPE_TYPE_MASK 0x38
-#define GFC_DTYPE_SIZE_SHIFT 6
+#define GFC_DTYPE_RANK_MASK 0x0F
+#define GFC_DTYPE_TYPE_SHIFT 4
+#define GFC_DTYPE_TYPE_MASK 0x70
+#define GFC_DTYPE_SIZE_SHIFT 7
 
 /* Basic types.  BT_VOID is used by ISO C Binding so funcs like c_f_pointer
    can take any arg with the pointer attribute as a param.  These are also