[Rose-commits] r217 - in trunk: . ROSE_ResearchPapers docs/Rose src/ROSETTA/Grammar src/ROSETTA/src src/frontend/CxxFrontend src/frontend/SageIII src/frontend/SageIII/sageInterface src/util/commandlineProcessing

liaoch at osp5.lbl.gov liaoch at osp5.lbl.gov
Sat Jan 24 13:03:43 PST 2009


Author: liaoch
Date: 2009-01-24 13:03:42 -0800 (Sat, 24 Jan 2009)
New Revision: 217

Added:
   trunk/ROSE_ResearchPapers/CompassInitialPaper.pdf
   trunk/ROSE_ResearchPapers/ParallelProgramAnalysis.pdf
   trunk/ROSE_ResearchPapers/SignatureVisualizationOfBinaries.pdf
   trunk/src/frontend/CxxFrontend/roseBinaryEDG-i686-apple-darwin-b199325a06e48e67acffdbae869b742e.tar.gz
   trunk/src/frontend/CxxFrontend/roseBinaryEDG-i686-pc-linux-gnu-b199325a06e48e67acffdbae869b742e.tar.gz
   trunk/src/frontend/CxxFrontend/roseBinaryEDG-x86_64-pc-linux-gnu-b199325a06e48e67acffdbae869b742e.tar.gz
Removed:
   trunk/src/frontend/CxxFrontend/roseBinaryEDG-i686-apple-darwin-4ecac736504adead307fcdd2d7551376.tar.gz
   trunk/src/frontend/CxxFrontend/roseBinaryEDG-i686-pc-linux-gnu-4ecac736504adead307fcdd2d7551376.tar.gz
   trunk/src/frontend/CxxFrontend/roseBinaryEDG-x86_64-pc-linux-gnu-4ecac736504adead307fcdd2d7551376.tar.gz
Modified:
   trunk/configure.in
   trunk/docs/Rose/roseHelpOutput.txt
   trunk/src/ROSETTA/Grammar/Support.code
   trunk/src/ROSETTA/src/support.C
   trunk/src/frontend/CxxFrontend/Makefile.am
   trunk/src/frontend/SageIII/sageInterface/sageBuilder.C
   trunk/src/frontend/SageIII/sageSupport.C
   trunk/src/util/commandlineProcessing/commandline_processing.C
   trunk/src/util/commandlineProcessing/commandline_processing.h
Log:
Load rose-0.9.4a-4107 into trunk.


Added: trunk/ROSE_ResearchPapers/CompassInitialPaper.pdf
===================================================================
(Binary files differ)


Property changes on: trunk/ROSE_ResearchPapers/CompassInitialPaper.pdf
___________________________________________________________________
Name: svn:mime-type
   + application/pdf

Added: trunk/ROSE_ResearchPapers/ParallelProgramAnalysis.pdf
===================================================================
(Binary files differ)


Property changes on: trunk/ROSE_ResearchPapers/ParallelProgramAnalysis.pdf
___________________________________________________________________
Name: svn:mime-type
   + application/pdf

Added: trunk/ROSE_ResearchPapers/SignatureVisualizationOfBinaries.pdf
===================================================================
(Binary files differ)


Property changes on: trunk/ROSE_ResearchPapers/SignatureVisualizationOfBinaries.pdf
___________________________________________________________________
Name: svn:mime-type
   + application/pdf

Modified: trunk/configure.in
===================================================================
--- trunk/configure.in	2009-01-23 21:04:14 UTC (rev 216)
+++ trunk/configure.in	2009-01-24 21:03:42 UTC (rev 217)
@@ -796,7 +796,7 @@
 
 AM_CONDITIONAL(BINARY_EDG_TARBALL_ENABLED, [test "x$binary_edg_tarball_enabled" = "xyes"])
 
-release_binary_compatibility_signature="4ecac736504adead307fcdd2d7551376" # This variable will be substituted in binary-EDG release copies of configure.in
+release_binary_compatibility_signature="b199325a06e48e67acffdbae869b742e" # This variable will be substituted in binary-EDG release copies of configure.in
 build_triplet_without_redhat=`${srcdir}/config/cleanConfigGuessOutput "$build"`
 expected_binary_edg_dirname="roseBinaryEDG-${build_triplet_without_redhat}-${release_binary_compatibility_signature}"
 expected_binary_edg_tarball="${expected_binary_edg_dirname}.tar.gz"

Modified: trunk/docs/Rose/roseHelpOutput.txt
===================================================================
--- trunk/docs/Rose/roseHelpOutput.txt	2009-01-23 21:04:14 UTC (rev 216)
+++ trunk/docs/Rose/roseHelpOutput.txt	2009-01-24 21:03:42 UTC (rev 217)
@@ -30,6 +30,8 @@
      -rose:Fortran, -rose:F, -rose:f
                              compile Fortran code, determining version of
                              Fortran from file suffix)
+     -rose:CoArrayFortran, -rose:CAF, -rose:caf
+                             compile Co-Array Fortran code (extension of Fortran 2003)
      -rose:Fortran2003, -rose:F2003, -rose:f2003
                              compile Fortran 2003 code
      -rose:Fortran95, -rose:F95, -rose:f95
@@ -56,7 +58,7 @@
                                phases (in CSV form) is placed for later
                                processing (using script/graphPerformance)
      -rose:exit_after_parser just call the parser (fortran only)
-     -rose:skip_syntax_check skip Fortran syntax checking (required for F2003 code
+     -rose:skip_syntax_check skip Fortran syntax checking (required for F2003 and Co-Array Fortran code
                                when using gfortran versions greater than 4.1)
      -rose:skip_rose         process command line and call backend directly,
                                skipping all ROSE-specific processing

Modified: trunk/src/ROSETTA/Grammar/Support.code
===================================================================
--- trunk/src/ROSETTA/Grammar/Support.code	2009-01-23 21:04:14 UTC (rev 216)
+++ trunk/src/ROSETTA/Grammar/Support.code	2009-01-24 21:03:42 UTC (rev 217)
@@ -4425,6 +4425,7 @@
           bool get_F90_only (void) const;
           bool get_F95_only (void) const;
           bool get_F2003_only (void) const;
+          bool get_CoArrayFortran_only (void) const;
 
           bool get_PHP_only(void) const;
 
@@ -10067,6 +10068,9 @@
      p_F95_only                = false;
      p_F2003_only              = false;
 
+  // DQ (1/23/2009): Added CoArray Fortran support.
+     p_CoArrayFortran_only     = false;
+
      p_PHP_only                = false;
 
      p_requires_C_preprocessor = false;
@@ -10285,8 +10289,11 @@
      p_sourceFileUsesFortran77FileExtension   = false;
      p_sourceFileUsesFortran90FileExtension   = false;
      p_sourceFileUsesFortran95FileExtension   = false;
-     p_sourceFileUsesFortran2003FileExtension = false;     
+     p_sourceFileUsesFortran2003FileExtension = false;
 
+  // DQ (1/23/2009): Added support for Co-Array Fortran (file extensions)
+     p_sourceFileUsesCoArrayFortranFileExtension = false;     
+
      p_sourceFileUsesPHPFileExtension = false;
 
      p_sourceFileUsesBinaryFileExtension = false;
@@ -10655,6 +10662,7 @@
      printf ("     p_F90_only()                           = %s \n",(p_F90_only == true) ? "true" : "false");
      printf ("     p_F95_only()                           = %s \n",(p_F95_only == true) ? "true" : "false");
      printf ("     p_F2003_only()                         = %s \n",(p_F2003_only == true) ? "true" : "false");
+     printf ("     p_CoArrayFortran_only()                = %s \n",(p_CoArrayFortran_only == true) ? "true" : "false");
      printf ("     p_PHP_only()                           = %s \n",(p_PHP_only == true) ? "true" : "false");
 
      printf ("     p_requires_C_preprocessor              = %s \n",(p_requires_C_preprocessor == true) ? "true" : "false");
@@ -11309,6 +11317,19 @@
    }
 
 bool
+SgProject::get_CoArrayFortran_only (void) const
+   {
+  // look at how the files are set
+     bool result = false;
+     for (int i = 0; i < numberOfFiles(); i++)
+        {
+          SgFile & file = get_file(i);
+          result = result || (bool) file.get_CoArrayFortran_only();
+        }
+     return result;
+   }
+
+bool
 SgProject::get_PHP_only (void) const
    {
   // look at how the files are set

Modified: trunk/src/ROSETTA/src/support.C
===================================================================
--- trunk/src/ROSETTA/src/support.C	2009-01-23 21:04:14 UTC (rev 216)
+++ trunk/src/ROSETTA/src/support.C	2009-01-24 21:03:42 UTC (rev 217)
@@ -801,6 +801,12 @@
                                      NO_CONSTRUCTOR_PARAMETER, BUILD_FLAG_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE);
      File.setDataPrototype         ( "bool", "F2003_only", "= false",
                                      NO_CONSTRUCTOR_PARAMETER, BUILD_FLAG_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE);
+
+  // DQ (1/23/2009): Co-Array Fortran (CAF) support
+     File.setDataPrototype         ( "bool", "CoArrayFortran_only", "= false",
+                                     NO_CONSTRUCTOR_PARAMETER, BUILD_FLAG_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE);
+
+  // PHP support
      File.setDataPrototype         ( "bool", "PHP_only", "= false",
                                      NO_CONSTRUCTOR_PARAMETER, BUILD_FLAG_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE);
 
@@ -1039,6 +1045,8 @@
                  NO_CONSTRUCTOR_PARAMETER, BUILD_FLAG_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE);
      File.setDataPrototype         ( "bool", "sourceFileUsesFortran2003FileExtension", "= false",
                  NO_CONSTRUCTOR_PARAMETER, BUILD_FLAG_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE);
+     File.setDataPrototype         ( "bool", "sourceFileUsesCoArrayFortranFileExtension", "= false",
+                 NO_CONSTRUCTOR_PARAMETER, BUILD_FLAG_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE);
      File.setDataPrototype         ( "bool", "sourceFileUsesPHPFileExtension", "= false",
                  NO_CONSTRUCTOR_PARAMETER, BUILD_FLAG_ACCESS_FUNCTIONS, NO_TRAVERSAL, NO_DELETE);
      File.setDataPrototype         ( "bool", "sourceFileUsesBinaryFileExtension", "= false",

Modified: trunk/src/frontend/CxxFrontend/Makefile.am
===================================================================
--- trunk/src/frontend/CxxFrontend/Makefile.am	2009-01-23 21:04:14 UTC (rev 216)
+++ trunk/src/frontend/CxxFrontend/Makefile.am	2009-01-24 21:03:42 UTC (rev 217)
@@ -20,4 +20,4 @@
 clean-local:
 	-rm -rf .libs/
 
-EXTRA_DIST = roseBinaryEDG-i686-apple-darwin-4ecac736504adead307fcdd2d7551376.tar.gz roseBinaryEDG-i686-pc-linux-gnu-4ecac736504adead307fcdd2d7551376.tar.gz roseBinaryEDG-x86_64-pc-linux-gnu-4ecac736504adead307fcdd2d7551376.tar.gz
+EXTRA_DIST = roseBinaryEDG-i686-apple-darwin-b199325a06e48e67acffdbae869b742e.tar.gz roseBinaryEDG-i686-pc-linux-gnu-b199325a06e48e67acffdbae869b742e.tar.gz roseBinaryEDG-x86_64-pc-linux-gnu-b199325a06e48e67acffdbae869b742e.tar.gz

Deleted: trunk/src/frontend/CxxFrontend/roseBinaryEDG-i686-apple-darwin-4ecac736504adead307fcdd2d7551376.tar.gz
===================================================================
(Binary files differ)

Added: trunk/src/frontend/CxxFrontend/roseBinaryEDG-i686-apple-darwin-b199325a06e48e67acffdbae869b742e.tar.gz
===================================================================
(Binary files differ)


Property changes on: trunk/src/frontend/CxxFrontend/roseBinaryEDG-i686-apple-darwin-b199325a06e48e67acffdbae869b742e.tar.gz
___________________________________________________________________
Name: svn:mime-type
   + application/x-gzip

Deleted: trunk/src/frontend/CxxFrontend/roseBinaryEDG-i686-pc-linux-gnu-4ecac736504adead307fcdd2d7551376.tar.gz
===================================================================
(Binary files differ)

Added: trunk/src/frontend/CxxFrontend/roseBinaryEDG-i686-pc-linux-gnu-b199325a06e48e67acffdbae869b742e.tar.gz
===================================================================
(Binary files differ)


Property changes on: trunk/src/frontend/CxxFrontend/roseBinaryEDG-i686-pc-linux-gnu-b199325a06e48e67acffdbae869b742e.tar.gz
___________________________________________________________________
Name: svn:mime-type
   + application/x-gzip

Deleted: trunk/src/frontend/CxxFrontend/roseBinaryEDG-x86_64-pc-linux-gnu-4ecac736504adead307fcdd2d7551376.tar.gz
===================================================================
(Binary files differ)

Added: trunk/src/frontend/CxxFrontend/roseBinaryEDG-x86_64-pc-linux-gnu-b199325a06e48e67acffdbae869b742e.tar.gz
===================================================================
(Binary files differ)


Property changes on: trunk/src/frontend/CxxFrontend/roseBinaryEDG-x86_64-pc-linux-gnu-b199325a06e48e67acffdbae869b742e.tar.gz
___________________________________________________________________
Name: svn:mime-type
   + application/x-gzip

Modified: trunk/src/frontend/SageIII/sageInterface/sageBuilder.C
===================================================================
--- trunk/src/frontend/SageIII/sageInterface/sageBuilder.C	2009-01-23 21:04:14 UTC (rev 216)
+++ trunk/src/frontend/SageIII/sageInterface/sageBuilder.C	2009-01-24 21:03:42 UTC (rev 217)
@@ -114,8 +114,7 @@
 // extern int i;
 //  int i;
 SgVariableDeclaration* 
-SageBuilder::buildVariableDeclaration \
- (const SgName & name, SgType* type, SgInitializer * varInit, SgScopeStatement* scope)
+SageBuilder::buildVariableDeclaration (const SgName & name, SgType* type, SgInitializer * varInit, SgScopeStatement* scope)
  //(const SgName & name, SgType* type, SgInitializer * varInit= NULL, SgScopeStatement* scope = NULL)
 {
   if (scope == NULL)
@@ -161,8 +160,7 @@
 // extern int i;
 //  int i;
 SgVariableDeclaration* 
-SageBuilder::buildVariableDeclaration_nfi \
- (const SgName & name, SgType* type, SgInitializer * varInit, SgScopeStatement* scope)
+SageBuilder::buildVariableDeclaration_nfi (const SgName & name, SgType* type, SgInitializer * varInit, SgScopeStatement* scope)
  //(const SgName & name, SgType* type, SgInitializer * varInit= NULL, SgScopeStatement* scope = NULL)
 {
   ROSE_ASSERT (scope != NULL);
@@ -2843,7 +2841,10 @@
     nondefdecl->setForward();    
     if (scope != NULL) {
       SgClassSymbol* mysymbol = new SgClassSymbol(nondefdecl);
-      ROSE_ASSERT(mysymbol);
+      ROSE_ASSERT(mysymbol != NULL);
+
+   // printf ("In SageBuilder::buildNondefiningClassDeclaration(): for nondefdecl = %p built SgClassSymbol = %p \n",nondefdecl,mysymbol);
+
       scope->insert_symbol(name, mysymbol);
       nondefdecl->set_scope(scope);
       nondefdecl->set_parent(scope);

Modified: trunk/src/frontend/SageIII/sageSupport.C
===================================================================
--- trunk/src/frontend/SageIII/sageSupport.C	2009-01-23 21:04:14 UTC (rev 216)
+++ trunk/src/frontend/SageIII/sageSupport.C	2009-01-24 21:03:42 UTC (rev 217)
@@ -1014,6 +1014,26 @@
              }
         }
 
+     if ( CommandlineProcessing::isOption(argv,"-rose:","(caf|CAF|CoArrayFortran)",true) == true )
+        {
+          if ( SgProject::get_verbose() >= 1 )
+               printf ("Co-Array Fortran only mode ON \n");
+          set_CoArrayFortran_only(true);
+
+       // Set this as also being F2003 code since Co-Array Fortran is an extension of Fortran 2003
+          set_F2003_only(true);
+          set_Fortran_only(true);
+
+       // It is requested (by Laksono at Rice) that CoArray Fortran defaults be to skip the syntax checking
+          set_skip_syntax_check(false);
+
+          if (get_sourceFileUsesCoArrayFortranFileExtension() == false)
+             {
+               printf ("Warning, Non Co-Array Fortran source file name specificed with explicit -rose:CoArrayFortran language option! \n");
+               set_CoArrayFortran_only(false);
+             }
+        }
+
   // Fixed format v.s. free format option handling (ROSE defaults to fix or free format, depending on the file extension).
   // F77 default is fixed format, F90 and later default is free format.
   // Fortran source file format options for different compilers(for IBM/XL,Intel,Portland,GNU):
@@ -1637,6 +1657,7 @@
      optionCount = sla(argv, "-rose:", "($)", "(f90|F90|Fortran90)",1);
      optionCount = sla(argv, "-rose:", "($)", "(f95|F95|Fortran95)",1);
      optionCount = sla(argv, "-rose:", "($)", "(f2003|F2003|Fortran2003)",1);
+     optionCount = sla(argv, "-rose:", "($)", "(caf|CAF|CoArrayFortran)",1);
 
   // DQ (8/27/2007):Support for Fortran language output format
 
@@ -2063,6 +2084,20 @@
                     file->set_F2003_only(true);
                   }
 
+               if (CommandlineProcessing::isCoArrayFortranFileNameSuffix(filenameExtension) == true)
+                  {
+                 // printf ("Calling file->set_sourceFileUsesFortran2003FileExtension(true) \n");
+                    file->set_sourceFileUsesCoArrayFortranFileExtension(true);
+
+                 // Use the filename suffix as a default means to set this value
+                    file->set_outputFormat(SgFile::e_free_form_output_format);
+                    file->set_backendCompileFormat(SgFile::e_free_form_output_format);
+
+                 // DQ (1/23/2009): I think that since CAF is an extension of F2003, we want to mark this as F2003 as well.
+                    file->set_F2003_only(true);
+                    file->set_CoArrayFortran_only(true);
+                  }
+
                if (CommandlineProcessing::isFortran2008FileNameSuffix(filenameExtension) == true)
                   {
                     printf ("Sorry, Fortran 2008 specific support is not yet implemented in ROSE ... \n");
@@ -4214,16 +4249,17 @@
 #if 0
                this->get_project()->display("SgProject::callFrontEnd()");
                display("SgFile::callFrontEnd()");
-               printf ("get_C_only()       = %s \n",(get_C_only()       == true) ? "true" : "false");
-               printf ("get_C99_only()     = %s \n",(get_C99_only()     == true) ? "true" : "false");
-               printf ("get_Cxx_only()     = %s \n",(get_Cxx_only()     == true) ? "true" : "false");
-               printf ("get_Fortran_only() = %s \n",(get_Fortran_only() == true) ? "true" : "false");
-               printf ("get_F77_only()     = %s \n",(get_F77_only()     == true) ? "true" : "false");
-               printf ("get_F90_only()     = %s \n",(get_F90_only()     == true) ? "true" : "false");
-               printf ("get_F95_only()     = %s \n",(get_F95_only()     == true) ? "true" : "false");
-               printf ("get_F2003_only()   = %s \n",(get_F2003_only()   == true) ? "true" : "false");
-               printf ("get_PHP_only()     = %s \n",(get_PHP_only()     == true) ? "true" : "false");
-               printf ("get_binary_only()  = %s \n",(get_binary_only()  == true) ? "true" : "false");
+               printf ("get_C_only()              = %s \n",(get_C_only()       == true) ? "true" : "false");
+               printf ("get_C99_only()            = %s \n",(get_C99_only()     == true) ? "true" : "false");
+               printf ("get_Cxx_only()            = %s \n",(get_Cxx_only()     == true) ? "true" : "false");
+               printf ("get_Fortran_only()        = %s \n",(get_Fortran_only() == true) ? "true" : "false");
+               printf ("get_F77_only()            = %s \n",(get_F77_only()     == true) ? "true" : "false");
+               printf ("get_F90_only()            = %s \n",(get_F90_only()     == true) ? "true" : "false");
+               printf ("get_F95_only()            = %s \n",(get_F95_only()     == true) ? "true" : "false");
+               printf ("get_F2003_only()          = %s \n",(get_F2003_only()   == true) ? "true" : "false");
+               printf ("get_CoArrayFortran_only() = %s \n",(get_CoArrayFortran_only()   == true) ? "true" : "false");
+               printf ("get_PHP_only()            = %s \n",(get_PHP_only()     == true) ? "true" : "false");
+               printf ("get_binary_only()         = %s \n",(get_binary_only()  == true) ? "true" : "false");
 
             // DQ (18/2008): We now explicit mark files that require C preprocessing...
                printf ("get_requires_C_preprocessor() = %s \n",(get_requires_C_preprocessor() == true) ? "true" : "false");
@@ -5344,17 +5380,18 @@
 
 #if 0
   // display("SgFile::buildCompilerCommandLineOptions()");
-     printf ("C   compiler       = %s \n",BACKEND_C_COMPILER_NAME_WITH_PATH);
-     printf ("C++ compiler       = %s \n",BACKEND_CXX_COMPILER_NAME_WITH_PATH);
-     printf ("Fortran compiler   = %s \n",BACKEND_FORTRAN_COMPILER_NAME_WITH_PATH);
-     printf ("get_C_only()       = %s \n",(get_C_only() == true) ? "true" : "false");
-     printf ("get_C99_only()     = %s \n",(get_C99_only() == true) ? "true" : "false");
-     printf ("get_Cxx_only()     = %s \n",(get_Cxx_only() == true) ? "true" : "false");
-     printf ("get_Fortran_only() = %s \n",(get_Fortran_only() == true) ? "true" : "false");
-     printf ("get_F77_only()     = %s \n",(get_F77_only() == true) ? "true" : "false");
-     printf ("get_F90_only()     = %s \n",(get_F90_only() == true) ? "true" : "false");
-     printf ("get_F95_only()     = %s \n",(get_F95_only() == true) ? "true" : "false");
-     printf ("get_F2003_only()   = %s \n",(get_F2003_only() == true) ? "true" : "false");
+     printf ("C   compiler              = %s \n",BACKEND_C_COMPILER_NAME_WITH_PATH);
+     printf ("C++ compiler              = %s \n",BACKEND_CXX_COMPILER_NAME_WITH_PATH);
+     printf ("Fortran compiler          = %s \n",BACKEND_FORTRAN_COMPILER_NAME_WITH_PATH);
+     printf ("get_C_only()              = %s \n",(get_C_only() == true) ? "true" : "false");
+     printf ("get_C99_only()            = %s \n",(get_C99_only() == true) ? "true" : "false");
+     printf ("get_Cxx_only()            = %s \n",(get_Cxx_only() == true) ? "true" : "false");
+     printf ("get_Fortran_only()        = %s \n",(get_Fortran_only() == true) ? "true" : "false");
+     printf ("get_F77_only()            = %s \n",(get_F77_only() == true) ? "true" : "false");
+     printf ("get_F90_only()            = %s \n",(get_F90_only() == true) ? "true" : "false");
+     printf ("get_F95_only()            = %s \n",(get_F95_only() == true) ? "true" : "false");
+     printf ("get_F2003_only()          = %s \n",(get_F2003_only() == true) ? "true" : "false");
+     printf ("get_CoArrayFortran_only() = %s \n",(get_CoArrayFortran_only() == true) ? "true" : "false");
 #endif
 
   // DQ (9/10/2006): We now explicitly store the C and C++ compiler names with 
@@ -6085,6 +6122,8 @@
 "     -rose:Fortran, -rose:F, -rose:f\n"
 "                             compile Fortran code, determining version of\n"
 "                             Fortran from file suffix)\n"
+"     -rose:CoArrayFortran, -rose:CAF, -rose:caf\n"
+"                             compile Co-Array Fortran code (extension of Fortran 2003)\n"
 "     -rose:Fortran2003, -rose:F2003, -rose:f2003\n"
 "                             compile Fortran 2003 code\n"
 "     -rose:Fortran95, -rose:F95, -rose:f95\n"
@@ -6111,7 +6150,7 @@
 "                               phases (in CSV form) is placed for later\n"
 "                               processing (using script/graphPerformance)\n"
 "     -rose:exit_after_parser just call the parser (fortran only)\n"
-"     -rose:skip_syntax_check skip Fortran syntax checking (required for F2003 code\n"
+"     -rose:skip_syntax_check skip Fortran syntax checking (required for F2003 and Co-Array Fortran code\n"
 "                               when using gfortran versions greater than 4.1)\n"
 "     -rose:skip_rose         process command line and call backend directly,\n"
 "                               skipping all ROSE-specific processing\n"

Modified: trunk/src/util/commandlineProcessing/commandline_processing.C
===================================================================
--- trunk/src/util/commandlineProcessing/commandline_processing.C	2009-01-23 21:04:14 UTC (rev 216)
+++ trunk/src/util/commandlineProcessing/commandline_processing.C	2009-01-24 21:03:42 UTC (rev 217)
@@ -663,6 +663,7 @@
          || suffix == "f95"
          || suffix == "f03"
          || suffix == "f08"
+         || suffix == "caf"
       // For Fortran, upper case is used to indicate that CPP preprocessing is required.
          || suffix == "F"
          || suffix == "F77" 
@@ -670,6 +671,7 @@
          || suffix == "F95"
          || suffix == "F03"
          || suffix == "F08"
+         || suffix == "CAF"
          || suffix == "rmod" //FMZ 5/28/2008: for importing module declaration
              )
 #else//It is a case insensitive system
@@ -685,6 +687,7 @@
          || suffix == "F95"
          || suffix == "F03"
          || suffix == "F08"
+         || suffix == "CAF"
          || suffix == "rmod" //FMZ 5/28/2008: for importing module declaration
              )
 #endif
@@ -710,6 +713,7 @@
          || suffix == "f95"
          || suffix == "f03"
          || suffix == "f08"
+         || suffix == "caf"
          || suffix == "rmod" //FMZ (10/15/2008)
              )
           returnValue = false;
@@ -844,6 +848,29 @@
      return returnValue;
    }
 
+bool
+CommandlineProcessing::isCoArrayFortranFileNameSuffix ( const std::string & suffix )
+   {
+  // DQ (1/23/2009): Added Co-Array fortran mode specific suffix checking
+
+  // Returns true only if this is a valid Co-Array Fortran (extension of Fortran 2003) source file name extension (suffix)
+
+     bool returnValue = false;
+
+  // For now define CASE_SENSITIVE_SYSTEM to be true, as we are currently a UNIXish project.
+
+#if(CASE_SENSITIVE_SYSTEM == 1)
+     if ( suffix == "caf" || suffix == "CAF" )
+#else//It is a case insensitive system
+     if ( suffix == "caf" )
+#endif
+        {
+          returnValue = true;
+        }
+
+     return returnValue;
+   }
+
 //Liao, 6/6/2008 Support for UPC
 bool
 CommandlineProcessing::isUPCFileNameSuffix ( const std::string & suffix )
@@ -910,6 +937,7 @@
           validSourceFileSuffixes.push_back(".f95");
           validSourceFileSuffixes.push_back(".f03");
           validSourceFileSuffixes.push_back(".f08");
+          validSourceFileSuffixes.push_back(".caf");
      /*
           validSourceFileSuffixes.push_back(".CC");
           validSourceFileSuffixes.push_back(".CP");
@@ -923,6 +951,7 @@
           validSourceFileSuffixes.push_back(".F95");
           validSourceFileSuffixes.push_back(".F03");
           validSourceFileSuffixes.push_back(".F08");
+          validSourceFileSuffixes.push_back(".CAF");
           validSourceFileSuffixes.push_back(".rmod"); //FMZ 5/28/2008
 
      // Liao (6/6/2008)  Support for UPC   
@@ -948,12 +977,14 @@
           validSourceFileSuffixes.push_back(".f95");
           validSourceFileSuffixes.push_back(".f03");
           validSourceFileSuffixes.push_back(".f08");
+          validSourceFileSuffixes.push_back(".caf");
           validSourceFileSuffixes.push_back(".F");
           validSourceFileSuffixes.push_back(".F77");
           validSourceFileSuffixes.push_back(".F90");
           validSourceFileSuffixes.push_back(".F95");
           validSourceFileSuffixes.push_back(".F03");
           validSourceFileSuffixes.push_back(".F08");
+          validSourceFileSuffixes.push_back(".CAF");
           validSourceFileSuffixes.push_back(".rmod"); //FMZ 5/28/2008
           validSourceFileSuffixes.push_back(".upc");
           validSourceFileSuffixes.push_back(".php");

Modified: trunk/src/util/commandlineProcessing/commandline_processing.h
===================================================================
--- trunk/src/util/commandlineProcessing/commandline_processing.h	2009-01-23 21:04:14 UTC (rev 216)
+++ trunk/src/util/commandlineProcessing/commandline_processing.h	2009-01-24 21:03:42 UTC (rev 217)
@@ -91,6 +91,9 @@
           bool isFortran2003FileNameSuffix ( const std::string & suffix );
           bool isFortran2008FileNameSuffix ( const std::string & suffix );
 
+       // DQ (1/23/2009): Added support for Co-Array Fortran file extension.
+          bool isCoArrayFortranFileNameSuffix ( const std::string & suffix );
+
           bool isPHPFileNameSuffix ( const std::string & suffix );
 
           void initSourceFileSuffixList();



More information about the Rose-commits mailing list