From e6412e084ed6ba77c17292e3e7c5b9d8e2450bab Mon Sep 17 00:00:00 2001 From: Bill Hoffman Date: Wed, 25 Apr 2012 17:04:28 -0400 Subject: [PATCH 001/101] Add support to ctest for GTM mumps coverage. --- Source/CMakeLists.txt | 1 + Source/CTest/cmCTestCoverageHandler.cxx | 21 ++ Source/CTest/cmCTestCoverageHandler.h | 2 + Source/CTest/cmParseGTMCoverage.cxx | 398 ++++++++++++++++++++++++ Source/CTest/cmParseGTMCoverage.h | 50 +++ Source/CTest/cmParsePHPCoverage.h | 3 - 6 files changed, 472 insertions(+), 3 deletions(-) create mode 100644 Source/CTest/cmParseGTMCoverage.cxx create mode 100644 Source/CTest/cmParseGTMCoverage.h diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt index f9d1c0359..1ef67da9e 100644 --- a/Source/CMakeLists.txt +++ b/Source/CMakeLists.txt @@ -423,6 +423,7 @@ SET(CTEST_SRCS cmCTest.cxx CTest/cmCTestConfigureHandler.cxx CTest/cmCTestCoverageCommand.cxx CTest/cmCTestCoverageHandler.cxx + CTest/cmParseGTMCoverage.cxx CTest/cmParsePHPCoverage.cxx CTest/cmCTestEmptyBinaryDirectoryCommand.cxx CTest/cmCTestGenericHandler.cxx diff --git a/Source/CTest/cmCTestCoverageHandler.cxx b/Source/CTest/cmCTestCoverageHandler.cxx index 309abb16d..6c99928b3 100644 --- a/Source/CTest/cmCTestCoverageHandler.cxx +++ b/Source/CTest/cmCTestCoverageHandler.cxx @@ -11,6 +11,7 @@ ============================================================================*/ #include "cmCTestCoverageHandler.h" #include "cmParsePHPCoverage.h" +#include "cmParseGTMCoverage.h" #include "cmCTest.h" #include "cmake.h" #include "cmMakefile.h" @@ -373,21 +374,29 @@ int cmCTestCoverageHandler::ProcessHandler() } int file_count = 0; file_count += this->HandleGCovCoverage(&cont); + error = cont.Error; if ( file_count < 0 ) { return error; } file_count += this->HandleTracePyCoverage(&cont); + error = cont.Error; if ( file_count < 0 ) { return error; } file_count += this->HandlePHPCoverage(&cont); + error = cont.Error; if ( file_count < 0 ) { return error; } + file_count += this->HandleGTMCoverage(&cont); error = cont.Error; + if ( file_count < 0 ) + { + return error; + } std::set uncovered = this->FindUncoveredFiles(&cont); @@ -751,6 +760,18 @@ int cmCTestCoverageHandler::HandlePHPCoverage( } return static_cast(cont->TotalCoverage.size()); } +//---------------------------------------------------------------------- +int cmCTestCoverageHandler::HandleGTMCoverage( + cmCTestCoverageHandlerContainer* cont) +{ + cmParseGTMCoverage cov(*cont, this->CTest); + std::string coverageFile = this->CTest->GetBinaryDir() + "/gtm_coverage.mcov"; + if(cmSystemTools::FileExists(coverageFile.c_str())) + { + cov.ReadGTMCoverage(coverageFile.c_str()); + } + return static_cast(cont->TotalCoverage.size()); +} //---------------------------------------------------------------------- int cmCTestCoverageHandler::HandleGCovCoverage( diff --git a/Source/CTest/cmCTestCoverageHandler.h b/Source/CTest/cmCTestCoverageHandler.h index d3e8503e1..f4c275fc0 100644 --- a/Source/CTest/cmCTestCoverageHandler.h +++ b/Source/CTest/cmCTestCoverageHandler.h @@ -70,6 +70,8 @@ private: //! Handle coverage using xdebug php coverage int HandlePHPCoverage(cmCTestCoverageHandlerContainer* cont); + //! Handle coverage using GTM + int HandleGTMCoverage(cmCTestCoverageHandlerContainer* cont); //! Handle coverage using Bullseye int HandleBullseyeCoverage(cmCTestCoverageHandlerContainer* cont); diff --git a/Source/CTest/cmParseGTMCoverage.cxx b/Source/CTest/cmParseGTMCoverage.cxx new file mode 100644 index 000000000..16e0f614b --- /dev/null +++ b/Source/CTest/cmParseGTMCoverage.cxx @@ -0,0 +1,398 @@ +#include "cmStandardIncludes.h" +#include +#include +#include "cmSystemTools.h" +#include "cmParseGTMCoverage.h" +#include +#include + + +cmParseGTMCoverage::cmParseGTMCoverage(cmCTestCoverageHandlerContainer& cont, + cmCTest* ctest) + :Coverage(cont), CTest(ctest) +{ +} + +bool cmParseGTMCoverage::ReadGTMCoverage(const char* file) +{ + // Read the gtm_coverage.mcov file, that has two lines of data: + // packages:/full/path/to/Vista/Packages + // coverage_dir:/full/path/to/dir/with/*.mcov + std::ifstream in(file); + if(!in) + { + return false; + } + std::string line; + cmSystemTools::GetLineFromStream(in, line); + std::string::size_type pos = line.find(':', 0); + std::string packages; + if(pos != std::string::npos) + { + packages = line.substr(pos+1); + } + cmSystemTools::GetLineFromStream(in, line); + pos = line.find(':', 0); + std::string coverage_dir; + if(pos != std::string::npos) + { + coverage_dir = line.substr(pos+1); + } + // load the mumps files from the packages directory + this->LoadPackages(packages.c_str()); + // now load the *.mcov files from the coverage directory + this->LoadCoverageData(coverage_dir.c_str()); + return true; +} + +void cmParseGTMCoverage::InitializeFile(std::string& file) +{ + // initialize the coverage information for a given mumps file + std::ifstream in(file.c_str()); + if(!in) + { + return; + } + std::string line; + cmCTestCoverageHandlerContainer::SingleFileCoverageVector& + coverageVector = this->Coverage.TotalCoverage[file]; + if(!cmSystemTools::GetLineFromStream(in, line)) + { + return; + } + // first line of a .m file can never be run + coverageVector.push_back(-1); + while( cmSystemTools::GetLineFromStream(in, line) ) + { + // putting in a 0 for a line means it is executable code + // putting in a -1 for a line means it is not executable code + int val = -1; // assume line is not executable + bool found = false; + std::string::size_type i = 0; + // (1) Search for the first whitespace or semicolon character on a line. + //This will skip over labels if the line starts with one, or will simply + //be the first character on the line for non-label lines. + for(; i < line.size(); ++i) + { + if(line[i] == ' ' || line[i] == '\t' || line[i] == ';') + { + found = true; + break; + } + } + if(found) + { + // (2) If the first character found above is whitespace then continue the + // search for the first following non-whitespace character. + if(line[i] == ' ' || line[i] == '\t') + { + while(i < line.size() && (line[i] == ' ' || line[i] == '\t')) + { + i++; + } + } + // (3) If the character found is not a semicolon then the line counts for + // coverage. + if(i < line.size() && line[i] != ';') + { + val = 0; + } + } + coverageVector.push_back(val); + } +} + +bool cmParseGTMCoverage::LoadPackages(const char* d) +{ + cmsys::Glob glob; + glob.RecurseOn(); + std::string pat = d; + pat += "/*.m"; + glob.FindFiles(pat.c_str()); + std::vector& files = glob.GetFiles(); + std::vector::iterator fileIt; + for ( fileIt = files.begin(); fileIt != files.end(); + ++ fileIt ) + { + std::string name = cmSystemTools::GetFilenameName(*fileIt); + this->RoutineToDirectory[name.substr(0, name.size()-2)] = *fileIt; + // initialze each file, this is left out until CDash is fixed + // to handle large numbers of files +// this->InitializeFile(*fileIt); + } + return true; +} + +bool cmParseGTMCoverage::LoadCoverageData(const char* d) +{ + // load all the .mcov files in the specified directory + cmsys::Directory dir; + if(!dir.Load(d)) + { + return false; + } + size_t numf; + unsigned int i; + numf = dir.GetNumberOfFiles(); + for (i = 0; i < numf; i++) + { + std::string file = dir.GetFile(i); + if(file != "." && file != ".." + && !cmSystemTools::FileIsDirectory(file.c_str())) + { + std::string path = d; + path += "/"; + path += file; + if(cmSystemTools::GetFilenameLastExtension(path) == ".mcov") + { + if(!this->ReadMCovFile(path.c_str())) + { + return false; + } + } + } + } + return true; +} + +bool cmParseGTMCoverage::ParseFile(std::string& filepath, + std::string& function, + int& lineoffset) +{ + std::ifstream in(filepath.c_str()); + if(!in) + { + return false; + } + std::string line; + int linenum = 0; + while( cmSystemTools::GetLineFromStream(in, line)) + { + std::string::size_type pos = line.find(function.c_str()); + if(pos == 0) + { + char nextchar = line[function.size()]; + if(nextchar == ' ' || nextchar == '(') + { + lineoffset = linenum; + return true; + } + } + if(pos == 1) + { + char prevchar = line[0]; + char nextchar = line[function.size()+1]; + if(prevchar == '%' && (nextchar == ' ' || nextchar == '(')) + { + lineoffset = linenum; + return true; + } + } + linenum++; // move to next line count + } + lineoffset = 0; + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Could not find entry point : " + << function << " in " << filepath << "\n"); + return false; +} + +bool cmParseGTMCoverage::ParseLine(std::string const& line, + std::string& routine, + std::string& function, + int& linenumber, + int& count) +{ + // this method parses lines from the .mcov file + // each line has ^COVERAGE(...) in it, and there + // are several varients of coverage lines: + // + // ^COVERAGE("DIC11","PR1",0)="2:0:0:0" + // ( file , entry, line ) = "number_executed:timing_info" + // ^COVERAGE("%RSEL","SRC")="1:0:0:0" + // ( file , entry ) = "number_executed:timing_info" + // ^COVERAGE("%RSEL","init",8,"FOR_LOOP",1)=1 + // ( file , entry, line, IGNORE ) =number_executed + std::vector args; + std::string::size_type pos = line.find('(', 0); + // if no ( is found, then return line has no coverage + if(pos == std::string::npos) + { + return false; + } + std::string arg; + bool done = false; + // separate out all of the comma separated arguments found + // in the COVERAGE(...) line + while(line[pos] && !done) + { + // save the char we are looking at + char cur = line[pos]; + // , or ) means end of argument + if(cur == ',' || cur == ')') + { + // save the argument into the argument vector + args.push_back(arg); + // start on a new argument + arg = ""; + // if we are at the end of the ), then finish while loop + if(cur == ')') + { + done = true; + } + } + else + { + // all chars except ", (, and % get stored in the arg string + if(cur != '\"' && cur != '(' && cur != '%') + { + arg.append(1, line[pos]); + } + } + // move to next char + pos++; + } + // now parse the right hand side of the = + pos = line.find('='); + // no = found, this is an error + if(pos == line.npos) + { + return false; + } + pos++; // move past = + + // if the next positing is not a ", then this is a + // COVERAGE(..)=count line and turn the rest of the string + // past the = into an integer and set it to count + if(line[pos] != '\"') + { + count = atoi(line.substr(pos).c_str()); + } + else + { + // this means line[pos] is a ", and we have a + // COVERAGE(...)="1:0:0:0" type of line + pos++; // move past " + // find the first : past the " + std::string::size_type pos2 = line.find(':', pos); + // turn the string between the " and the first : into an integer + // and set it to count + count = atoi(line.substr(pos, pos2-pos).c_str()); + } + // less then two arguments is an error + if(args.size() < 2) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Error parsing mcov line: [" << line << "]\n"); + return false; + } + routine = args[0]; // the routine is the first argument + function = args[1]; // the function in the routine is the second + // in the two argument only format + // ^COVERAGE("%RSEL","SRC"), the line offset is 0 + if(args.size() == 2) + { + linenumber = 0; + } + else + { + // this is the format for this line + // ^COVERAGE("%RSEL","SRC",count) + linenumber = atoi(args[2].c_str()); + } + return true; +} + +bool cmParseGTMCoverage::ReadMCovFile(const char* file) +{ + std::ifstream in(file); + if(!in) + { + return false; + } + std::string line; + std::string lastfunction; + std::string lastroutine; + std::string lastpath; + int lastoffset = 0; + while( cmSystemTools::GetLineFromStream(in, line)) + { + // only look at lines that have coverage data + if(line.find("^COVERAGE") == line.npos) + { + continue; + } + std::string filepath; + std::string function; + std::string routine; + int linenumber = 0; + int count = 0; + this->ParseLine(line, routine, function, linenumber, count); + // skip this one + if(routine == "RSEL") + { + continue; + } + // no need to search the file if we just did it + if(function == lastfunction && lastroutine == routine) + { + this->Coverage.TotalCoverage[lastpath][lastoffset + linenumber] += count; + continue; + } + // Find the full path to the file + std::map::iterator i = + this->RoutineToDirectory.find(routine); + bool found = false; + if(i != this->RoutineToDirectory.end()) + { + filepath = i->second; + found = true; + } + else + { + // try some alternate names + char* tryname[] = {"GUX", "GTM", "ONT", 0}; + for(int k=0; tryname[k] != 0; k++) + { + std::string routine2 = routine + tryname[k]; + i = this->RoutineToDirectory.find(routine2); + if(i != this->RoutineToDirectory.end()) + { + found = true; + filepath = i->second; + break; // break out of tryname loop if found + } + } + } + if(found) + { + int lineoffset; + if(this->ParseFile(filepath, + function, + lineoffset)) + { + // hack, this should be done on every file, but for now + // just do it on the ones that have coverage at all + if( this->Coverage.TotalCoverage[filepath].size() == 0) + { + this->InitializeFile(filepath); + } + cmCTestCoverageHandlerContainer::SingleFileCoverageVector& + coverageVector = this->Coverage.TotalCoverage[filepath]; + coverageVector[lineoffset + linenumber] += count; + } + lastoffset = lineoffset; + } + else + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Can not find mumps file : " + << routine << " referenced in this line of mcov data:\n" + "[" << line << "]\n"); + } + lastfunction = function; + lastroutine = routine; + lastpath = filepath; + } + return true; +} diff --git a/Source/CTest/cmParseGTMCoverage.h b/Source/CTest/cmParseGTMCoverage.h new file mode 100644 index 000000000..d4e901d5a --- /dev/null +++ b/Source/CTest/cmParseGTMCoverage.h @@ -0,0 +1,50 @@ +/*============================================================================ + CMake - Cross Platform Makefile Generator + Copyright 2000-2009 Kitware, Inc. + + Distributed under the OSI-approved BSD License (the "License"); + see accompanying file Copyright.txt for details. + + This software is distributed WITHOUT ANY WARRANTY; without even the + implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + See the License for more information. +============================================================================*/ + +#ifndef cmParseGTMCoverage_h +#define cmParseGTMCoverage_h + +#include "cmStandardIncludes.h" +#include "cmCTestCoverageHandler.h" + +/** \class cmParseGTMCoverage + * \brief Parse GTM coverage information + * + * This class is used to parse GTM coverage information for + * mumps. + */ +class cmParseGTMCoverage +{ +public: + cmParseGTMCoverage(cmCTestCoverageHandlerContainer& cont, + cmCTest* ctest); + bool ReadGTMCoverage(const char* file); +private: + bool ParseFile(std::string& filepath, + std::string& function, + int& lineoffset); + bool ParseLine(std::string const& line, + std::string& routine, + std::string& function, + int& linenumber, + int& count); + bool LoadPackages(const char* dir); + bool LoadCoverageData(const char* dir); + bool ReadMCovFile(const char* f); + void InitializeFile(std::string& file); + std::map RoutineToDirectory; + cmCTestCoverageHandlerContainer& Coverage; + cmCTest* CTest; +}; + + +#endif diff --git a/Source/CTest/cmParsePHPCoverage.h b/Source/CTest/cmParsePHPCoverage.h index ce5741d0b..d50a83c58 100644 --- a/Source/CTest/cmParsePHPCoverage.h +++ b/Source/CTest/cmParsePHPCoverage.h @@ -37,9 +37,6 @@ private: bool ReadInt(std::ifstream& in, int& v); bool ReadCoverageArray(std::ifstream& in, cmStdString const&); bool ReadUntil(std::ifstream& in, char until); - typedef std::map FileLineCoverage; - std::map FileToCoverage; - std::map FileCoverage; cmCTestCoverageHandlerContainer& Coverage; cmCTest* CTest; }; From dd07161c512e8d520da51f8bb82a65ec29aa57ba Mon Sep 17 00:00:00 2001 From: Bill Hoffman Date: Thu, 26 Apr 2012 08:30:13 -0400 Subject: [PATCH 002/101] Fix warning about char* instead of const char*. --- Source/CTest/cmParseGTMCoverage.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/CTest/cmParseGTMCoverage.cxx b/Source/CTest/cmParseGTMCoverage.cxx index 16e0f614b..130e40e78 100644 --- a/Source/CTest/cmParseGTMCoverage.cxx +++ b/Source/CTest/cmParseGTMCoverage.cxx @@ -351,7 +351,7 @@ bool cmParseGTMCoverage::ReadMCovFile(const char* file) else { // try some alternate names - char* tryname[] = {"GUX", "GTM", "ONT", 0}; + const char* tryname[] = {"GUX", "GTM", "ONT", 0}; for(int k=0; tryname[k] != 0; k++) { std::string routine2 = routine + tryname[k]; From 72210c266238607e12c12ed7e983efed557fa784 Mon Sep 17 00:00:00 2001 From: Bill Hoffman Date: Thu, 26 Apr 2012 08:33:27 -0400 Subject: [PATCH 003/101] Fix line length. --- Source/CTest/cmCTestCoverageHandler.cxx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Source/CTest/cmCTestCoverageHandler.cxx b/Source/CTest/cmCTestCoverageHandler.cxx index 6c99928b3..099bcb6e6 100644 --- a/Source/CTest/cmCTestCoverageHandler.cxx +++ b/Source/CTest/cmCTestCoverageHandler.cxx @@ -765,7 +765,8 @@ int cmCTestCoverageHandler::HandleGTMCoverage( cmCTestCoverageHandlerContainer* cont) { cmParseGTMCoverage cov(*cont, this->CTest); - std::string coverageFile = this->CTest->GetBinaryDir() + "/gtm_coverage.mcov"; + std::string coverageFile = this->CTest->GetBinaryDir() + + "/gtm_coverage.mcov"; if(cmSystemTools::FileExists(coverageFile.c_str())) { cov.ReadGTMCoverage(coverageFile.c_str()); From 319eeb0247f51bb2d380261ce7d63c7ce5020ed0 Mon Sep 17 00:00:00 2001 From: Bill Hoffman Date: Tue, 1 May 2012 13:35:07 -0400 Subject: [PATCH 004/101] Add test for mumps coverage. Also refactor code to prepare for cache coverage. Add a simple test to make sure the GTM mumps coverage is working. Also refactor the code so that cache coverage can be added. --- Source/CMakeLists.txt | 1 + Source/CTest/cmCTestCoverageHandler.cxx | 8 +- Source/CTest/cmParseGTMCoverage.cxx | 328 ++-- Source/CTest/cmParseGTMCoverage.h | 31 +- Source/CTest/cmParseMumpsCoverage.cxx | 125 ++ Source/CTest/cmParseMumpsCoverage.h | 48 + Tests/CMakeLists.txt | 18 + Tests/MumpsCoverage/.gitattributes | 2 + .../Accounts_ReceivableTest.mcov | 1445 +++++++++++++++++ Tests/MumpsCoverage/DartConfiguration.tcl.in | 8 + .../Packages/Toolkit/Routines/XINDEX.m | 144 ++ Tests/MumpsCoverage/gtm_coverage.mcov.in | 2 + 12 files changed, 1930 insertions(+), 230 deletions(-) create mode 100644 Source/CTest/cmParseMumpsCoverage.cxx create mode 100644 Source/CTest/cmParseMumpsCoverage.h create mode 100644 Tests/MumpsCoverage/.gitattributes create mode 100644 Tests/MumpsCoverage/Accounts_ReceivableTest.mcov create mode 100644 Tests/MumpsCoverage/DartConfiguration.tcl.in create mode 100644 Tests/MumpsCoverage/VistA-FOIA/Packages/Toolkit/Routines/XINDEX.m create mode 100644 Tests/MumpsCoverage/gtm_coverage.mcov.in diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt index 1ef67da9e..081cf65f0 100644 --- a/Source/CMakeLists.txt +++ b/Source/CMakeLists.txt @@ -423,6 +423,7 @@ SET(CTEST_SRCS cmCTest.cxx CTest/cmCTestConfigureHandler.cxx CTest/cmCTestCoverageCommand.cxx CTest/cmCTestCoverageHandler.cxx + CTest/cmParseMumpsCoverage.cxx CTest/cmParseGTMCoverage.cxx CTest/cmParsePHPCoverage.cxx CTest/cmCTestEmptyBinaryDirectoryCommand.cxx diff --git a/Source/CTest/cmCTestCoverageHandler.cxx b/Source/CTest/cmCTestCoverageHandler.cxx index 099bcb6e6..e7fa2f15a 100644 --- a/Source/CTest/cmCTestCoverageHandler.cxx +++ b/Source/CTest/cmCTestCoverageHandler.cxx @@ -769,7 +769,13 @@ int cmCTestCoverageHandler::HandleGTMCoverage( "/gtm_coverage.mcov"; if(cmSystemTools::FileExists(coverageFile.c_str())) { - cov.ReadGTMCoverage(coverageFile.c_str()); + cov.ReadCoverageFile(coverageFile.c_str()); + } + else + { + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, + " Cannot find GTM coverage file: " << coverageFile + << std::endl); } return static_cast(cont->TotalCoverage.size()); } diff --git a/Source/CTest/cmParseGTMCoverage.cxx b/Source/CTest/cmParseGTMCoverage.cxx index 130e40e78..90d047b5a 100644 --- a/Source/CTest/cmParseGTMCoverage.cxx +++ b/Source/CTest/cmParseGTMCoverage.cxx @@ -8,120 +8,11 @@ cmParseGTMCoverage::cmParseGTMCoverage(cmCTestCoverageHandlerContainer& cont, - cmCTest* ctest) - :Coverage(cont), CTest(ctest) + cmCTest* ctest) + :cmParseMumpsCoverage(cont, ctest) { } -bool cmParseGTMCoverage::ReadGTMCoverage(const char* file) -{ - // Read the gtm_coverage.mcov file, that has two lines of data: - // packages:/full/path/to/Vista/Packages - // coverage_dir:/full/path/to/dir/with/*.mcov - std::ifstream in(file); - if(!in) - { - return false; - } - std::string line; - cmSystemTools::GetLineFromStream(in, line); - std::string::size_type pos = line.find(':', 0); - std::string packages; - if(pos != std::string::npos) - { - packages = line.substr(pos+1); - } - cmSystemTools::GetLineFromStream(in, line); - pos = line.find(':', 0); - std::string coverage_dir; - if(pos != std::string::npos) - { - coverage_dir = line.substr(pos+1); - } - // load the mumps files from the packages directory - this->LoadPackages(packages.c_str()); - // now load the *.mcov files from the coverage directory - this->LoadCoverageData(coverage_dir.c_str()); - return true; -} - -void cmParseGTMCoverage::InitializeFile(std::string& file) -{ - // initialize the coverage information for a given mumps file - std::ifstream in(file.c_str()); - if(!in) - { - return; - } - std::string line; - cmCTestCoverageHandlerContainer::SingleFileCoverageVector& - coverageVector = this->Coverage.TotalCoverage[file]; - if(!cmSystemTools::GetLineFromStream(in, line)) - { - return; - } - // first line of a .m file can never be run - coverageVector.push_back(-1); - while( cmSystemTools::GetLineFromStream(in, line) ) - { - // putting in a 0 for a line means it is executable code - // putting in a -1 for a line means it is not executable code - int val = -1; // assume line is not executable - bool found = false; - std::string::size_type i = 0; - // (1) Search for the first whitespace or semicolon character on a line. - //This will skip over labels if the line starts with one, or will simply - //be the first character on the line for non-label lines. - for(; i < line.size(); ++i) - { - if(line[i] == ' ' || line[i] == '\t' || line[i] == ';') - { - found = true; - break; - } - } - if(found) - { - // (2) If the first character found above is whitespace then continue the - // search for the first following non-whitespace character. - if(line[i] == ' ' || line[i] == '\t') - { - while(i < line.size() && (line[i] == ' ' || line[i] == '\t')) - { - i++; - } - } - // (3) If the character found is not a semicolon then the line counts for - // coverage. - if(i < line.size() && line[i] != ';') - { - val = 0; - } - } - coverageVector.push_back(val); - } -} - -bool cmParseGTMCoverage::LoadPackages(const char* d) -{ - cmsys::Glob glob; - glob.RecurseOn(); - std::string pat = d; - pat += "/*.m"; - glob.FindFiles(pat.c_str()); - std::vector& files = glob.GetFiles(); - std::vector::iterator fileIt; - for ( fileIt = files.begin(); fileIt != files.end(); - ++ fileIt ) - { - std::string name = cmSystemTools::GetFilenameName(*fileIt); - this->RoutineToDirectory[name.substr(0, name.size()-2)] = *fileIt; - // initialze each file, this is left out until CDash is fixed - // to handle large numbers of files -// this->InitializeFile(*fileIt); - } - return true; -} bool cmParseGTMCoverage::LoadCoverageData(const char* d) { @@ -155,9 +46,114 @@ bool cmParseGTMCoverage::LoadCoverageData(const char* d) return true; } -bool cmParseGTMCoverage::ParseFile(std::string& filepath, - std::string& function, - int& lineoffset) +bool cmParseGTMCoverage::ReadMCovFile(const char* file) +{ + std::ifstream in(file); + if(!in) + { + return false; + } + std::string line; + std::string lastfunction; + std::string lastroutine; + std::string lastpath; + int lastoffset = 0; + while( cmSystemTools::GetLineFromStream(in, line)) + { + // only look at lines that have coverage data + if(line.find("^COVERAGE") == line.npos) + { + continue; + } + std::string filepath; + std::string function; + std::string routine; + int linenumber = 0; + int count = 0; + this->ParseMCOVLine(line, routine, function, linenumber, count); + // skip this one + if(routine == "RSEL") + { + continue; + } + // no need to search the file if we just did it + if(function == lastfunction && lastroutine == routine) + { + if(lastpath.size()) + { + this->Coverage.TotalCoverage[lastpath][lastoffset + linenumber] + += count; + } + else + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Can not find mumps file : " + << lastroutine << " referenced in this line of mcov data:\n" + "[" << line << "]\n"); + } + continue; + } + // Find the full path to the file + std::map::iterator i = + this->RoutineToDirectory.find(routine); + bool found = false; + if(i != this->RoutineToDirectory.end()) + { + filepath = i->second; + found = true; + } + else + { + // try some alternate names + const char* tryname[] = {"GUX", "GTM", "ONT", 0}; + for(int k=0; tryname[k] != 0; k++) + { + std::string routine2 = routine + tryname[k]; + i = this->RoutineToDirectory.find(routine2); + if(i != this->RoutineToDirectory.end()) + { + found = true; + filepath = i->second; + break; // break out of tryname loop if found + } + } + } + if(found) + { + int lineoffset; + if(this->FindFunctionInMumpsFile(filepath, + function, + lineoffset)) + { + // hack, this should be done on every file, but for now + // just do it on the ones that have coverage at all + if( this->Coverage.TotalCoverage[filepath].size() == 0) + { + this->InitializeMumpsFile(filepath); + } + cmCTestCoverageHandlerContainer::SingleFileCoverageVector& + coverageVector = this->Coverage.TotalCoverage[filepath]; + coverageVector[lineoffset + linenumber] += count; + } + lastoffset = lineoffset; + } + else + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Can not find mumps file : " + << routine << " referenced in this line of mcov data:\n" + "[" << line << "]\n"); + } + lastfunction = function; + lastroutine = routine; + lastpath = filepath; + } + return true; +} + +bool cmParseGTMCoverage::FindFunctionInMumpsFile(std::string const& filepath, + std::string const& function, + int& lineoffset) { std::ifstream in(filepath.c_str()); if(!in) @@ -197,11 +193,11 @@ bool cmParseGTMCoverage::ParseFile(std::string& filepath, return false; } -bool cmParseGTMCoverage::ParseLine(std::string const& line, - std::string& routine, - std::string& function, - int& linenumber, - int& count) +bool cmParseGTMCoverage::ParseMCOVLine(std::string const& line, + std::string& routine, + std::string& function, + int& linenumber, + int& count) { // this method parses lines from the .mcov file // each line has ^COVERAGE(...) in it, and there @@ -302,97 +298,3 @@ bool cmParseGTMCoverage::ParseLine(std::string const& line, } return true; } - -bool cmParseGTMCoverage::ReadMCovFile(const char* file) -{ - std::ifstream in(file); - if(!in) - { - return false; - } - std::string line; - std::string lastfunction; - std::string lastroutine; - std::string lastpath; - int lastoffset = 0; - while( cmSystemTools::GetLineFromStream(in, line)) - { - // only look at lines that have coverage data - if(line.find("^COVERAGE") == line.npos) - { - continue; - } - std::string filepath; - std::string function; - std::string routine; - int linenumber = 0; - int count = 0; - this->ParseLine(line, routine, function, linenumber, count); - // skip this one - if(routine == "RSEL") - { - continue; - } - // no need to search the file if we just did it - if(function == lastfunction && lastroutine == routine) - { - this->Coverage.TotalCoverage[lastpath][lastoffset + linenumber] += count; - continue; - } - // Find the full path to the file - std::map::iterator i = - this->RoutineToDirectory.find(routine); - bool found = false; - if(i != this->RoutineToDirectory.end()) - { - filepath = i->second; - found = true; - } - else - { - // try some alternate names - const char* tryname[] = {"GUX", "GTM", "ONT", 0}; - for(int k=0; tryname[k] != 0; k++) - { - std::string routine2 = routine + tryname[k]; - i = this->RoutineToDirectory.find(routine2); - if(i != this->RoutineToDirectory.end()) - { - found = true; - filepath = i->second; - break; // break out of tryname loop if found - } - } - } - if(found) - { - int lineoffset; - if(this->ParseFile(filepath, - function, - lineoffset)) - { - // hack, this should be done on every file, but for now - // just do it on the ones that have coverage at all - if( this->Coverage.TotalCoverage[filepath].size() == 0) - { - this->InitializeFile(filepath); - } - cmCTestCoverageHandlerContainer::SingleFileCoverageVector& - coverageVector = this->Coverage.TotalCoverage[filepath]; - coverageVector[lineoffset + linenumber] += count; - } - lastoffset = lineoffset; - } - else - { - cmCTestLog(this->CTest, ERROR_MESSAGE, - "Can not find mumps file : " - << routine << " referenced in this line of mcov data:\n" - "[" << line << "]\n"); - } - lastfunction = function; - lastroutine = routine; - lastpath = filepath; - } - return true; -} diff --git a/Source/CTest/cmParseGTMCoverage.h b/Source/CTest/cmParseGTMCoverage.h index d4e901d5a..c6d7ef919 100644 --- a/Source/CTest/cmParseGTMCoverage.h +++ b/Source/CTest/cmParseGTMCoverage.h @@ -13,8 +13,7 @@ #ifndef cmParseGTMCoverage_h #define cmParseGTMCoverage_h -#include "cmStandardIncludes.h" -#include "cmCTestCoverageHandler.h" +#include "cmParseMumpsCoverage.h" /** \class cmParseGTMCoverage * \brief Parse GTM coverage information @@ -22,28 +21,28 @@ * This class is used to parse GTM coverage information for * mumps. */ -class cmParseGTMCoverage +class cmParseGTMCoverage : public cmParseMumpsCoverage { public: cmParseGTMCoverage(cmCTestCoverageHandlerContainer& cont, cmCTest* ctest); - bool ReadGTMCoverage(const char* file); -private: - bool ParseFile(std::string& filepath, - std::string& function, - int& lineoffset); - bool ParseLine(std::string const& line, +protected: + // implement virtual from parent + bool LoadCoverageData(const char* dir); + // Read a single mcov file + bool ReadMCovFile(const char* f); + // find out what line in a mumps file (filepath) the given entry point + // or function is. lineoffset is set by this method. + bool FindFunctionInMumpsFile(std::string const& filepath, + std::string const& function, + int& lineoffset); + // parse a line from a .mcov file, and fill in the + // routine, function, linenumber and coverage count + bool ParseMCOVLine(std::string const& line, std::string& routine, std::string& function, int& linenumber, int& count); - bool LoadPackages(const char* dir); - bool LoadCoverageData(const char* dir); - bool ReadMCovFile(const char* f); - void InitializeFile(std::string& file); - std::map RoutineToDirectory; - cmCTestCoverageHandlerContainer& Coverage; - cmCTest* CTest; }; diff --git a/Source/CTest/cmParseMumpsCoverage.cxx b/Source/CTest/cmParseMumpsCoverage.cxx new file mode 100644 index 000000000..359b5ac39 --- /dev/null +++ b/Source/CTest/cmParseMumpsCoverage.cxx @@ -0,0 +1,125 @@ +#include "cmStandardIncludes.h" +#include +#include +#include "cmSystemTools.h" +#include "cmParseGTMCoverage.h" +#include +#include + + +cmParseMumpsCoverage::cmParseMumpsCoverage( + cmCTestCoverageHandlerContainer& cont, + cmCTest* ctest) + :Coverage(cont), CTest(ctest) +{ +} + +bool cmParseMumpsCoverage::ReadCoverageFile(const char* file) +{ + // Read the gtm_coverage.mcov file, that has two lines of data: + // packages:/full/path/to/Vista/Packages + // coverage_dir:/full/path/to/dir/with/*.mcov + std::ifstream in(file); + if(!in) + { + return false; + } + std::string line; + cmSystemTools::GetLineFromStream(in, line); + std::string::size_type pos = line.find(':', 0); + std::string packages; + if(pos != std::string::npos) + { + packages = line.substr(pos+1); + } + cmSystemTools::GetLineFromStream(in, line); + pos = line.find(':', 0); + std::string coverage_dir; + if(pos != std::string::npos) + { + coverage_dir = line.substr(pos+1); + } + // load the mumps files from the packages directory + this->LoadPackages(packages.c_str()); + // now load the *.mcov files from the coverage directory + this->LoadCoverageData(coverage_dir.c_str()); + return true; +} + +void cmParseMumpsCoverage::InitializeMumpsFile(std::string& file) +{ + // initialize the coverage information for a given mumps file + std::ifstream in(file.c_str()); + if(!in) + { + return; + } + std::string line; + cmCTestCoverageHandlerContainer::SingleFileCoverageVector& + coverageVector = this->Coverage.TotalCoverage[file]; + if(!cmSystemTools::GetLineFromStream(in, line)) + { + return; + } + // first line of a .m file can never be run + coverageVector.push_back(-1); + while( cmSystemTools::GetLineFromStream(in, line) ) + { + // putting in a 0 for a line means it is executable code + // putting in a -1 for a line means it is not executable code + int val = -1; // assume line is not executable + bool found = false; + std::string::size_type i = 0; + // (1) Search for the first whitespace or semicolon character on a line. + //This will skip over labels if the line starts with one, or will simply + //be the first character on the line for non-label lines. + for(; i < line.size(); ++i) + { + if(line[i] == ' ' || line[i] == '\t' || line[i] == ';') + { + found = true; + break; + } + } + if(found) + { + // (2) If the first character found above is whitespace then continue the + // search for the first following non-whitespace character. + if(line[i] == ' ' || line[i] == '\t') + { + while(i < line.size() && (line[i] == ' ' || line[i] == '\t')) + { + i++; + } + } + // (3) If the character found is not a semicolon then the line counts for + // coverage. + if(i < line.size() && line[i] != ';') + { + val = 0; + } + } + coverageVector.push_back(val); + } +} + +bool cmParseMumpsCoverage::LoadPackages(const char* d) +{ + cmsys::Glob glob; + glob.RecurseOn(); + std::string pat = d; + pat += "/*.m"; + glob.FindFiles(pat.c_str()); + std::vector& files = glob.GetFiles(); + std::vector::iterator fileIt; + for ( fileIt = files.begin(); fileIt != files.end(); + ++ fileIt ) + { + std::string name = cmSystemTools::GetFilenameName(*fileIt); + this->RoutineToDirectory[name.substr(0, name.size()-2)] = *fileIt; + // initialze each file, this is left out until CDash is fixed + // to handle large numbers of files +// this->InitializeMumpsFile(*fileIt); + } + return true; +} diff --git a/Source/CTest/cmParseMumpsCoverage.h b/Source/CTest/cmParseMumpsCoverage.h new file mode 100644 index 000000000..63883de95 --- /dev/null +++ b/Source/CTest/cmParseMumpsCoverage.h @@ -0,0 +1,48 @@ +/*============================================================================ + CMake - Cross Platform Makefile Generator + Copyright 2000-2009 Kitware, Inc. + + Distributed under the OSI-approved BSD License (the "License"); + see accompanying file Copyright.txt for details. + + This software is distributed WITHOUT ANY WARRANTY; without even the + implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + See the License for more information. +============================================================================*/ + +#ifndef cmParseMumpsCoverage_h +#define cmParseMumpsCoverage_h + +#include "cmStandardIncludes.h" +#include "cmCTestCoverageHandler.h" + +/** \class cmParseMumpsCoverage + * \brief Parse Mumps coverage information + * + * This class is used as the base class for Mumps coverage + * parsing. + */ +class cmParseMumpsCoverage +{ +public: + cmParseMumpsCoverage(cmCTestCoverageHandlerContainer& cont, + cmCTest* ctest); + // This is the toplevel coverage file locating the coverage files + // and the mumps source code package tree. + bool ReadCoverageFile(const char* file); +protected: + // sub classes will use this to + // load all coverage files found in the given directory + virtual bool LoadCoverageData(const char* d) = 0; + // search the package directory for mumps files and fill + // in the RoutineToDirectory map + bool LoadPackages(const char* dir); + // initialize the coverage information for a single mumps file + void InitializeMumpsFile(std::string& file); +protected: + std::map RoutineToDirectory; + cmCTestCoverageHandlerContainer& Coverage; + cmCTest* CTest; +}; + +#endif diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index c0b7cd617..9a088e43b 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -1708,6 +1708,24 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/ PASS_REGULAR_EXPRESSION "Reading ctest configuration file: ${CTEST_TEST_ESCAPED_BINARY_DIR}.Tests.CTestTestConfigFileInBuildDir2.CTestConfig.cmake") + # test coverage for mumps + # create a MumpsCoverage dir in the binary tree under Testing to + # avoid the .NoDartCoverage files in the cmake testing tree + configure_file( + "${CMake_SOURCE_DIR}/Tests/MumpsCoverage/DartConfiguration.tcl.in" + "${CMake_BINARY_DIR}/Testing/MumpsCoverage/DartConfiguration.tcl") + configure_file( + "${CMake_SOURCE_DIR}/Tests/MumpsCoverage/gtm_coverage.mcov.in" + "${CMake_BINARY_DIR}/Testing/MumpsCoverage/gtm_coverage.mcov") + file(COPY "${CMake_SOURCE_DIR}/Tests/MumpsCoverage/VistA-FOIA" + DESTINATION "${CMake_BINARY_DIR}/Testing/MumpsCoverage") + add_test(NAME CTestGTMCoverage + WORKING_DIRECTORY "${CMake_BINARY_DIR}/Testing/MumpsCoverage" + COMMAND + ${CMAKE_CTEST_COMMAND} -T Coverage --debug) + set_tests_properties(CTestGTMCoverage PROPERTIES + PASS_REGULAR_EXPRESSION + "Process file.*XINDEX.m.*Total LOC:.*127.*Percentage Coverage: 85.83.*") # Use macro, not function so that build can still be driven by CMake 2.4. # After 2.6 is required, this could be a function without the extra 'set' # calls. diff --git a/Tests/MumpsCoverage/.gitattributes b/Tests/MumpsCoverage/.gitattributes new file mode 100644 index 000000000..77a41f801 --- /dev/null +++ b/Tests/MumpsCoverage/.gitattributes @@ -0,0 +1,2 @@ +*.cmcov -whitespace +*.mcov -whitespace diff --git a/Tests/MumpsCoverage/Accounts_ReceivableTest.mcov b/Tests/MumpsCoverage/Accounts_ReceivableTest.mcov new file mode 100644 index 000000000..c0ca7b5cc --- /dev/null +++ b/Tests/MumpsCoverage/Accounts_ReceivableTest.mcov @@ -0,0 +1,1445 @@ +%GO Global Output Utility +GT.M 17-APR-2012 17:18:27 ZWR +^COVERAGE("%RSEL","SRC")="1:0:0:0" +^COVERAGE("%RSEL","SRC",1)="1:0:0:0" +^COVERAGE("%RSEL","SRC",2)="1:0:0:0" +^COVERAGE("%RSEL","SRC",3)="1:0:0:0" +^COVERAGE("%RSEL","SRC",4)="1:0:0:0" +^COVERAGE("%RSEL","SRC",5)="1:0:0:0" +^COVERAGE("%RSEL","SRC",6)="1:0:0:0" +^COVERAGE("%RSEL","SRC",7)="1:0:0:0" +^COVERAGE("%RSEL","init")="1:0:0:0" +^COVERAGE("%RSEL","init",1)="1:0:0:0" +^COVERAGE("%RSEL","init",3)="1:0:0:0" +^COVERAGE("%RSEL","init",4)="1:0:0:0" +^COVERAGE("%RSEL","init",5)="1:0:0:0" +^COVERAGE("%RSEL","init",6)="1:0:0:0" +^COVERAGE("%RSEL","init",7)="1:0:0:0" +^COVERAGE("%RSEL","init",8)="1:0:0:0" +^COVERAGE("%RSEL","init",8,"FOR_LOOP",1)=1 +^COVERAGE("%RSEL","init",9)="1:0:0:0" +^COVERAGE("%RSEL","init",10)="1:0:0:0" +^COVERAGE("%RSEL","init",11)="1:0:0:0" +^COVERAGE("%RSEL","init",12)="1:0:0:0" +^COVERAGE("%RSEL","init",13)="1:0:0:0" +^COVERAGE("%RSEL","init",14)="1:0:0:0" +^COVERAGE("%RSEL","init",15)="1:0:0:0" +^COVERAGE("%RSEL","init",16)="1:0:0:0" +^COVERAGE("%RSEL","init",17)="1:0:0:0" +^COVERAGE("%RSEL","init",17,"FOR_LOOP",1)=2 +^COVERAGE("%RSEL","init",18)="2:0:0:0" +^COVERAGE("%RSEL","init",19)="2:0:0:0" +^COVERAGE("%RSEL","init",20)="2:0:0:0" +^COVERAGE("%RSEL","init",40)="1:0:0:0" +^COVERAGE("%RSEL","main")="1:32001:84004:116005" +^COVERAGE("%RSEL","main",1)="1:0:0:0" +^COVERAGE("%RSEL","main",2)="1:0:0:0" +^COVERAGE("%RSEL","main",3)="1:0:0:0" +^COVERAGE("%RSEL","main",3,"FOR_LOOP",1)=468 +^COVERAGE("%RSEL","main",4)="468:0:24003:24003" +^COVERAGE("%RSEL","main",5)="468:0:0:0" +^COVERAGE("%RSEL","main",6)="468:32001:48001:80002" +^COVERAGE("%RSEL","main",7)="467:0:12000:12000" +^COVERAGE("%RSEL","main",8)="467:0:0:0" +^COVERAGE("%RSEL","main",9)="467:0:0:0" +^COVERAGE("%RSEL","main",10)="467:0:0:0" +^COVERAGE("%RSEL","main",11)="1:0:0:0" +^COVERAGE("%RSEL","main",12)="1:0:0:0" +^COVERAGE("%RSEL","main",13)="1:0:0:0" +^COVERAGE("%RSEL","main",14)="1:0:0:0" +^COVERAGE("%RSEL","next")="1403:12001:20002:32003" +^COVERAGE("%RSEL","next",0)="1403:0:0:0" +^COVERAGE("%RSEL","next",1)="1403:12001:20002:32003" +^COVERAGE("%RSEL","next",1,"FOR_LOOP",1)=1403 +^COVERAGE("%RSEL","next",2)="1403:0:0:0" +^COVERAGE("%RSEL","save")="467:0:4001:4001" +^COVERAGE("%RSEL","save",1)="467:0:0:0" +^COVERAGE("%RSEL","save",5)="467:0:0:0" +^COVERAGE("%RSEL","save",6)="467:0:0:0" +^COVERAGE("%RSEL","save",7)="467:0:0:0" +^COVERAGE("%RSEL","save",8)="467:0:4001:4001" +^COVERAGE("%RSEL","save",9)="467:0:0:0" +^COVERAGE("%RSEL","search")="934:0:16001:16001" +^COVERAGE("%RSEL","search",0)="934:0:4000:4000" +^COVERAGE("%RSEL","search",1)="934:0:0:0" +^COVERAGE("%RSEL","search",2)="934:0:4001:4001" +^COVERAGE("%RSEL","search",2,"FOR_LOOP",1)=1868 +^COVERAGE("%RSEL","search",3)="934:0:8000:8000" +^COVERAGE("%RSEL","search",4)="934:0:0:0" +^COVERAGE("%RSEL","search",5)="934:0:0:0" +^COVERAGE("%RSEL","start")="468:0:4001:4001" +^COVERAGE("%RSEL","start",0)="468:0:0:0" +^COVERAGE("%RSEL","start",1)="468:0:0:0" +^COVERAGE("%RSEL","start",2)="468:0:0:0" +^COVERAGE("%RSEL","start",2,"FOR_LOOP",1)=936 +^COVERAGE("%RSEL","start",3)="468:0:0:0" +^COVERAGE("%RSEL","work")="467:20002:24001:44003" +^COVERAGE("%RSEL","work",1)="467:0:0:0" +^COVERAGE("%RSEL","work",2)="467:0:0:0" +^COVERAGE("%RSEL","work",3)="467:0:4000:4000" +^COVERAGE("%RSEL","work",4)="467:0:0:0" +^COVERAGE("%RSEL","work",6)="467:4000:12000:16000" +^COVERAGE("%RSEL","work",6,"FOR_LOOP",1)=3421 +^COVERAGE("%RSEL","work",7)="467:0:0:0" +^COVERAGE("%RSEL","work",8)="467:4001:0:4001" +^COVERAGE("%RSEL","work",9)="467:0:0:0" +^COVERAGE("%RSEL","work",10)="467:0:0:0" +^COVERAGE("%RSEL","work",11)="467:0:0:0" +^COVERAGE("%RSEL","work",12)="467:4000:0:4000" +^COVERAGE("%RSEL","work",13)="467:0:4000:4000" +^COVERAGE("%RSEL","work",14)="467:0:0:0" +^COVERAGE("%RSEL","work",15)="467:4001:4001:8002" +^COVERAGE("%RSEL","work",15,"FOR_LOOP",1)=934 +^COVERAGE("%RSEL","work",16)="467:0:0:0" +^COVERAGE("%ZIS","%ZIS")="2:0:0:0" +^COVERAGE("%ZIS","%ZIS",3)="2:0:0:0" +^COVERAGE("%ZIS","%ZIS",4)="2:0:0:0" +^COVERAGE("%ZIS","A",0)="2:0:0:0" +^COVERAGE("%ZIS","A",1)="2:0:0:0" +^COVERAGE("%ZIS","CLEAN")="3:0:0:0" +^COVERAGE("%ZIS","CLEAN",1)="3:0:0:0" +^COVERAGE("%ZIS","CLEAN",2)="3:0:0:0" +^COVERAGE("%ZIS","CLEAN",3)="3:0:0:0" +^COVERAGE("%ZIS","CLEAN",4)="3:0:0:0" +^COVERAGE("%ZIS","GETHOME")="2:0:0:0" +^COVERAGE("%ZIS","GETHOME",0)="2:0:0:0" +^COVERAGE("%ZIS","GETHOME",1)="1:0:0:0" +^COVERAGE("%ZIS","GETHOME",3)="1:0:0:0" +^COVERAGE("%ZIS","GETHOME",4)="1:0:0:0" +^COVERAGE("%ZIS","GETHOME",5)="1:0:0:0" +^COVERAGE("%ZIS","GETHOME",6)="1:0:0:0" +^COVERAGE("%ZIS","GETHOME",7)="1:0:0:0" +^COVERAGE("%ZIS","HOME")="1:0:0:0" +^COVERAGE("%ZIS","HOME",1)="1:0:0:0" +^COVERAGE("%ZIS","HOME",2)="1:0:0:0" +^COVERAGE("%ZIS","INIT",1)="2:0:0:0" +^COVERAGE("%ZIS","INIT",3)="2:0:0:0" +^COVERAGE("%ZIS","INIT",4)="2:0:0:0" +^COVERAGE("%ZIS","INIT",5)="2:0:0:0" +^COVERAGE("%ZIS","INIT",6)="2:0:0:0" +^COVERAGE("%ZIS","INIT",8)="2:0:0:0" +^COVERAGE("%ZIS","INIT",10)="2:0:0:0" +^COVERAGE("%ZIS","INIT",11)="2:0:0:0" +^COVERAGE("%ZIS","INIT",12)="2:0:0:0" +^COVERAGE("%ZIS","INIT",13)="2:0:0:0" +^COVERAGE("%ZIS","INIT",15)="2:0:0:0" +^COVERAGE("%ZIS","K2",0)="2:0:0:0" +^COVERAGE("%ZIS","K2",1)="2:0:0:0" +^COVERAGE("%ZIS","K2",2)="2:0:0:0" +^COVERAGE("%ZIS","K2",4)="2:0:0:0" +^COVERAGE("%ZIS","VIRTUAL")="2:0:0:0" +^COVERAGE("%ZIS","VIRTUAL",4)="2:0:0:0" +^COVERAGE("%ZIS","VIRTUAL",4,"FOR_LOOP",1)=6 +^COVERAGE("%ZIS","VIRTUAL",5)="2:0:0:0" +^COVERAGE("%ZIS","VIRTUAL",7)="2:0:0:0" +^COVERAGE("%ZIS","VTLKUP")="4:0:0:0" +^COVERAGE("%ZIS","VTLKUP",0)="4:0:0:0" +^COVERAGE("%ZIS","VTLKUP",0,"FOR_LOOP",1)=8 +^COVERAGE("%ZIS","VTLKUP",1)="4:0:0:0" +^COVERAGE("%ZIS1","EX2",1)="2:0:0:0" +^COVERAGE("%ZIS1","EX2",2)="2:0:0:0" +^COVERAGE("%ZIS1","EXIT",1)="2:0:0:0" +^COVERAGE("%ZIS1","EXIT",3)="2:0:0:0" +^COVERAGE("%ZIS1","EXIT",5)="2:0:0:0" +^COVERAGE("%ZIS1","EXIT",6)="2:0:0:0" +^COVERAGE("%ZIS1","EXIT",7)="2:0:0:0" +^COVERAGE("%ZIS1","EXIT",8)="2:0:0:0" +^COVERAGE("%ZIS1","EXIT",9)="2:0:0:0" +^COVERAGE("%ZIS1","G",0)="2:0:0:0" +^COVERAGE("%ZIS1","IOP")="1:0:0:0" +^COVERAGE("%ZIS1","IOP",1)="1:0:0:0" +^COVERAGE("%ZIS1","K2")="2:0:0:0" +^COVERAGE("%ZIS1","K2",1)="4:0:0:0" +^COVERAGE("%ZIS1","K2",2)="4:0:0:0" +^COVERAGE("%ZIS1","K2",3)="4:0:0:0" +^COVERAGE("%ZIS1","K2",4)="4:0:0:0" +^COVERAGE("%ZIS1","KIL",1)="2:0:0:0" +^COVERAGE("%ZIS1","KIL",2)="2:0:0:0" +^COVERAGE("%ZIS1","KIL",3)="2:0:0:0" +^COVERAGE("%ZIS1","L1",1)="2:0:0:0" +^COVERAGE("%ZIS1","L1",2)="2:0:0:0" +^COVERAGE("%ZIS1","L1",3)="2:0:0:0" +^COVERAGE("%ZIS1","L1",4)="2:0:0:0" +^COVERAGE("%ZIS1","L1",5)="2:0:0:0" +^COVERAGE("%ZIS1","L1",6)="2:0:0:0" +^COVERAGE("%ZIS1","L1",7)="2:0:0:0" +^COVERAGE("%ZIS1","L1",8)="2:0:0:0" +^COVERAGE("%ZIS1","L1",9)="2:0:0:0" +^COVERAGE("%ZIS1","L1",10)="2:0:0:0" +^COVERAGE("%ZIS1","L1",11)="2:0:0:0" +^COVERAGE("%ZIS1","L1",12)="2:0:0:0" +^COVERAGE("%ZIS1","LKUP")="2:0:0:0" +^COVERAGE("%ZIS1","LKUP",1)="2:0:0:0" +^COVERAGE("%ZIS1","LKUP",2)="2:0:0:0" +^COVERAGE("%ZIS1","LKUP",3)="2:0:0:0" +^COVERAGE("%ZIS1","MAIN",2)="2:0:0:0" +^COVERAGE("%ZIS1","R")="1:0:0:0" +^COVERAGE("%ZIS1","R",0)="1:0:0:0" +^COVERAGE("%ZIS1","R",1)="1:0:0:0" +^COVERAGE("%ZIS1","R",2)="1:0:0:0" +^COVERAGE("%ZIS1","RD",0)="1:0:0:0" +^COVERAGE("%ZIS1","RD",1)="1:0:0:0" +^COVERAGE("%ZIS1","RD",2)="1:0:0:0" +^COVERAGE("%ZIS1","RD",3)="1:0:0:0" +^COVERAGE("%ZIS1","RD",4)="1:0:0:0" +^COVERAGE("%ZIS1","RD",5)="1:0:0:0" +^COVERAGE("%ZIS1","SBR")="1:0:0:0" +^COVERAGE("%ZIS1","SBR",1)="1:0:0:0" +^COVERAGE("%ZIS1","SBR",2)="1:0:0:0" +^COVERAGE("%ZIS1","SBR",3)="1:0:0:0" +^COVERAGE("%ZIS1","SETQ")="2:0:0:0" +^COVERAGE("%ZIS1","SETQ",1)="2:0:0:0" +^COVERAGE("%ZIS1","SETQ",2)="2:0:0:0" +^COVERAGE("%ZIS1","SETQ",3)="2:0:0:0" +^COVERAGE("%ZIS1","SETQ",4)="2:0:0:0" +^COVERAGE("%ZIS1","SETQ",5)="2:0:0:0" +^COVERAGE("%ZIS1","SETVAR",1)="2:0:0:0" +^COVERAGE("%ZIS1","SETVAR",2)="2:0:0:0" +^COVERAGE("%ZIS1","SETVAR",5)="2:0:0:0" +^COVERAGE("%ZIS1","SETVAR",7)="2:0:0:0" +^COVERAGE("%ZIS1","SETVAR",8)="2:0:0:0" +^COVERAGE("%ZIS1","SETVAR",9)="2:0:0:0" +^COVERAGE("%ZIS1","SETVAR",10)="2:0:0:0" +^COVERAGE("%ZIS1","SETVAR",11)="2:0:0:0" +^COVERAGE("%ZIS1","SETVAR",12)="2:0:0:0" +^COVERAGE("%ZIS1","SETVAR",13)="2:0:0:0" +^COVERAGE("%ZIS2","CHECK",1)="2:0:0:0" +^COVERAGE("%ZIS2","CHECK",2)="2:0:0:0" +^COVERAGE("%ZIS2","CHECK",3)="2:0:0:0" +^COVERAGE("%ZIS2","CHECK",4)="2:0:0:0" +^COVERAGE("%ZIS2","CHECK",5)="2:0:0:0" +^COVERAGE("%ZIS2","CHECK",6)="2:0:0:0" +^COVERAGE("%ZIS2","IOPAR")="4:0:0:0" +^COVERAGE("%ZIS2","IOPAR",0)="4:0:0:0" +^COVERAGE("%ZIS2","IOPAR",1)="4:0:0:0" +^COVERAGE("%ZIS2","L2")="2:0:0:0" +^COVERAGE("%ZIS2","L2",1)="2:0:0:0" +^COVERAGE("%ZIS2","OCPU",0)="2:0:0:0" +^COVERAGE("%ZIS2","OOS",0)="2:0:0:0" +^COVERAGE("%ZIS2","OOS",2)="2:0:0:0" +^COVERAGE("%ZIS2","OTHCPU")="2:0:0:0" +^COVERAGE("%ZIS2","OTHCPU",0)="2:0:0:0" +^COVERAGE("%ZIS2","OTHCPU",1)="2:0:0:0" +^COVERAGE("%ZIS2","OTHCPU",2)="2:0:0:0" +^COVERAGE("%ZIS2","OTHCPU",2,"FOR_LOOP",1)=4 +^COVERAGE("%ZIS2","OTHCPU",3)="4:0:0:0" +^COVERAGE("%ZIS2","OTHCPU",4)="4:0:0:0" +^COVERAGE("%ZIS2","OTHCPU",5)="4:0:0:0" +^COVERAGE("%ZIS2","OTHCPU",15)="2:0:0:0" +^COVERAGE("%ZIS2","PTIME",0)="2:0:0:0" +^COVERAGE("%ZIS2","QUECHK")="2:0:0:0" +^COVERAGE("%ZIS2","QUECHK",0)="2:0:0:0" +^COVERAGE("%ZIS2","QUECHK",1)="2:0:0:0" +^COVERAGE("%ZIS2","QUECHK",3)="2:0:0:0" +^COVERAGE("%ZIS2","QUECHK",4)="2:0:0:0" +^COVERAGE("%ZIS2","QUECHK",9)="2:0:0:0" +^COVERAGE("%ZIS2","QUECHK",13)="2:0:0:0" +^COVERAGE("%ZIS2","SLAVE",0)="2:0:0:0" +^COVERAGE("%ZIS2","T2",0)="2:0:0:0" +^COVERAGE("%ZIS2","T2",2)="2:0:0:0" +^COVERAGE("%ZIS2","TMPVAR",0)="2:0:0:0" +^COVERAGE("%ZIS2","TMPVAR",1)="2:0:0:0" +^COVERAGE("%ZIS2","TMPVAR",2)="2:0:0:0" +^COVERAGE("%ZIS2","TMPVAR",4)="2:0:0:0" +^COVERAGE("%ZIS2","TMPVAR",10)="2:0:0:0" +^COVERAGE("%ZIS2","TMPVAR",11)="2:0:0:0" +^COVERAGE("%ZIS2","TMPVAR",12)="2:0:0:0" +^COVERAGE("%ZIS2","TMPVAR",15)="2:0:0:0" +^COVERAGE("%ZIS2","TMPVAR",16)="2:0:0:0" +^COVERAGE("%ZIS2","TMPVAR",18)="2:0:0:0" +^COVERAGE("%ZIS2","VTRM",0)="2:0:0:0" +^COVERAGE("%ZIS2","VTRM",1)="2:0:0:0" +^COVERAGE("%ZIS3","%ZIS3",4)="2:0:0:0" +^COVERAGE("%ZIS3","%ZIS3",5)="2:0:0:0" +^COVERAGE("%ZIS3","%ZIS3",6)="2:0:0:0" +^COVERAGE("%ZIS3","%ZIS3",8)="2:0:0:0" +^COVERAGE("%ZIS3","%ZIS3",9)="2:0:0:0" +^COVERAGE("%ZIS3","%ZIS3",11)="2:0:0:0" +^COVERAGE("%ZIS3","ALTP",0)="2:0:0:0" +^COVERAGE("%ZIS3","ASKMAR",0)="2:0:0:0" +^COVERAGE("%ZIS3","ASKMAR",1)="2:0:0:0" +^COVERAGE("%ZIS3","MARGN")="2:0:0:0" +^COVERAGE("%ZIS3","MARGN",1)="2:0:0:0" +^COVERAGE("%ZIS3","MARGN",2)="2:0:0:0" +^COVERAGE("%ZIS3","MARGN",3)="2:0:0:0" +^COVERAGE("%ZIS3","MARGN",4)="2:0:0:0" +^COVERAGE("%ZIS3","Q",2)="2:0:0:0" +^COVERAGE("%ZIS3","Q",3)="2:0:0:0" +^COVERAGE("%ZIS3","Q",4)="2:0:0:0" +^COVERAGE("%ZIS3","SETPAR")="2:0:0:0" +^COVERAGE("%ZIS3","SETPAR",0)="2:0:0:0" +^COVERAGE("%ZIS3","SETPAR",1)="2:0:0:0" +^COVERAGE("%ZIS3","ST")="2:0:0:0" +^COVERAGE("%ZIS3","ST",0)="2:0:0:0" +^COVERAGE("%ZIS3","ST",1)="2:0:0:0" +^COVERAGE("%ZIS3","ST",2)="2:0:0:0" +^COVERAGE("%ZIS3","ST",3)="2:0:0:0" +^COVERAGE("%ZIS3","STP",0)="2:0:0:0" +^COVERAGE("%ZIS3","STP",1)="2:0:0:0" +^COVERAGE("%ZIS3","STP",2)="2:0:0:0" +^COVERAGE("%ZIS3","STP",3)="2:0:0:0" +^COVERAGE("%ZIS3","TRM",1)="2:0:0:0" +^COVERAGE("%ZIS3","TRM",2)="2:0:0:0" +^COVERAGE("%ZIS3","TRM",3)="2:0:0:0" +^COVERAGE("%ZIS3","TRM",4)="2:0:0:0" +^COVERAGE("%ZIS3","TRM",5)="2:0:0:0" +^COVERAGE("%ZIS3","W")="2:0:0:0" +^COVERAGE("%ZIS3","W",0)="2:0:0:0" +^COVERAGE("%ZIS3","W",1)="2:0:0:0" +^COVERAGE("%ZIS3","W",2)="1:0:0:0" +^COVERAGE("%ZIS3","W",3)="1:0:0:0" +^COVERAGE("%ZIS4","O")="2:0:0:0" +^COVERAGE("%ZIS4","O",1)="2:0:0:0" +^COVERAGE("%ZIS4","O",2)="2:0:0:0" +^COVERAGE("%ZIS4","O1")="2:0:0:0" +^COVERAGE("%ZIS4","O1",0)="2:0:0:0" +^COVERAGE("%ZIS4","O1",1)="2:0:0:0" +^COVERAGE("%ZIS4","O1",2)="2:0:0:0" +^COVERAGE("%ZIS4","O1",3)="2:0:0:0" +^COVERAGE("%ZIS4","OPAR",0)="2:0:0:0" +^COVERAGE("%ZIS4","OPAR",1)="2:0:0:0" +^COVERAGE("%ZIS4","OPAR",2)="2:0:0:0" +^COVERAGE("%ZIS4","OPAR",3)="2:0:0:0" +^COVERAGE("%ZIS4","OPAR",4)="2:0:0:0" +^COVERAGE("%ZIS4","OPAR",5)="2:0:0:0" +^COVERAGE("%ZIS4","OPAR",9)="2:0:0:0" +^COVERAGE("%ZIS4","OPAR",10)="2:0:0:0" +^COVERAGE("%ZIS4","OPAR",12)="2:0:0:0" +^COVERAGE("%ZIS6","ANSBAK",1)="2:0:0:0" +^COVERAGE("%ZIS6","ANSBAK",2)="2:0:0:0" +^COVERAGE("%ZIS6","ANSBAK",3)="2:0:0:0" +^COVERAGE("%ZIS6","OXECUTE",1)="2:0:0:0" +^COVERAGE("%ZIS6","QUIT",0)="2:0:0:0" +^COVERAGE("%ZIS6","QUIT",1)="2:0:0:0" +^COVERAGE("%ZISC","C0")="1:0:0:0" +^COVERAGE("%ZISC","C0",1)="1:0:0:0" +^COVERAGE("%ZISC","C0",3)="1:0:0:0" +^COVERAGE("%ZISC","C0",5)="1:0:0:0" +^COVERAGE("%ZISC","C0",6)="1:0:0:0" +^COVERAGE("%ZISC","C0",8)="1:0:0:0" +^COVERAGE("%ZISC","C0",9)="1:0:0:0" +^COVERAGE("%ZISC","C0",10)="1:0:0:0" +^COVERAGE("%ZISC","C0",13)="1:0:0:0" +^COVERAGE("%ZISC","C0",16)="1:0:0:0" +^COVERAGE("%ZISC","C0",17)="1:0:0:0" +^COVERAGE("%ZISC","C0",21)="1:0:0:0" +^COVERAGE("%ZISC","C0",26)="1:0:0:0" +^COVERAGE("%ZISC","C0",27)="1:0:0:0" +^COVERAGE("%ZISC","C0",29)="1:0:0:0" +^COVERAGE("%ZISC","C0",32)="1:0:0:0" +^COVERAGE("%ZISC","C0",33)="1:0:0:0" +^COVERAGE("%ZISC","C0",34)="1:0:0:0" +^COVERAGE("%ZISC","C0",37)="1:0:0:0" +^COVERAGE("%ZISC","C0",41)="1:0:0:0" +^COVERAGE("%ZISC","C0",43)="1:0:0:0" +^COVERAGE("%ZISC","CIOS")="1:0:0:0" +^COVERAGE("%ZISC","CIOS",0)="1:0:0:0" +^COVERAGE("%ZISC","CIOS",1)="1:0:0:0" +^COVERAGE("%ZISC","CIOS",2)="1:0:0:0" +^COVERAGE("%ZISC","CIOS",3)="1:0:0:0" +^COVERAGE("%ZISC","CIOS",4)="1:0:0:0" +^COVERAGE("%ZISC","CIOS",5)="1:0:0:0" +^COVERAGE("%ZISC","CIOS",6)="1:0:0:0" +^COVERAGE("%ZISC","CIOS",7)="1:0:0:0" +^COVERAGE("%ZISC","CIOS",8)="1:0:0:0" +^COVERAGE("%ZISC","CLOSPP")="1:0:0:0" +^COVERAGE("%ZISC","CLOSPP",0)="1:0:0:0" +^COVERAGE("%ZISC","CLOSPP",1)="1:0:0:0" +^COVERAGE("%ZISC","CLOSPP",2)="1:0:0:0" +^COVERAGE("%ZISC","END",0)="1:0:0:0" +^COVERAGE("%ZISC","END",2)="1:0:0:0" +^COVERAGE("%ZISC","END",4)="1:0:0:0" +^COVERAGE("%ZISC","FF")="1:0:0:0" +^COVERAGE("%ZISC","FF",0)="1:0:0:0" +^COVERAGE("%ZISC","FF",1)="1:0:0:0" +^COVERAGE("%ZISC","FF",2)="1:0:0:0" +^COVERAGE("%ZISC","RM")="1:0:0:0" +^COVERAGE("%ZISC","RM",0)="1:0:0:0" +^COVERAGE("%ZISC","RM",1)="1:0:0:0" +^COVERAGE("%ZISC","S1",0)="1:0:0:0" +^COVERAGE("%ZISC","S1",1)="1:0:0:0" +^COVERAGE("%ZISC","SETIO",2)="1:0:0:0" +^COVERAGE("%ZISC","SETIO",4)="1:0:0:0" +^COVERAGE("%ZISC","SETIO",5)="1:0:0:0" +^COVERAGE("%ZISC","SETIO",6)="1:0:0:0" +^COVERAGE("%ZISC","SETIO",7)="1:0:0:0" +^COVERAGE("%ZISC","SETIO",8)="1:0:0:0" +^COVERAGE("%ZISC","SETIO",9)="1:0:0:0" +^COVERAGE("%ZISC","SETIO",10)="1:0:0:0" +^COVERAGE("%ZISC","SETIO",12)="1:0:0:0" +^COVERAGE("%ZISC","SUBTYPE")="1:0:0:0" +^COVERAGE("%ZISC","SUBTYPE",1)="1:0:0:0" +^COVERAGE("%ZISC","SUBTYPE",2)="1:0:0:0" +^COVERAGE("%ZISC","SUBTYPE",3)="1:0:0:0" +^COVERAGE("%ZISUTL","LINEPORT")="1:0:0:0" +^COVERAGE("%ZISUTL","LINEPORT",0)="1:0:0:0" +^COVERAGE("%ZISUTL","LINEPORT",2)="1:0:0:0" +^COVERAGE("%ZISUTL","LINEPORT",3)="1:0:0:0" +^COVERAGE("%ZISUTL","LINEPORT",4)="1:0:0:0" +^COVERAGE("%ZISUTL","LINEPORT",5)="1:0:0:0" +^COVERAGE("%ZISUTL","LINEPORT",6)="1:0:0:0" +^COVERAGE("%ZISUTL","LNPRTIEN")="3:0:0:0" +^COVERAGE("%ZISUTL","LNPRTIEN",0)="3:0:0:0" +^COVERAGE("%ZISUTL","LNPRTIEN",1)="3:0:0:0" +^COVERAGE("%ZISUTL","LNPRTNAM")="3:0:0:0" +^COVERAGE("%ZISUTL","LNPRTNAM",0)="3:0:0:0" +^COVERAGE("%ZISUTL","LNPRTNAM",1)="3:0:0:0" +^COVERAGE("%ZISUTL","LNPRTNAM",2)="3:0:0:0" +^COVERAGE("%ZISUTL","LNPRTNAM",3)="3:0:0:0" +^COVERAGE("%ZISUTL","LNPRTNAM",5)="3:0:0:0" +^COVERAGE("%ZISUTL","LNPRTNAM",6)="3:0:0:0" +^COVERAGE("%ZISUTL","LNPRTSUB")="2:0:0:0" +^COVERAGE("%ZISUTL","LNPRTSUB",0)="2:0:0:0" +^COVERAGE("%ZISUTL","LNPRTSUB",1)="2:0:0:0" +^COVERAGE("%ZISUTL","LNPRTSUB",2)="2:0:0:0" +^COVERAGE("%ZISUTL","LNPRTSUB",3)="2:0:0:0" +^COVERAGE("%ZISUTL","SYMBOL")="2:0:0:0" +^COVERAGE("%ZISUTL","SYMBOL",0)="2:0:0:0" +^COVERAGE("%ZISUTL","SYMBOL",1)="2:0:0:0" +^COVERAGE("%ZISUTL","SYMBOL",3)="2:0:0:0" +^COVERAGE("%ZISUTL","SYMBOL",4)="2:0:0:0" +^COVERAGE("%ZISUTL","SYMBOL",5)="2:0:0:0" +^COVERAGE("%ZISUTL","SYMBOL",5,"FOR_LOOP",1)=40 +^COVERAGE("%ZISUTL","SYMBOL",6)="40:0:0:0" +^COVERAGE("%ZISUTL","SYMBOL",10)="2:0:0:0" +^COVERAGE("%ZOSV","GETENV")="2:0:0:0" +^COVERAGE("%ZOSV","GETENV",1)="2:0:0:0" +^COVERAGE("%ZOSV","GETENV",2)="2:0:0:0" +^COVERAGE("%ZOSV","GETENV",3)="2:0:0:0" +^COVERAGE("%ZOSV","LGR")="2:0:0:0" +^COVERAGE("%ZOSV","LGR",0)="2:0:0:0" +^COVERAGE("%ZOSV","LGR",1)="2:0:0:0" +^COVERAGE("%ZOSV","PRI")="1:0:0:0" +^COVERAGE("%ZOSV","PRI",0)="1:0:0:0" +^COVERAGE("%ZOSV","PRI",3)="1:0:0:0" +^COVERAGE("%ZOSV","RETURN")="2:0:4000:4000" +^COVERAGE("%ZOSV","RETURN",0)="2:0:0:0" +^COVERAGE("%ZOSV","RETURN",2)="2:0:0:0" +^COVERAGE("%ZOSV","RETURN",3)="2:0:0:0" +^COVERAGE("%ZOSV","RETURN",4)="2:0:4000:4000" +^COVERAGE("%ZOSV","RETURN",5)="2:0:0:0" +^COVERAGE("%ZOSV","RETURN",7)="2:0:0:0" +^COVERAGE("%ZOSV","TEMP")="2:0:0:0" +^COVERAGE("%ZOSV","TEMP",0)="2:0:0:0" +^COVERAGE("%ZOSV","TEMP",2)="2:0:0:0" +^COVERAGE("%ZOSV2","LOAD")="467:1000060:340019:1340079" +^COVERAGE("%ZOSV2","LOAD",0)="467:0:0:0" +^COVERAGE("%ZOSV2","LOAD",1)="467:0:8001:8001" +^COVERAGE("%ZOSV2","LOAD",2)="467:1000060:320018:1320078" +^COVERAGE("%ZOSV2","LOAD",2,"FOR_LOOP",1)=45087 +^COVERAGE("%ZOSV2","LOAD",3)="467:0:12000:12000" +^COVERAGE("DIALOG","EZBLD")="2:0:4000:4000" +^COVERAGE("DIALOG","EZBLD",0)="2:0:0:0" +^COVERAGE("DIALOG","EZBLD",2)="2:0:0:0" +^COVERAGE("DIALOG","EZBLD",3)="2:0:0:0" +^COVERAGE("DIALOG","EZBLD",4)="2:0:0:0" +^COVERAGE("DIALOG","EZBLD",5)="2:0:0:0" +^COVERAGE("DIALOG","EZBLD",6)="2:0:0:0" +^COVERAGE("DIALOG","EZBLD",7)="2:0:0:0" +^COVERAGE("DIALOG","EZBLD",8)="2:0:0:0" +^COVERAGE("DIALOG","EZBLD",9)="2:0:0:0" +^COVERAGE("DIALOG","PARAM")="2:0:0:0" +^COVERAGE("DIALOG","PARAM",0)="4:0:0:0" +^COVERAGE("DIALOG","PARAM",1)="2:0:0:0" +^COVERAGE("DIALOG","PARAM",2)="2:0:0:0" +^COVERAGE("DIALOG","PARAM",3)="2:0:0:0" +^COVERAGE("DIALOG","Q1",0)="2:0:0:0" +^COVERAGE("DIALOG","Q2")="2:0:0:0" +^COVERAGE("DIALOG","Q2",0)="2:0:0:0" +^COVERAGE("DIALOG","QEZ",0)="2:0:4000:4000" +^COVERAGE("DIALOG","QEZ",1)="2:0:0:0" +^COVERAGE("DIALOG","QP",0)="2:0:0:0" +^COVERAGE("DIC","A1",0)="2:0:0:0" +^COVERAGE("DIC","ASK",0)="2:0:0:0" +^COVERAGE("DIC","ASK",1)="2:0:0:0" +^COVERAGE("DIC","ASK",2)="2:0:0:0" +^COVERAGE("DIC","ASK",3)="2:0:0:0" +^COVERAGE("DIC","ASK",4)="2:0:0:0" +^COVERAGE("DIC","DIC")="2:0:0:0" +^COVERAGE("DIC","DIC",3)="2:0:0:0" +^COVERAGE("DIC","DIC",4)="2:0:0:0" +^COVERAGE("DIC","DIC",5)="2:0:0:0" +^COVERAGE("DIC","DIC",6)="2:0:0:0" +^COVERAGE("DIC","EN",0)="2:0:0:0" +^COVERAGE("DIC","EN",1)="2:0:0:0" +^COVERAGE("DIC","EN",2)="2:0:0:0" +^COVERAGE("DIC","EN",3)="2:0:0:0" +^COVERAGE("DIC","EN",4)="2:0:0:0" +^COVERAGE("DIC","EN",5)="2:0:0:0" +^COVERAGE("DIC","EN",6)="2:0:0:0" +^COVERAGE("DIC","EN",7)="2:0:0:0" +^COVERAGE("DIC","EN",8)="2:0:0:0" +^COVERAGE("DIC","EN",9)="2:0:0:0" +^COVERAGE("DIC","RTN",0)="2:0:0:0" +^COVERAGE("DIC","RTN",3)="2:0:0:0" +^COVERAGE("DIC","RTN",6)="2:0:0:0" +^COVERAGE("DIC","X",1)="2:0:0:0" +^COVERAGE("DIC","X",4)="2:0:0:0" +^COVERAGE("DIC","X",5)="2:0:0:0" +^COVERAGE("DIC","X",6)="2:0:0:0" +^COVERAGE("DIC0","GETFILE")="2:0:0:0" +^COVERAGE("DIC0","GETFILE",0)="2:0:0:0" +^COVERAGE("DIC0","GETFILE",1)="2:0:0:0" +^COVERAGE("DIC0","GETFILE",2)="2:0:0:0" +^COVERAGE("DIC0","GETFILE",3)="2:0:0:0" +^COVERAGE("DIC0","GETFILE",4)="2:0:0:0" +^COVERAGE("DIC0","GETFILE",7)="2:0:0:0" +^COVERAGE("DIC0","GETFILE",8)="2:0:0:0" +^COVERAGE("DIC0","GETFILE",11)="2:0:0:0" +^COVERAGE("DIC0","GETFILE",12)="2:0:0:0" +^COVERAGE("DIC0","GETFILE",13)="2:0:0:0" +^COVERAGE("DIC0","GETFILE",14)="2:0:0:0" +^COVERAGE("DIC0","GETFILE",15)="2:0:0:0" +^COVERAGE("DIC0","GETFILE",16)="2:0:0:0" +^COVERAGE("DIC0","INIT")="2:0:0:0" +^COVERAGE("DIC0","INIT",1)="2:0:0:0" +^COVERAGE("DIC0","INIT",2)="2:0:0:0" +^COVERAGE("DIC0","INIT",3)="2:0:0:0" +^COVERAGE("DIC0","INIT",4)="2:0:0:0" +^COVERAGE("DIC0","INIT",5)="2:0:0:0" +^COVERAGE("DIC0","INIT",6)="2:0:0:0" +^COVERAGE("DIC0","INIT",7)="2:0:0:0" +^COVERAGE("DIC0","INIT",8)="2:0:0:0" +^COVERAGE("DIC0","SETIEN")="2:0:0:0" +^COVERAGE("DIC0","SETIEN",0)="2:0:0:0" +^COVERAGE("DIC0","SETIEN",1)="2:0:0:0" +^COVERAGE("DIC0","SETIEN",2)="2:0:0:0" +^COVERAGE("DIC0","SETIEN",3)="2:0:0:0" +^COVERAGE("DIC0","SETIEN",4)="2:0:0:0" +^COVERAGE("DIC0","SETIEN",5)="2:0:0:0" +^COVERAGE("DIC0","SETIEN",5,"FOR_LOOP",1)=2 +^COVERAGE("DIC0","SETIEN",6)="2:0:0:0" +^COVERAGE("DIC0","SETIEN",7)="2:0:0:0" +^COVERAGE("DIC1","B",0)="2:0:0:0" +^COVERAGE("DIC1","DIC1")="2:0:0:0" +^COVERAGE("DIC1","DIC1",3)="2:0:0:0" +^COVERAGE("DIC1","DIC1",4)="2:0:0:0" +^COVERAGE("DIC1","DIC1",5)="2:0:0:0" +^COVERAGE("DIC1","DO")="4:0:0:0" +^COVERAGE("DIC1","DO",1)="4:0:0:0" +^COVERAGE("DIC1","DO",2)="2:0:0:0" +^COVERAGE("DIC1","DO2",0)="2:0:0:0" +^COVERAGE("DIC1","DO2",1)="2:0:0:0" +^COVERAGE("DIC1","DO2",2)="2:0:0:0" +^COVERAGE("DIC1","DO2",3)="2:0:0:0" +^COVERAGE("DIC1","GETFA")="4:0:0:0" +^COVERAGE("DIC1","GETFA",0)="4:0:0:0" +^COVERAGE("DIC1","GETFA",2)="4:0:0:0" +^COVERAGE("DIC1","P",1)="2:0:0:0" +^COVERAGE("DIC1","P",2)="2:0:0:0" +^COVERAGE("DIC1","PROMPT",1)="2:0:0:0" +^COVERAGE("DIC1","PROMPT",2)="2:0:0:0" +^COVERAGE("DIC1","W",0)="2:0:0:0" +^COVERAGE("DIC1","W",0,"FOR_LOOP",1)=4 +^COVERAGE("DIC1","W",1)="3:0:0:0" +^COVERAGE("DIC1","W",2)="3:0:0:0" +^COVERAGE("DIC1","W",3)="2:0:0:0" +^COVERAGE("DIC1","W",4)="2:0:0:0" +^COVERAGE("DIC1","W",5)="2:0:0:0" +^COVERAGE("DIC1","W",6)="2:0:0:0" +^COVERAGE("DIC1","WOV")="1:0:0:0" +^COVERAGE("DIC1","WOV",0)="1:0:0:0" +^COVERAGE("DIC1","WOV",1)="1:0:0:0" +^COVERAGE("DIC11","GETPRMT")="2:0:0:0" +^COVERAGE("DIC11","GETPRMT",0)="2:0:0:0" +^COVERAGE("DIC11","GETPRMT",1)="2:0:0:0" +^COVERAGE("DIC11","GETPRMT",2)="2:0:0:0" +^COVERAGE("DIC11","GETPRMT",3)="2:0:0:0" +^COVERAGE("DIC11","GETPRMT",3,"FOR_LOOP",1)=2 +^COVERAGE("DIC11","GETPRMT",4)="2:0:0:0" +^COVERAGE("DIC11","GETPRMT",8)="2:0:0:0" +^COVERAGE("DIC11","GETPRMT",9)="2:0:0:0" +^COVERAGE("DIC11","GETPRMT",10)="2:0:0:0" +^COVERAGE("DIC11","GETPRMT",11)="2:0:0:0" +^COVERAGE("DIC11","GETPRMT",12)="2:0:0:0" +^COVERAGE("DIC11","GETPRMT",13)="2:0:0:0" +^COVERAGE("DIC11","GETPRMT",14)="2:0:0:0" +^COVERAGE("DIC11","GETPRMT",15)="2:0:0:0" +^COVERAGE("DIC11","GETPRMT",16)="2:0:0:0" +^COVERAGE("DIC11","GETPRMT",17)="2:0:0:0" +^COVERAGE("DIC11","GETPRMT",18)="2:0:0:0" +^COVERAGE("DIC11","GETPRMT",19)="2:0:0:0" +^COVERAGE("DIC11","PR1",0)="2:0:0:0" +^COVERAGE("DIC11","PR1",1)="2:0:0:0" +^COVERAGE("DIC11","PR1",2)="2:0:0:0" +^COVERAGE("DIC11","PR1",3)="2:0:0:0" +^COVERAGE("DIC11","PR1",4)="2:0:0:0" +^COVERAGE("DIC11","PR1",6)="2:0:0:0" +^COVERAGE("DIC11","PR1",8)="2:0:0:0" +^COVERAGE("DIC11","PR1",9)="2:0:0:0" +^COVERAGE("DIC11","PR1",11)="2:0:0:0" +^COVERAGE("DIC11","PR1",12)="2:0:0:0" +^COVERAGE("DIC11","PR1",13)="2:0:0:0" +^COVERAGE("DIC11","PR1",14)="2:0:0:0" +^COVERAGE("DIC11","PR1",15)="2:0:0:0" +^COVERAGE("DIC11","PR1",16)="2:0:0:0" +^COVERAGE("DIC11","PROMPT")="2:0:0:0" +^COVERAGE("DIC11","PROMPT",0)="2:0:0:0" +^COVERAGE("DIC11","PROMPT",1)="2:0:0:0" +^COVERAGE("DIC11","PROMPT",1,"FOR_LOOP",1)=2 +^COVERAGE("DIC11","PROMPT",2)="2:0:0:0" +^COVERAGE("DIC11","PROMPT",3)="2:0:0:0" +^COVERAGE("DIC11","PROMPT",5)="2:0:0:0" +^COVERAGE("DIC2","PGM")="4:0:0:0" +^COVERAGE("DIC2","PGM",0)="4:0:0:0" +^COVERAGE("DIC2","PGM",1)="4:0:0:0" +^COVERAGE("DIC2","PGM",2)="4:0:0:0" +^COVERAGE("DIC2","Q")="2:0:0:0" +^COVERAGE("DIC2","Q",0)="2:0:0:0" +^COVERAGE("DIC2","Q",1)="2:0:0:0" +^COVERAGE("DIC2","Q",2)="2:0:0:0" +^COVERAGE("DICL","DINDEX")="2:0:0:0" +^COVERAGE("DICL","DINDEX",0)="2:0:0:0" +^COVERAGE("DICL","DINDEX",1)="2:0:0:0" +^COVERAGE("DICL","DINDEX",2)="2:0:0:0" +^COVERAGE("DICL","DINDEX",5)="2:0:0:0" +^COVERAGE("DICL","DINDEX",6)="2:0:0:0" +^COVERAGE("DICUIX","I1",2)="2:0:0:0" +^COVERAGE("DICUIX","I1",3)="2:0:0:0" +^COVERAGE("DICUIX","I1",4)="2:0:0:0" +^COVERAGE("DICUIX","I1",5)="2:0:0:0" +^COVERAGE("DICUIX","INDEX")="2:0:0:0" +^COVERAGE("DICUIX","INDEX",0)="2:0:0:0" +^COVERAGE("DICUIX","X1",2)="2:0:0:0" +^COVERAGE("DICUIX","X1",8)="2:0:0:0" +^COVERAGE("DICUIX","X1",9)="2:0:0:0" +^COVERAGE("DICUIX","X2",2)="2:0:0:0" +^COVERAGE("DICUIX","X2",3)="2:0:0:0" +^COVERAGE("DICUIX","X2",4)="2:0:0:0" +^COVERAGE("DICUIX","X2",5)="2:0:0:0" +^COVERAGE("DICUIX","X2",8)="2:0:0:0" +^COVERAGE("DICUIX","X2",11)="2:0:0:0" +^COVERAGE("DICUIX","X2",12)="2:0:0:0" +^COVERAGE("DICUIX","X2",13)="2:0:0:0" +^COVERAGE("DICUIX","X2",14)="2:0:0:0" +^COVERAGE("DICUIX","X2",15)="2:0:0:0" +^COVERAGE("DICUIX","X2",15,"FOR_LOOP",1)=2 +^COVERAGE("DICUIX","X2",16)="2:0:0:0" +^COVERAGE("DICUIX","X2",17)="2:0:0:0" +^COVERAGE("DICUIX","X2",18)="2:0:0:0" +^COVERAGE("DICUIX","X2",19)="2:0:0:0" +^COVERAGE("DICUIX","X2",20)="2:0:0:0" +^COVERAGE("DICUIX","X2",21)="2:0:0:0" +^COVERAGE("DICUIX","X2",22)="2:0:0:0" +^COVERAGE("DICUIX","X2",23)="2:0:0:0" +^COVERAGE("DICUIX","X2",24)="2:0:0:0" +^COVERAGE("DICUIX","X2",25)="2:0:0:0" +^COVERAGE("DICUIX","X2",26)="2:0:0:0" +^COVERAGE("DICUIX","X2",27)="2:0:0:0" +^COVERAGE("DICUIX","X2",28)="2:0:0:0" +^COVERAGE("DICUIX","X2",29)="2:0:0:0" +^COVERAGE("DICUIX","X2",30)="2:0:0:0" +^COVERAGE("DICUIX","X2",31)="2:0:0:0" +^COVERAGE("DICUIX","X2",32)="2:0:0:0" +^COVERAGE("DICUIX","X2",33)="2:0:0:0" +^COVERAGE("DICUIX","XREF")="2:0:0:0" +^COVERAGE("DICUIX","XREF",0)="2:0:0:0" +^COVERAGE("DICUIX1","G1",2)="2:0:0:0" +^COVERAGE("DICUIX1","G1",3)="2:0:0:0" +^COVERAGE("DICUIX1","G1",4)="2:0:0:0" +^COVERAGE("DICUIX1","G2",2)="2:0:0:0" +^COVERAGE("DICUIX1","G2",3)="2:0:0:0" +^COVERAGE("DICUIX1","G3",2)="2:0:0:0" +^COVERAGE("DICUIX1","G30",1)="2:0:0:0" +^COVERAGE("DICUIX1","G4",2)="2:0:0:0" +^COVERAGE("DICUIX1","G4",3)="2:0:0:0" +^COVERAGE("DICUIX1","G4",4)="2:0:0:0" +^COVERAGE("DICUIX1","G4",5)="2:0:0:0" +^COVERAGE("DICUIX1","G4",6)="2:0:0:0" +^COVERAGE("DICUIX1","G4",7)="2:0:0:0" +^COVERAGE("DICUIX1","G5",2)="2:0:0:0" +^COVERAGE("DICUIX1","G5",3)="2:0:0:0" +^COVERAGE("DICUIX1","G5",7)="2:0:0:0" +^COVERAGE("DICUIX1","GET")="2:0:0:0" +^COVERAGE("DICUIX1","GET",0)="2:0:0:0" +^COVERAGE("DICUIX2","C1",0)="2:0:0:0" +^COVERAGE("DICUIX2","C1",1)="2:0:0:0" +^COVERAGE("DICUIX2","C2",0)="2:0:0:0" +^COVERAGE("DICUIX2","C2",1)="2:0:0:0" +^COVERAGE("DICUIX2","C3",0)="2:0:0:0" +^COVERAGE("DICUIX2","C3",1)="2:0:0:0" +^COVERAGE("DICUIX2","C3",2)="2:0:0:0" +^COVERAGE("DICUIX2","C3",5)="2:0:0:0" +^COVERAGE("DICUIX2","C4",0)="2:0:0:0" +^COVERAGE("DICUIX2","C4",1)="2:0:0:0" +^COVERAGE("DICUIX2","C4",2)="2:0:0:0" +^COVERAGE("DICUIX2","C4",3)="2:0:0:0" +^COVERAGE("DICUIX2","C4",4)="2:0:0:0" +^COVERAGE("DICUIX2","C4",5)="2:0:0:0" +^COVERAGE("DICUIX2","C4",6)="2:0:0:0" +^COVERAGE("DICUIX2","C4",7)="2:0:0:0" +^COVERAGE("DICUIX2","C4",8)="2:0:0:0" +^COVERAGE("DICUIX2","C4",9)="2:0:0:0" +^COVERAGE("DICUIX2","C4",10)="2:0:0:0" +^COVERAGE("DICUIX2","C4",11)="2:0:0:0" +^COVERAGE("DICUIX2","C4",12)="2:0:0:0" +^COVERAGE("DICUIX2","C4",17)="2:0:0:0" +^COVERAGE("DICUIX2","C4",18)="2:0:0:0" +^COVERAGE("DICUIX2","C4",23)="2:0:0:0" +^COVERAGE("DICUIX2","C4",24)="2:0:0:0" +^COVERAGE("DICUIX2","C5",0)="2:0:0:0" +^COVERAGE("DICUIX2","C5",1)="2:0:0:0" +^COVERAGE("DICUIX2","C6",0)="2:0:0:0" +^COVERAGE("DICUIX2","C6",18)="2:0:0:0" +^COVERAGE("DICUIX2","C6",19)="2:0:0:0" +^COVERAGE("DICUIX2","C6",20)="2:0:0:0" +^COVERAGE("DICUIX2","C7",0)="2:0:0:0" +^COVERAGE("DICUIX2","C7",7)="2:0:0:0" +^COVERAGE("DICUIX2","COMMON1")="2:0:0:0" +^COVERAGE("DICUIX2","COMMON1",1)="2:0:0:0" +^COVERAGE("DICUIX2","COMMON1",2)="2:0:0:0" +^COVERAGE("DICUIX2","COMMON1",3)="2:0:0:0" +^COVERAGE("DICUIX2","COMMON1",4)="2:0:0:0" +^COVERAGE("DICUIX2","COMMON1",5)="2:0:0:0" +^COVERAGE("DICUIX2","COMMON1",6)="2:0:0:0" +^COVERAGE("DICUIX2","COMMON1",7)="2:0:0:0" +^COVERAGE("DICUIX2","COMMON2")="2:0:0:0" +^COVERAGE("DICUIX2","COMMON2",1)="2:0:0:0" +^COVERAGE("DICUIX2","COMMON2",2)="2:0:0:0" +^COVERAGE("DICUIX2","COMMON2",3)="2:0:0:0" +^COVERAGE("DICUIX2","COMMON2",4)="2:0:0:0" +^COVERAGE("DICUIX2","COMMON2",5)="2:0:0:0" +^COVERAGE("DICUIX2","COMMON2",6)="2:0:0:0" +^COVERAGE("DICUIX2","COMMON2",7)="2:0:0:0" +^COVERAGE("DICUIX2","COMMON2",8)="2:0:0:0" +^COVERAGE("DICUIX2","COMMON2",9)="2:0:0:0" +^COVERAGE("DIEFU","IENX",1)="2:0:0:0" +^COVERAGE("DIEFU","IENX",2)="2:0:0:0" +^COVERAGE("DIEFU","IENX",3)="2:0:0:0" +^COVERAGE("DIEFU","IENX",3,"FOR_LOOP",1)=4 +^COVERAGE("DIEFU","IENX",4)="2:0:0:0" +^COVERAGE("DIEFU","IENX",5)="2:0:0:0" +^COVERAGE("DILF","CREF")="4:0:0:0" +^COVERAGE("DILF","CREF",0)="4:0:0:0" +^COVERAGE("DILF","IENS")="2:0:0:0" +^COVERAGE("DILF","IENS",0)="2:0:0:0" +^COVERAGE("DILF","IENS",1)="2:0:0:0" +^COVERAGE("DILF","OREF")="2:0:0:0" +^COVERAGE("DILF","OREF",0)="2:0:0:0" +^COVERAGE("DILIBF","FNO")="2:0:0:0" +^COVERAGE("DILIBF","FNO",0)="2:0:0:0" +^COVERAGE("DILIBF","FNO",1)="2:0:0:0" +^COVERAGE("DILIBF","FNO",2)="2:0:0:0" +^COVERAGE("DIQGU","ENCREF",0)="4:0:0:0" +^COVERAGE("DIQGU","ENOREF",0)="2:0:0:0" +^COVERAGE("DIQGU","OR2")="2:0:0:0" +^COVERAGE("DIQGU","OR2",0)="2:0:0:0" +^COVERAGE("XINDEX","A2",0)="468:0:4000:4000" +^COVERAGE("XINDEX","A2",1)="467:0:0:0" +^COVERAGE("XINDEX","A2",2)="467:0:0:0" +^COVERAGE("XINDEX","A2",3)="467:4000:0:4000" +^COVERAGE("XINDEX","A2",4)="467:0:4000:4000" +^COVERAGE("XINDEX","A2",5)="467:0:0:0" +^COVERAGE("XINDEX","ALIVE",1)="1:0:0:0" +^COVERAGE("XINDEX","B5",0)="467:188012:220012:408024" +^COVERAGE("XINDEX","B5",0,"FOR_LOOP",1)=44620 +^COVERAGE("XINDEX","B5",1)="467:20000:8000:28000" +^COVERAGE("XINDEX","B5",2)="467:4000:0:4000" +^COVERAGE("XINDEX","B5",3)="467:0:0:0" +^COVERAGE("XINDEX","B5",4)="467:4000:0:4000" +^COVERAGE("XINDEX","B5",5)="467:0:0:0" +^COVERAGE("XINDEX","BEG")="467:2460149:2872194:5332343" +^COVERAGE("XINDEX","BEG",1)="467:8000:0:8000" +^COVERAGE("XINDEX","BEG",2)="467:4000:0:4000" +^COVERAGE("XINDEX","BEG",3)="467:0:4000:4000" +^COVERAGE("XINDEX","BEG",4)="467:0:4000:4000" +^COVERAGE("XINDEX","BEG",5)="467:4001:0:4001" +^COVERAGE("XINDEX","BEG",7)="467:0:0:0" +^COVERAGE("XINDEX","BEG",8)="467:0:0:0" +^COVERAGE("XINDEX","BEG",9)="467:0:0:0" +^COVERAGE("XINDEX","BEG",11)="467:4000:0:4000" +^COVERAGE("XINDEX","BEG",12)="467:0:4000:4000" +^COVERAGE("XINDEX","BEG",14)="467:0:0:0" +^COVERAGE("XINDEX","BEG",15)="467:0:0:0" +^COVERAGE("XINDEX","BEG",16)="467:0:0:0" +^COVERAGE("XINDEX","CD",0)="44620:32001:36002:68003" +^COVERAGE("XINDEX","CD",1)="44620:40002:60004:100006" +^COVERAGE("XINDEX","CD",2)="44620:40001:60002:100003" +^COVERAGE("XINDEX","CD",3)="44620:36002:44004:80006" +^COVERAGE("XINDEX","CD",4)="44620:28000:40002:68002" +^COVERAGE("XINDEX","CD",5)="44620:28002:52001:80003" +^COVERAGE("XINDEX","CD",6)="10770:28003:20000:48003" +^COVERAGE("XINDEX","CD",6,"FOR_LOOP",1)=57531 +^COVERAGE("XINDEX","CD",7)="10770:24004:16000:40004" +^COVERAGE("XINDEX","CD",9)="44620:60005:40004:100009" +^COVERAGE("XINDEX","CD",10)="44620:44003:48005:92008" +^COVERAGE("XINDEX","CD",12)="44620:52004:44002:96006" +^COVERAGE("XINDEX","EE",0)="116081:148007:200014:348021" +^COVERAGE("XINDEX","EE",1)="71461:44004:44002:88006" +^COVERAGE("XINDEX","EE",2)="71461:100007:80003:180010" +^COVERAGE("XINDEX","EE",3)="54870:44001:48001:92002" +^COVERAGE("XINDEX","EE",4)="53608:88008:100009:188017" +^COVERAGE("XINDEX","EE",5)="53608:72006:68004:140010" +^COVERAGE("XINDEX","EE",6)="53608:76005:72004:148009" +^COVERAGE("XINDEX","EE",8)="53608:60003:64005:124008" +^COVERAGE("XINDEX","EE",9)="53608:48003:72003:120006" +^COVERAGE("XINDEX","EE",10)="53608:52002:96008:148010" +^COVERAGE("XINDEX","EE",13)="53608:52003:44001:96004" +^COVERAGE("XINDEX","EE",14)="53608:96007:112006:208013" +^COVERAGE("XINDEX","EE",15)="53608:24001:52004:76005" +^COVERAGE("XINDEX","EE",16)="53608:52005:88007:140012" +^COVERAGE("XINDEX","EE",17)="53608:128008:208017:336025" +^COVERAGE("XINDEX","F")="1559:4000:4001:8001" +^COVERAGE("XINDEX","F",0)="1559:4000:0:4000" +^COVERAGE("XINDEX","G")="1932:56003:96009:152012" +^COVERAGE("XINDEX","G",0)="1932:4000:8002:12002" +^COVERAGE("XINDEX","H")="11:0:0:0" +^COVERAGE("XINDEX","H",0)="11:0:0:0" +^COVERAGE("XINDEX","K")="2218:40001:24002:64003" +^COVERAGE("XINDEX","K",0)="2218:4000:4000:8000" +^COVERAGE("XINDEX","K",1)="2218:0:4001:4001" +^COVERAGE("XINDEX","L")="259:4001:4000:8001" +^COVERAGE("XINDEX","L",0)="259:0:0:0" +^COVERAGE("XINDEX","LN",0)="44620:68005:104005:172010" +^COVERAGE("XINDEX","LN",1)="44620:40001:64004:104005" +^COVERAGE("XINDEX","LN",2)="5073:12000:4001:16001" +^COVERAGE("XINDEX","LN",3)="5073:4000:8000:12000" +^COVERAGE("XINDEX","LN",4)="5073:20001:0:20001" +^COVERAGE("XINDEX","LN",5)="5073:20003:12002:32005" +^COVERAGE("XINDEX","LN",6)="5073:12002:16000:28002" +^COVERAGE("XINDEX","LOAD")="467:88003:196019:284022" +^COVERAGE("XINDEX","LOAD",0)="467:88003:196019:284022" +^COVERAGE("XINDEX","LOAD",1)="467:0:0:0" +^COVERAGE("XINDEX","LOAD",2)="467:0:0:0" +^COVERAGE("XINDEX","M")="30:4000:0:4000" +^COVERAGE("XINDEX","M",0)="30:0:0:0" +^COVERAGE("XINDEX","N")="1721:88005:80004:168009" +^COVERAGE("XINDEX","N",0)="1721:4000:0:4000" +^COVERAGE("XINDEX","POSTRTN")="467:108009:96003:204012" +^COVERAGE("XINDEX","POSTRTN",1)="467:0:0:0" +^COVERAGE("XINDEX","POSTRTN",2)="467:0:0:0" +^COVERAGE("XINDEX","POSTRTN",3)="467:12000:8000:20000" +^COVERAGE("XINDEX","POSTRTN",3,"FOR_LOOP",1)=2558 +^COVERAGE("XINDEX","POSTRTN",4)="2091:0:0:0" +^COVERAGE("XINDEX","POSTRTN",5)="2044:4000:0:4000" +^COVERAGE("XINDEX","POSTRTN",6)="2044:4000:0:4000" +^COVERAGE("XINDEX","POSTRTN",9)="2044:0:0:0" +^COVERAGE("XINDEX","POSTRTN",10)="467:0:4000:4000" +^COVERAGE("XINDEX","POSTRTN",11)="467:12002:16001:28003" +^COVERAGE("XINDEX","POSTRTN",11,"FOR_LOOP",1)=5540 +^COVERAGE("XINDEX","POSTRTN",12)="5073:0:4000:4000" +^COVERAGE("XINDEX","POSTRTN",13)="5073:8000:4000:12000" +^COVERAGE("XINDEX","POSTRTN",14)="5073:0:0:0" +^COVERAGE("XINDEX","POSTRTN",15)="467:0:0:0" +^COVERAGE("XINDEX","POSTRTN",16)="467:28001:20001:48002" +^COVERAGE("XINDEX","POSTRTN",16,"FOR_LOOP",1)=16376 +^COVERAGE("XINDEX","POSTRTN",17)="15909:40006:40001:80007" +^COVERAGE("XINDEX","POSTRTN",18)="15909:0:0:0" +^COVERAGE("XINDEX","POSTRTN",19)="467:0:0:0" +^COVERAGE("XINDEX","Q")="7762:12000:20001:32001" +^COVERAGE("XINDEX","Q",0)="7762:4000:16001:20001" +^COVERAGE("XINDEX","QUOTE")="36371:188012:232009:420021" +^COVERAGE("XINDEX","QUOTE",0)="36371:156010:192008:348018" +^COVERAGE("XINDEX","QUOTE",0,"FOR_LOOP",1)=323268 +^COVERAGE("XINDEX","QUOTE",1)="36371:20002:20001:40003" +^COVERAGE("XINDEX","R")="85:0:8001:8001" +^COVERAGE("XINDEX","R",0)="85:0:0:0" +^COVERAGE("XINDEX","S")="17549:716055:988057:1704112" +^COVERAGE("XINDEX","S",0)="17549:28003:28003:56006" +^COVERAGE("XINDEX","SE2",0)="86891:176010:272017:448027" +^COVERAGE("XINDEX","SE2",1)="85079:264015:376016:640031" +^COVERAGE("XINDEX","SE2",2)="85079:72005:112010:184015" +^COVERAGE("XINDEX","SEP")="107216:736054:648038:1384092" +^COVERAGE("XINDEX","SEP",0)="107216:580045:440030:1020075" +^COVERAGE("XINDEX","SEP",0,"FOR_LOOP",1)=1019212 +^COVERAGE("XINDEX","SEP",1)="107216:120007:144005:264012" +^COVERAGE("XINDEX","SET")="85079:772044:1124063:1896107" +^COVERAGE("XINDEX","SET",0)="85079:176007:168008:344015" +^COVERAGE("XINDEX","SET",0,"FOR_LOOP",1)=74812 +^COVERAGE("XINDEX","SET",1)="85079:64005:144010:208015" +^COVERAGE("XINDEX","ST",0)="44620:68001:56004:124005" +^COVERAGE("XINDEX","ST",2)="44620:260012:376038:636050" +^COVERAGE("XINDEX","ST",2,"FOR_LOOP",1)=85813 +^COVERAGE("XINDEX","ST",2,"FOR_LOOP",2)=126272 +^COVERAGE("XINDEX","ST",3)="44620:224014:184014:408028" +^COVERAGE("XINDEX","ST",4)="44620:0:0:0" +^COVERAGE("XINDEX","U")="72:0:0:0" +^COVERAGE("XINDEX","U",0)="72:0:0:0" +^COVERAGE("XINDEX","W")="4584:156009:200014:356023" +^COVERAGE("XINDEX","W",0)="4584:0:16001:16001" +^COVERAGE("XINDEX","X")="220:0:0:0" +^COVERAGE("XINDEX","X",0)="220:0:0:0" +^COVERAGE("XINDEX","XINDEX")="1:32002:36000:68002" +^COVERAGE("XINDEX","XINDEX",3)="1:0:0:0" +^COVERAGE("XINDX1","A",0)="75:0:4000:4000" +^COVERAGE("XINDX1","A",1)="75:0:0:0" +^COVERAGE("XINDX1","A",2)="75:0:0:0" +^COVERAGE("XINDX1","B",0)="75:0:0:0" +^COVERAGE("XINDX1","B",4)="75:0:0:0" +^COVERAGE("XINDX1","B",6)="75:0:0:0" +^COVERAGE("XINDX1","B",7)="75:0:0:0" +^COVERAGE("XINDX1","E")="73:0:4000:4000" +^COVERAGE("XINDX1","E",0)="73:0:0:0" +^COVERAGE("XINDX1","XINDX1")="2:0:0:0" +^COVERAGE("XINDX1","XINDX1",3)="2:0:0:0" +^COVERAGE("XINDX10","ASK")="1:0:0:0" +^COVERAGE("XINDX10","ASK",1)="1:0:0:0" +^COVERAGE("XINDX10","ASK",2)="1:0:0:0" +^COVERAGE("XINDX10","ASK",3)="1:0:0:0" +^COVERAGE("XINDX10","ASK",8)="1:0:0:0" +^COVERAGE("XINDX2","%")="44620:132010:232014:364024" +^COVERAGE("XINDX2","%",0)="44620:96008:92005:188013" +^COVERAGE("XINDX2","%",0,"FOR_LOOP",1)=62810 +^COVERAGE("XINDX2","%",1)="44620:16001:68003:84004" +^COVERAGE("XINDX2","ARG")="329774:1516089:2124136:3640225" +^COVERAGE("XINDX2","ARG",1)="330498:328020:360021:688041" +^COVERAGE("XINDX2","ARG",2)="262221:228015:296022:524037" +^COVERAGE("XINDX2","ARG",3)="226556:260020:468034:728054" +^COVERAGE("XINDX2","ARG",4)="126854:104004:160011:264015" +^COVERAGE("XINDX2","ARG",5)="117750:136007:148011:284018" +^COVERAGE("XINDX2","ARG",6)="88629:60001:96003:156004" +^COVERAGE("XINDX2","ARG",7)="88424:80005:100006:180011" +^COVERAGE("XINDX2","ARG",8)="86550:72002:108007:180009" +^COVERAGE("XINDX2","ARGG")="18715:288018:352019:640037" +^COVERAGE("XINDX2","ARGG",0)="18715:76007:84005:160012" +^COVERAGE("XINDX2","ARGG",0,"FOR_LOOP",1)=49672 +^COVERAGE("XINDX2","ARGS")="44410:464031:676031:1140062" +^COVERAGE("XINDX2","ARGS",1)="63125:620038:844037:1464075" +^COVERAGE("XINDX2","ARGS",1,"FOR_LOOP",1)=291597 +^COVERAGE("XINDX2","ARGS",2)="63125:24001:60004:84005" +^COVERAGE("XINDX2","DN")="44410:208011:284017:492028" +^COVERAGE("XINDX2","DN",0)="44410:44003:108008:152011" +^COVERAGE("XINDX2","DN",1)="44410:152008:144006:296014" +^COVERAGE("XINDX2","EXT",1)="1970:4000:8001:12001" +^COVERAGE("XINDX2","EXT",2)="1970:0:0:0" +^COVERAGE("XINDX2","EXT",3)="1970:8001:12001:20002" +^COVERAGE("XINDX2","EXT",4)="1970:0:4000:4000" +^COVERAGE("XINDX2","FLUSH")="94:0:0:0" +^COVERAGE("XINDX2","FLUSH",0)="94:0:0:0" +^COVERAGE("XINDX2","FLUSH",1)="94:0:0:0" +^COVERAGE("XINDX2","FLUSH",1,"FOR_LOOP",1)=415 +^COVERAGE("XINDX2","FLUSH",2)="94:0:0:0" +^COVERAGE("XINDX2","FNC")="12:0:0:0" +^COVERAGE("XINDX2","FNC",0)="12:0:0:0" +^COVERAGE("XINDX2","FNC",1)="12:0:0:0" +^COVERAGE("XINDX2","FNC",2)="12:0:0:0" +^COVERAGE("XINDX2","FNC",3)="12:0:0:0" +^COVERAGE("XINDX2","FNC",4)="12:0:0:0" +^COVERAGE("XINDX2","FUN")="29121:340019:424027:764046" +^COVERAGE("XINDX2","FUN",0)="29121:36004:40002:76006" +^COVERAGE("XINDX2","FUN",1)="23452:48002:72003:120005" +^COVERAGE("XINDX2","FUN",2)="23452:20000:44003:64003" +^COVERAGE("XINDX2","FUN",3)="23393:96004:56005:152009" +^COVERAGE("XINDX2","FUN",3,"FOR_LOOP",1)=147754 +^COVERAGE("XINDX2","FUN",4)="23393:48003:56005:104008" +^COVERAGE("XINDX2","FUN",5)="23393:60004:92005:152009" +^COVERAGE("XINDX2","GLO",0)="9104:28002:28001:56003" +^COVERAGE("XINDX2","GLO",1)="9104:12001:20001:32002" +^COVERAGE("XINDX2","GLO",2)="9104:16000:28001:44001" +^COVERAGE("XINDX2","GLO",3)="9104:36002:80004:116006" +^COVERAGE("XINDX2","GLO",4)="9104:8000:4000:12000" +^COVERAGE("XINDX2","INC")="322910:416022:652029:1068051" +^COVERAGE("XINDX2","INC",0)="365505:320019:472020:792039" +^COVERAGE("XINDX2","INC2")="42595:104006:148008:252014" +^COVERAGE("XINDX2","INC2",0)="42595:48001:40003:88004" +^COVERAGE("XINDX2","LOC")="99702:576031:736052:1312083" +^COVERAGE("XINDX2","LOC",0)="99702:144010:156013:300023" +^COVERAGE("XINDX2","LOC",1)="99702:124004:148011:272015" +^COVERAGE("XINDX2","LOC",2)="99702:212011:272014:484025" +^COVERAGE("XINDX2","LOC",3)="99702:52005:96006:148011" +^COVERAGE("XINDX2","NAK",0)="996:0:0:0" +^COVERAGE("XINDX2","NAK",1)="996:0:0:0" +^COVERAGE("XINDX2","PAT")="205:4000:0:4000" +^COVERAGE("XINDX2","PAT",0)="205:0:0:0" +^COVERAGE("XINDX2","PAT",1)="205:4000:0:4000" +^COVERAGE("XINDX2","PAT",1,"FOR_LOOP",1)=457 +^COVERAGE("XINDX2","PAT",2)="205:0:0:0" +^COVERAGE("XINDX2","PATCODE")="457:4000:4000:8000" +^COVERAGE("XINDX2","PATCODE",0)="457:0:4000:4000" +^COVERAGE("XINDX2","PATCODE",1)="358:4000:0:4000" +^COVERAGE("XINDX2","PATCODE",1,"FOR_LOOP",1)=791 +^COVERAGE("XINDX2","PATCODE",2)="358:0:0:0" +^COVERAGE("XINDX2","PATCODE",3)="358:0:0:0" +^COVERAGE("XINDX2","PATCODE",4)="358:0:0:0" +^COVERAGE("XINDX2","PATQ")="99:4000:4000:8000" +^COVERAGE("XINDX2","PATQ",0)="99:0:4000:4000" +^COVERAGE("XINDX2","PATQ",0,"FOR_LOOP",1)=247 +^COVERAGE("XINDX2","PATQ",1)="99:4000:0:4000" +^COVERAGE("XINDX2","PATQ",2)="99:0:0:0" +^COVERAGE("XINDX2","PEEK")="112687:168013:248022:416035" +^COVERAGE("XINDX2","PEEK",0)="112687:120009:164010:284019" +^COVERAGE("XINDX2","PEEKDN")="17373:56002:40000:96002" +^COVERAGE("XINDX2","PEEKDN",0)="17373:48002:32000:80002" +^COVERAGE("XINDX2","REPCNT")="457:0:0:0" +^COVERAGE("XINDX2","REPCNT",0)="457:0:0:0" +^COVERAGE("XINDX2","REPCNT",0,"FOR_LOOP",1)=1004 +^COVERAGE("XINDX2","REPCNT",1)="457:0:0:0" +^COVERAGE("XINDX2","REPCNT",2)="457:0:0:0" +^COVERAGE("XINDX2","SPV",1)="3699:0:8001:8001" +^COVERAGE("XINDX2","SPV",2)="3699:0:0:0" +^COVERAGE("XINDX2","ST")="110835:464030:648049:1112079" +^COVERAGE("XINDX2","ST",0)="110835:192009:248021:440030" +^COVERAGE("XINDX2","ST",1)="110835:100008:156011:256019" +^COVERAGE("XINDX2","ST",2)="110835:76005:116005:192010" +^COVERAGE("XINDX2","TEXT",0)="59:0:0:0" +^COVERAGE("XINDX2","TEXT",1)="59:0:0:0" +^COVERAGE("XINDX2","TEXT",2)="59:0:0:0" +^COVERAGE("XINDX2","TEXT",3)="59:0:0:0" +^COVERAGE("XINDX2","UP")="44410:116012:180012:296024" +^COVERAGE("XINDX2","UP",1)="44410:112012:116006:228018" +^COVERAGE("XINDX2","VA")="5073:16001:20000:36001" +^COVERAGE("XINDX2","VA",0)="5073:4000:12000:16000" +^COVERAGE("XINDX2","VA",1)="5073:8000:4000:12000" +^COVERAGE("XINDX2","VT")="10205:4001:24002:28003" +^COVERAGE("XINDX2","VT",0)="10205:0:8000:8000" +^COVERAGE("XINDX2","VT",1)="10205:0:4000:4000" +^COVERAGE("XINDX3","A",0)="8136:36001:12001:48002" +^COVERAGE("XINDX3","ASM")="312:12001:0:12001" +^COVERAGE("XINDX3","ASM",0)="312:0:0:0" +^COVERAGE("XINDX3","ASM",1)="312:8001:0:8001" +^COVERAGE("XINDX3","ASM",1,"FOR_LOOP",1)=2110 +^COVERAGE("XINDX3","ASM",2)="312:0:0:0" +^COVERAGE("XINDX3","DN")="498:4000:4000:8000" +^COVERAGE("XINDX3","DN",0)="498:0:4000:4000" +^COVERAGE("XINDX3","DN",1)="498:4000:0:4000" +^COVERAGE("XINDX3","FL")="63250:152007:260014:412021" +^COVERAGE("XINDX3","FL",1)="63250:72000:144009:216009" +^COVERAGE("XINDX3","FL",2)="63250:64006:80004:144010" +^COVERAGE("XINDX3","INC")="145482:224018:308026:532044" +^COVERAGE("XINDX3","INC",0)="145482:188015:196015:384030" +^COVERAGE("XINDX3","KL",1)="2218:0:4000:4000" +^COVERAGE("XINDX3","KL1")="28:0:0:0" +^COVERAGE("XINDX3","KL1",0)="28:0:0:0" +^COVERAGE("XINDX3","KL2")="724:4000:28000:32000" +^COVERAGE("XINDX3","KL2",0)="724:0:0:0" +^COVERAGE("XINDX3","KL2",1)="724:0:4000:4000" +^COVERAGE("XINDX3","KL2",2)="724:0:0:0" +^COVERAGE("XINDX3","KL3")="3320:12002:36002:48004" +^COVERAGE("XINDX3","KL3",0)="3320:4000:8000:12000" +^COVERAGE("XINDX3","KL3",1)="3320:4001:4000:8001" +^COVERAGE("XINDX3","KL5",0)="3320:0:20002:20002" +^COVERAGE("XINDX3","MULT")="498:8001:4000:12001" +^COVERAGE("XINDX3","MULT",0)="498:4001:0:4001" +^COVERAGE("XINDX3","MULT",1)="498:4000:4000:8000" +^COVERAGE("XINDX3","MULT",1,"FOR_LOOP",1)=2401 +^COVERAGE("XINDX3","MULT",2)="498:0:0:0" +^COVERAGE("XINDX3","N2",0)="23604:68004:36003:104007" +^COVERAGE("XINDX3","N2",3)="11802:16002:4000:20002" +^COVERAGE("XINDX3","N2",4)="187:0:0:0" +^COVERAGE("XINDX3","N2",5)="187:0:0:0" +^COVERAGE("XINDX3","N2",6)="11628:12001:20002:32003" +^COVERAGE("XINDX3","N2",7)="11628:12000:8000:20000" +^COVERAGE("XINDX3","NE")="779:32002:16001:48003" +^COVERAGE("XINDX3","NE",1)="2500:4000:4000:8000" +^COVERAGE("XINDX3","NE",2)="2500:4000:20000:24000" +^COVERAGE("XINDX3","PEEK")="498:0:0:0" +^COVERAGE("XINDX3","PEEK",0)="498:0:0:0" +^COVERAGE("XINDX3","PEEKDN")="39:0:0:0" +^COVERAGE("XINDX3","PEEKDN",0)="39:0:0:0" +^COVERAGE("XINDX3","RD",0)="85:0:0:0" +^COVERAGE("XINDX3","RD1",0)="278:0:4001:4001" +^COVERAGE("XINDX3","RD1",3)="193:0:4000:4000" +^COVERAGE("XINDX3","RD1",4)="85:0:0:0" +^COVERAGE("XINDX3","RD1",5)="85:0:0:0" +^COVERAGE("XINDX3","RD2")="85:0:4000:4000" +^COVERAGE("XINDX3","RD2",0)="255:0:0:0" +^COVERAGE("XINDX3","RD2",1)="170:0:0:0" +^COVERAGE("XINDX3","RD2",2)="170:0:4000:4000" +^COVERAGE("XINDX3","RD2",3)="85:0:0:0" +^COVERAGE("XINDX3","RD3")="108:0:0:0" +^COVERAGE("XINDX3","RD3",0)="161:0:0:0" +^COVERAGE("XINDX3","RD3",1)="37:0:0:0" +^COVERAGE("XINDX3","RD3",2)="37:0:0:0" +^COVERAGE("XINDX3","S",1)="17579:48005:56003:104008" +^COVERAGE("XINDX3","S2",0)="110559:164008:220011:384019" +^COVERAGE("XINDX3","S2",1)="92980:64007:96005:160012" +^COVERAGE("XINDX3","S2",2)="92980:52004:100005:152009" +^COVERAGE("XINDX3","S2",3)="87238:60005:68003:128008" +^COVERAGE("XINDX3","S2",4)="63916:68007:68004:136011" +^COVERAGE("XINDX3","S2",5)="846:0:0:0" +^COVERAGE("XINDX3","S2",6)="846:0:4000:4000" +^COVERAGE("XINDX3","S2",10)="63916:56004:60003:116007" +^COVERAGE("XINDX3","S2",11)="62481:40002:60003:100005" +^COVERAGE("XINDX3","S2",12)="62313:56003:56005:112008" +^COVERAGE("XINDX3","S2",13)="61815:76007:152010:228017" +^COVERAGE("XINDX3","UP")="498:8000:4000:12000" +^COVERAGE("XINDX3","UP",1)="498:8000:4000:12000" +^COVERAGE("XINDX3","VLN",1)="15909:32002:16001:48003" +^COVERAGE("XINDX3","VLN",2)="15909:44002:28003:72005" +^COVERAGE("XINDX3","VLNF")="15909:120006:60005:180011" +^COVERAGE("XINDX3","VLNF",0)="15909:32002:12001:44003" +^COVERAGE("XINDX4","CNG")="2186:0:24001:24001" +^COVERAGE("XINDX4","CNG",0)="2186:0:0:0" +^COVERAGE("XINDX4","CNG",2)="2186:0:8001:8001" +^COVERAGE("XINDX4","CNG",2,"FOR_LOOP",1)=2202 +^COVERAGE("XINDX4","CNG",3)="2186:0:12000:12000" +^COVERAGE("XINDX4","DG",0)="8937:20003:16000:36003" +^COVERAGE("XINDX4","DG",1)="8937:12000:16001:28001" +^COVERAGE("XINDX4","DG",2)="8937:8001:20002:28003" +^COVERAGE("XINDX4","DG",3)="8937:16000:12000:28000" +^COVERAGE("XINDX4","DG",4)="8937:4000:12001:16001" +^COVERAGE("XINDX4","DG",5)="8937:0:12002:12002" +^COVERAGE("XINDX4","DG",6)="8937:12001:12000:24001" +^COVERAGE("XINDX4","DG",7)="8937:12000:20003:32003" +^COVERAGE("XINDX4","DG",8)="8937:24001:4001:28002" +^COVERAGE("XINDX4","DG",9)="8937:4000:12001:16001" +^COVERAGE("XINDX4","DG",10)="8937:16001:28001:44002" +^COVERAGE("XINDX4","DG",11)="8937:8000:12000:20000" +^COVERAGE("XINDX4","DG",12)="8937:4000:16002:20002" +^COVERAGE("XINDX4","DG",13)="8937:8000:12002:20002" +^COVERAGE("XINDX4","DG",14)="8937:0:4000:4000" +^COVERAGE("XINDX4","DG",15)="8937:36002:32002:68004" +^COVERAGE("XINDX4","DG",16)="8937:8001:4001:12002" +^COVERAGE("XINDX4","DG",17)="8387:12002:4000:16002" +^COVERAGE("XINDX4","DG1")="8449:168011:180013:348024" +^COVERAGE("XINDX4","DG1",0)="8449:12001:16001:28002" +^COVERAGE("XINDX4","FR",0)="525:0:4001:4001" +^COVERAGE("XINDX4","FR",1)="525:0:0:0" +^COVERAGE("XINDX4","FR",2)="525:0:0:0" +^COVERAGE("XINDX4","INSIDE")="2202:4001:32001:36002" +^COVERAGE("XINDX4","INSIDE",0)="2202:0:16000:16000" +^COVERAGE("XINDX4","INSIDE",1)="2202:0:4000:4000" +^COVERAGE("XINDX4","INSIDE",2)="2202:4001:4000:8001" +^COVERAGE("XINDX4","LO",1)="259:0:0:0" +^COVERAGE("XINDX4","LO",2)="259:0:0:0" +^COVERAGE("XINDX4","LO",3)="259:0:0:0" +^COVERAGE("XINDX4","LO",4)="259:0:4000:4000" +^COVERAGE("XINDX4","LO",4,"FOR_LOOP",1)=260 +^COVERAGE("XINDX4","LO",5)="260:0:0:0" +^COVERAGE("XINDX4","LO",6)="260:0:0:0" +^COVERAGE("XINDX4","LO",7)="260:0:0:0" +^COVERAGE("XINDX4","LO",8)="89:0:0:0" +^COVERAGE("XINDX4","LO",9)="89:0:0:0" +^COVERAGE("XINDX4","LO",10)="89:4001:0:4001" +^COVERAGE("XINDX4","LO",12)="259:0:0:0" +^COVERAGE("XINDX4","LO",13)="259:0:0:0" +^COVERAGE("XINDX4","LOOP")="14735:44003:108008:152011" +^COVERAGE("XINDX4","LOOP",0)="14735:28002:72005:100007" +^COVERAGE("XINDX4","LOOP",0,"FOR_LOOP",1)=68121 +^COVERAGE("XINDX4","LOOP",1)="14735:4000:32003:36003" +^COVERAGE("XINDX4","PAREN")="2638:24000:36004:60004" +^COVERAGE("XINDX4","PAREN",0)="2638:4000:8000:12000" +^COVERAGE("XINDX4","PAREN",1)="2638:20000:16001:36001" +^COVERAGE("XINDX4","PAREN",1,"FOR_LOOP",1)=50171 +^COVERAGE("XINDX4","PAREN",2)="2638:0:8002:8002" +^COVERAGE("XINDX4","PAREN",3)="2638:0:0:0" +^COVERAGE("XINDX4","PRUNE")="2186:8001:16001:24002" +^COVERAGE("XINDX4","PRUNE",0)="2186:8001:4000:12001" +^COVERAGE("XINDX4","PRUNE",1)="2186:0:8001:8001" +^COVERAGE("XINDX4","PRUNE",1,"FOR_LOOP",1)=2186 +^COVERAGE("XINDX4","PRUNE",2)="2186:0:4000:4000" +^COVERAGE("XINDX4","PRUNE",2,"FOR_LOOP",1)=2187 +^COVERAGE("XINDX4","PRUNE",3)="2186:0:0:0" +^COVERAGE("XINDX4","Q",1)="747:8000:0:8000" +^COVERAGE("XINDX4","Q",2)="747:0:0:0" +^COVERAGE("XINDX4","QUOTE")="2402:28002:28000:56002" +^COVERAGE("XINDX4","QUOTE",0)="2402:20002:20000:40002" +^COVERAGE("XINDX4","QUOTE",0,"FOR_LOOP",1)=23674 +^COVERAGE("XINDX4","QUOTE",1)="2402:0:0:0" +^COVERAGE("XINDX4","QUOTE",2)="2402:8000:4000:12000" +^COVERAGE("XINDX4","ST")="8937:24000:16002:40002" +^COVERAGE("XINDX4","ST",0)="8937:12000:8000:20000" +^COVERAGE("XINDX4","ST",1)="8937:8000:8002:16002" +^COVERAGE("XINDX4","WR",0)="4584:12001:12000:24001" +^COVERAGE("XINDX4","WR",1)="4584:0:8000:8000" +^COVERAGE("XINDX4","WR",2)="4584:72004:56006:128010" +^COVERAGE("XINDX4","WR",2,"FOR_LOOP",1)=27607 +^COVERAGE("XINDX4","WR",3)="23023:8002:32003:40005" +^COVERAGE("XINDX4","WR",4)="20835:12000:32001:44001" +^COVERAGE("XINDX4","WR",5)="20835:24002:8001:32003" +^COVERAGE("XINDX4","WR",6)="20835:24000:36002:60002" +^COVERAGE("XINDX4","WR",7)="20835:0:0:0" +^COVERAGE("XINDX4","WR",8)="4584:4000:0:4000" +^COVERAGE("XINDX4","XE",0)="220:0:0:0" +^COVERAGE("XINDX4","XE",1)="220:0:0:0" +^COVERAGE("XINDX5","A",0)="468:0:4000:4000" +^COVERAGE("XINDX5","A",1)="467:28002:24000:52002" +^COVERAGE("XINDX5","A",1,"FOR_LOOP",1)=4011 +^COVERAGE("XINDX5","A",2)="467:0:0:0" +^COVERAGE("XINDX5","AA")="3544:48004:68006:116010" +^COVERAGE("XINDX5","AA",0)="3544:8002:16003:24005" +^COVERAGE("XINDX5","AA",1)="1902:0:4000:4000" +^COVERAGE("XINDX5","AA",2)="1902:4001:0:4001" +^COVERAGE("XINDX5","AA",3)="1902:12001:4001:16002" +^COVERAGE("XINDX5","AA",4)="1902:12000:32002:44002" +^COVERAGE("XINDX5","AA",5)="1902:0:0:0" +^COVERAGE("XINDX5","AA",6)="1209:0:0:0" +^COVERAGE("XINDX5","AA",7)="1209:8000:4000:12000" +^COVERAGE("XINDX5","AA",8)="1209:0:0:0" +^COVERAGE("XINDX5","AA",9)="1642:0:4000:4000" +^COVERAGE("XINDX5","AA",10)="1594:0:0:0" +^COVERAGE("XINDX5","AA",11)="1594:4000:4000:8000" +^COVERAGE("XINDX5","AA",12)="1642:0:0:0" +^COVERAGE("XINDX5","B",0)="1:0:0:0" +^COVERAGE("XINDX5","CLEAN",1)="1:0:0:0" +^COVERAGE("XINDX5","CLEAN",2)="1:0:0:0" +^COVERAGE("XINDX5","CLEAN",3)="1:0:0:0" +^COVERAGE("XINDX5","END",0)="1:0:0:0" +^COVERAGE("XINDX5","END",1)="1:0:0:0" +^COVERAGE("XINDX5","END",2)="1:0:0:0" +^COVERAGE("XINDX5","END",3)="1:0:0:0" +^COVERAGE("XINDX5","VTAG")="4320:12000:16001:28001" +^COVERAGE("XINDX5","VTAG",0)="4320:12000:8001:20001" +^COVERAGE("XINDX5","VTAG",1)="4320:0:4000:4000" +^COVERAGE("XINDX5","XINDX5",3)="1:0:0:0" +^COVERAGE("XINDX5","XINDX5",4)="1:0:0:0" +^COVERAGE("XINDX5","XINDX5",5)="1:0:0:0" +^COVERAGE("XINDX5","XINDX5",7)="1:0:0:0" +^COVERAGE("XINDX51","B")="1:0:4001:4001" +^COVERAGE("XINDX51","B",0)="1:0:0:0" +^COVERAGE("XINDX51","B",1)="1:0:0:0" +^COVERAGE("XINDX51","B",3)="1:0:4001:4001" +^COVERAGE("XINDX51","B",3,"FOR_LOOP",1)=468 +^COVERAGE("XINDX51","B",4)="1:0:0:0" +^COVERAGE("XINDX51","B",6)="1:0:0:0" +^COVERAGE("XINDX51","BHDR")="60:0:4000:4000" +^COVERAGE("XINDX51","BHDR",0)="60:0:4000:4000" +^COVERAGE("XINDX51","BHDR",1)="60:0:0:0" +^COVERAGE("XINDX51","END",0)="1:0:0:0" +^COVERAGE("XINDX51","HD")="60:0:0:0" +^COVERAGE("XINDX51","HD",0)="60:0:0:0" +^COVERAGE("XINDX51","HD",1)="60:0:0:0" +^COVERAGE("XINDX51","HD1")="1:0:0:0" +^COVERAGE("XINDX51","HD1",0)="1:0:0:0" +^COVERAGE("XINDX51","HD1",1)="1:0:0:0" +^COVERAGE("XINDX51","HD2")="60:4000:0:4000" +^COVERAGE("XINDX51","HD2",0)="60:4000:0:4000" +^COVERAGE("XINDX51","HD2",1)="60:0:0:0" +^COVERAGE("XINDX51","WAIT")="1:0:0:0" +^COVERAGE("XINDX51","WAIT",0)="1:0:0:0" +^COVERAGE("XINDX51","WAIT",1)="1:0:0:0" +^COVERAGE("XINDX51","WAIT",2)="1:0:0:0" +^COVERAGE("XINDX51","WERR")="60:0:0:0" +^COVERAGE("XINDX51","WERR",0)="60:0:0:0" +^COVERAGE("XINDX51","WERR",1)="60:0:0:0" +^COVERAGE("XINDX51","WERR",2)="60:0:0:0" +^COVERAGE("XINDX51","WERR",2,"FOR_LOOP",1)=135 +^COVERAGE("XINDX51","WERR",3)="75:0:0:0" +^COVERAGE("XINDX51","WERR",4)="75:0:0:0" +^COVERAGE("XINDX51","WERR",5)="75:0:0:0" +^COVERAGE("XINDX51","WERR",6)="75:0:0:0" +^COVERAGE("XINDX51","WERR",7)="60:0:0:0" +^COVERAGE("XINDX51","WORL")="70:0:0:0" +^COVERAGE("XINDX51","WORL",0)="70:0:0:0" +^COVERAGE("XINDX51","WORL",1)="70:0:0:0" +^COVERAGE("XINDX51","WORL",2)="70:0:0:0" +^COVERAGE("XINDX51","WORL",3)="70:0:0:0" +^COVERAGE("XINDX51","WORL",3,"FOR_LOOP",1)=76 +^COVERAGE("XINDX51","WORL",4)="70:0:0:0" +^COVERAGE("XINDX52","CASE")="2:0:0:0" +^COVERAGE("XINDX52","CASE",0)="2:0:0:0" +^COVERAGE("XINDX52","CASE",1)="2:0:0:0" +^COVERAGE("XINDX6","ANS")="2:0:0:0" +^COVERAGE("XINDX6","ANS",0)="2:0:0:0" +^COVERAGE("XINDX6","ANS",1)="2:0:0:0" +^COVERAGE("XINDX6","ANS",1,"FOR_LOOP",1)=2 +^COVERAGE("XINDX6","ANS",2)="2:0:0:0" +^COVERAGE("XINDX6","ASKRTN")="1:4000:0:4000" +^COVERAGE("XINDX6","ASKRTN",1)="1:0:0:0" +^COVERAGE("XINDX6","ASKRTN",1,"FOR_LOOP",1)=468 +^COVERAGE("XINDX6","ASKRTN",2)="1:4000:0:4000" +^COVERAGE("XINDX6","ASKRTN",2,"FOR_LOOP",1)=468 +^COVERAGE("XINDX6","ASKRTN",3)="1:0:0:0" +^COVERAGE("XINDX6","DEVICE",0)="1:0:0:0" +^COVERAGE("XINDX6","DEVICE",2)="1:0:0:0" +^COVERAGE("XINDX6","DEVICE",3)="1:0:0:0" +^COVERAGE("XINDX6","L7",0)="1:0:0:0" +^COVERAGE("XINDX6","L7",1)="1:0:0:0" +^COVERAGE("XINDX6","NY")="1:0:0:0" +^COVERAGE("XINDX6","NY",0)="1:0:0:0" +^COVERAGE("XINDX6","PARAM")="1:0:0:0" +^COVERAGE("XINDX6","PARAM",1)="1:0:0:0" +^COVERAGE("XINDX6","PARAM",2)="1:0:0:0" +^COVERAGE("XINDX6","PARAM",2,"FOR_LOOP",1)=10 +^COVERAGE("XINDX6","PARAM",3)="1:0:0:0" +^COVERAGE("XINDX6","PARAM",4)="1:0:0:0" +^COVERAGE("XINDX6","PARAM",5)="1:0:0:0" +^COVERAGE("XINDX6","PARAM",6)="1:0:0:0" +^COVERAGE("XINDX6","PARAM",7)="1:0:0:0" +^COVERAGE("XINDX6","RD")="2:0:0:0" +^COVERAGE("XINDX6","RD",0)="2:0:0:0" +^COVERAGE("XINDX6","XINDX6",5)="1:0:0:0" +^COVERAGE("XINDX6","XINDX6",6)="1:0:0:0" +^COVERAGE("XINDX6","XINDX6",7)="1:0:0:0" +^COVERAGE("XINDX6","XINDX6",8)="1:0:0:0" +^COVERAGE("XINDX6","XINDX6",9)="1:0:0:0" +^COVERAGE("XINDX6","XINDX6",10)="1:0:0:0" +^COVERAGE("XINDX6","XINDX6",11)="1:0:0:0" +^COVERAGE("XINDX6","XINDX6",12)="1:0:0:0" +^COVERAGE("XINDX6","XINDX6",13)="1:0:0:0" +^COVERAGE("XINDX6","YN")="1:0:0:0" +^COVERAGE("XINDX6","YN",0)="1:0:0:0" +^COVERAGE("XINDX7","BUILD")="1:0:0:0" +^COVERAGE("XINDX7","BUILD",0)="1:0:0:0" +^COVERAGE("XINDX7","BUILD",1)="1:0:0:0" +^COVERAGE("XINDX7","BUILD",1,"FOR_LOOP",1)=10 +^COVERAGE("XINDX7","BUILD",2)="9:0:0:0" +^COVERAGE("XINDX7","BUILD",3)="6:0:0:0" +^COVERAGE("XINDX7","BUILD",3,"FOR_LOOP",1)=85 +^COVERAGE("XINDX7","BUILD",4)="79:0:0:0" +^COVERAGE("XINDX7","BUILD",5)="79:0:0:0" +^COVERAGE("XINDX7","BUILD",6)="6:0:0:0" +^COVERAGE("XINDX7","BUILD",7)="1:0:0:0" +^COVERAGE("XINDX7","HDR")="2:0:0:0" +^COVERAGE("XINDX7","HDR",0)="2:0:0:0" +^COVERAGE("XINDX7","HDR",1)="2:0:0:0" +^COVERAGE("XINDX7","HDR",2)="1:0:0:0" +^COVERAGE("XINDX7","HDR",3)="1:0:0:0" +^COVERAGE("XINDX7","HDR",4)="1:0:0:0" +^COVERAGE("XINDX7","HDR",5)="1:0:0:0" +^COVERAGE("XINDX7","HDR",6)="2:0:0:0" +^COVERAGE("XINDX7","HDR",7)="2:0:0:0" +^COVERAGE("XINDX7","SETUP")="1:0:0:0" +^COVERAGE("XINDX7","SETUP",1)="1:0:0:0" +^COVERAGE("XINDX7","SETUP",2)="1:0:0:0" +^COVERAGE("XINDX7","SETUP",3)="1:0:0:0" +^COVERAGE("XINDX7","SETUP",4)="1:0:0:0" +^COVERAGE("XINDX7","SETUP",6)="1:0:0:0" +^COVERAGE("XINDX7","SETUP",7)="1:0:0:0" +^COVERAGE("XINDX7","SETUP",7,"FOR_LOOP",1)=468 +^COVERAGE("XINDX7","SETUP",8)="1:0:0:0" +^COVERAGE("XINDX7","SETUP",9)="1:0:0:0" +^COVERAGE("XINDX7","SETUP",10)="1:0:0:0" +^COVERAGE("XINDX9","ADD")="406841:436032:684041:1120073" +^COVERAGE("XINDX9","ADD",0)="598820:552042:692040:1244082" +^COVERAGE("XINDX9","AR")="197699:748039:1052073:1800112" +^COVERAGE("XINDX9","AR",0)="197699:708036:936061:1644097" +^COVERAGE("XINDX9","CASE")="23461:28003:92005:120008" +^COVERAGE("XINDX9","CASE",0)="23461:12002:48003:60005" +^COVERAGE("XINDX9","CASE",1)="23461:12001:28000:40001" +^COVERAGE("XINDX9","DN")="45002:204010:248016:452026" +^COVERAGE("XINDX9","DN",0)="45002:176008:196011:372019" +^COVERAGE("XINDX9","DN",1)="45002:16001:24003:40004" +^COVERAGE("XINDX9","EXT",1)="1970:4000:12001:16001" +^COVERAGE("XINDX9","FNC")="29146:96005:104009:200014" +^COVERAGE("XINDX9","FNC",0)="29146:28001:20003:48004" +^COVERAGE("XINDX9","FNC",1)="29146:44002:72005:116007" +^COVERAGE("XINDX9","FNC",2)="12:0:0:0" +^COVERAGE("XINDX9","FNC",3)="12:0:0:0" +^COVERAGE("XINDX9","FUNC")="29134:284015:400024:684039" +^COVERAGE("XINDX9","FUNC",1)="29134:112005:120007:232012" +^COVERAGE("XINDX9","FUNC",2)="23461:48003:72004:120007" +^COVERAGE("XINDX9","FUNC",3)="23461:20000:32001:52001" +^COVERAGE("XINDX9","FX",0)="23461:68004:116009:184013" +^COVERAGE("XINDX9","GVAR")="29134:96004:180015:276019" +^COVERAGE("XINDX9","GVAR",0)="29134:28000:44003:72003" +^COVERAGE("XINDX9","GVAR",1)="29134:32001:72005:104006" +^COVERAGE("XINDX9","GVAR",2)="29134:16000:24002:40002" +^COVERAGE("XINDX9","INC")="29134:64003:64007:128010" +^COVERAGE("XINDX9","INC",0)="29134:20001:12001:32002" +^COVERAGE("XINDX9","INC",1)="29134:32002:40004:72006" +^COVERAGE("XINDX9","NEW")="287703:532032:660032:1192064" +^COVERAGE("XINDX9","NEW",0)="287703:200012:244014:444026" +^COVERAGE("XINDX9","NEW",1)="287703:220014:248008:468022" +^COVERAGE("XINDX9","NUM")="45379:292023:340026:632049" +^COVERAGE("XINDX9","NUM",0)="45379:92006:84006:176012" +^COVERAGE("XINDX9","NUM",0,"FOR_LOOP",1)=71145 +^COVERAGE("XINDX9","NUM",1)="45379:40005:48002:88007" +^COVERAGE("XINDX9","NUM",2)="45379:40004:56005:96009" +^COVERAGE("XINDX9","NUM",3)="45379:76003:88008:164011" +^COVERAGE("XINDX9","NUM",4)="45379:24003:40003:64006" +^COVERAGE("XINDX9","PA2",0)="518346:544028:668032:1212060" +^COVERAGE("XINDX9","PA2",1)="472665:532043:620035:1152078" +^COVERAGE("XINDX9","PA2",2)="317803:264019:292021:556040" +^COVERAGE("XINDX9","PA2",3)="317803:200013:324018:524031" +^COVERAGE("XINDX9","PA2",4)="307072:348020:492025:840045" +^COVERAGE("XINDX9","PA2",5)="197397:160015:296011:456026" +^COVERAGE("XINDX9","PA2",6)="152018:120016:132005:252021" +^COVERAGE("XINDX9","PA2",7)="152018:116009:112008:228017" +^COVERAGE("XINDX9","PA2",8)="151813:96008:168010:264018" +^COVERAGE("XINDX9","PA2",9)="151813:100008:172009:272017" +^COVERAGE("XINDX9","PA2",10)="151813:220008:324022:544030" +^COVERAGE("XINDX9","PA2",11)="151813:168011:152010:320021" +^COVERAGE("XINDX9","PA2",12)="151813:128009:148012:276021" +^COVERAGE("XINDX9","PA2",13)="151813:136005:104009:240014" +^COVERAGE("XINDX9","PARSE")="45681:3356226:4340257:7696483" +^COVERAGE("XINDX9","PARSE",0)="45681:104007:108007:212014" +^COVERAGE("XINDX9","PAT")="205:0:0:0" +^COVERAGE("XINDX9","PAT",0)="205:0:0:0" +^COVERAGE("XINDX9","PAT",1)="205:0:0:0" +^COVERAGE("XINDX9","PAT",1,"FOR_LOOP",1)=1185 +^COVERAGE("XINDX9","PAT",2)="205:0:0:0" +^COVERAGE("XINDX9","PAT",3)="205:0:0:0" +^COVERAGE("XINDX9","PAT",4)="205:0:0:0" +^COVERAGE("XINDX9","PATC")="28:0:0:0" +^COVERAGE("XINDX9","PATC",0)="28:0:0:0" +^COVERAGE("XINDX9","PATQ")="99:0:8000:8000" +^COVERAGE("XINDX9","PATQ",0)="99:0:0:0" +^COVERAGE("XINDX9","PATQ",0,"FOR_LOOP",1)=247 +^COVERAGE("XINDX9","PATQ",1)="99:0:0:0" +^COVERAGE("XINDX9","PATQ",2)="99:0:8000:8000" +^COVERAGE("XINDX9","PATU")="15:0:0:0" +^COVERAGE("XINDX9","PATU",0)="15:0:0:0" +^COVERAGE("XINDX9","PEND",0)="45681:68001:140014:208015" +^COVERAGE("XINDX9","PEND",1)="45681:36004:52005:88009" +^COVERAGE("XINDX9","QUOTE")="35724:244013:304019:548032" +^COVERAGE("XINDX9","QUOTE",0)="36272:172010:140009:312019" +^COVERAGE("XINDX9","QUOTE",0,"FOR_LOOP",1)=323021 +^COVERAGE("XINDX9","QUOTE",1)="36272:28001:72004:100005" +^COVERAGE("XINDX9","QUOTE",2)="35724:28001:24003:52004" +^COVERAGE("XINDX9","QUOTE",3)="35724:16001:52002:68003" +^COVERAGE("XINDX9","SPV",0)="3703:4000:12000:16000" +^COVERAGE("XINDX9","SPV",1)="3703:8001:4000:12001" +^COVERAGE("XINDX9","SPV",2)="3703:8001:4000:12001" +^COVERAGE("XINDX9","SPV",3)="3703:4000:8001:12001" +^COVERAGE("XINDX9","STR")="287703:560037:724043:1284080" +^COVERAGE("XINDX9","STR",0)="287703:300018:312020:612038" +^COVERAGE("XINDX9","SUM")="213322:612034:916052:1528086" +^COVERAGE("XINDX9","SUM",0)="213322:160009:208011:368020" +^COVERAGE("XINDX9","SUM",1)="213322:212007:280018:492025" +^COVERAGE("XINDX9","SUM",2)="213322:136012:268012:404024" +^COVERAGE("XINDX9","UP")="45002:396026:440029:836055" +^COVERAGE("XINDX9","UP",0)="45002:24003:44001:68004" +^COVERAGE("XINDX9","UP",1)="45002:180008:192016:372024" +^COVERAGE("XINDX9","UP",2)="45002:136010:128005:264015" +^COVERAGE("XINDX9","UP",3)="45002:40003:52003:92006" +^COVERAGE("XINDX9","VAR")="138809:828044:1004072:1832116" +^COVERAGE("XINDX9","VAR",0)="138809:376018:336017:712035" +^COVERAGE("XINDX9","VAR",0,"FOR_LOOP",1)=462128 +^COVERAGE("XINDX9","VAR",1)="138809:292018:376034:668052" +^COVERAGE("XINDX9","VAR",2)="138809:116003:144008:260011" +^COVERAGE("XINDX9","XINDX9")="45681:296016:320021:616037" +^COVERAGE("XINDX9","XINDX9",3)="45681:52003:128006:180009" +^COVERAGE("XINDX9","XINDX9",4)="45681:164006:112008:276014" +^COVERAGE("XINDX9","XINDX9",4,"FOR_LOOP",1)=128269 +^COVERAGE("XINDX9","XINDX9",5)="45681:48004:52005:100009" +^COVERAGE("XLFDT","DT")="1:0:0:0" +^COVERAGE("XLFDT","DT",0)="1:0:0:0" +^COVERAGE("XLFDT","DT",1)="1:0:0:0" +^COVERAGE("XLFDT","HR")="3:0:0:0" +^COVERAGE("XLFDT","HR",0)="3:0:0:0" +^COVERAGE("XLFDT","HR",1)="3:0:0:0" +^COVERAGE("XLFDT","HTE")="1:0:0:0" +^COVERAGE("XLFDT","HTE",0)="1:0:0:0" +^COVERAGE("XLFDT","HTE",1)="1:0:0:0" +^COVERAGE("XLFDT","HTE",2)="1:0:0:0" +^COVERAGE("XLFDT","HTE",3)="1:0:0:0" +^COVERAGE("XLFDT","HTFM")="2:0:0:0" +^COVERAGE("XLFDT","HTFM",0)="2:0:0:0" +^COVERAGE("XLFDT","HTFM",1)="2:0:0:0" +^COVERAGE("XLFDT","HTFM",2)="2:0:0:0" +^COVERAGE("XLFDT","HTFM",3)="2:0:0:0" +^COVERAGE("XLFDT","HTFM",4)="2:0:0:0" +^COVERAGE("XLFDT","HTFM",5)="2:0:0:0" +^COVERAGE("XLFDT","T2",0)="1:0:0:0" +^COVERAGE("XLFDT","T2",1)="1:0:0:0" +^COVERAGE("XLFDT","YMD")="2:0:0:0" +^COVERAGE("XLFDT","YMD",1)="2:0:0:0" +^COVERAGE("XLFDT","YMD",2)="2:0:0:0" +^COVERAGE("XLFDT","YMD",3)="2:0:0:0" +^COVERAGE("XLFDT","YMD",4)="2:0:0:0" +^COVERAGE("XLFDT","YMD",5)="2:0:0:0" +^COVERAGE("XLFDT1","F1",1)="1:0:0:0" +^COVERAGE("XLFDT1","FMT")="1:0:0:0" +^COVERAGE("XLFDT1","FMT",1)="1:0:0:0" +^COVERAGE("XLFDT1","FMT",2)="1:0:0:0" +^COVERAGE("XLFDT1","M")="1:0:0:0" +^COVERAGE("XLFDT1","M",0)="1:0:0:0" +^COVERAGE("XLFDT1","TM",1)="1:0:0:0" +^COVERAGE("XLFDT1","TM",2)="1:0:0:0" +^COVERAGE("XLFDT1","TM",3)="1:0:0:0" +^COVERAGE("XLFDT1","TM",7)="1:0:0:0" +^COVERAGE("XPDRSUM","SUMB")="467:1808124:180014:1988138" +^COVERAGE("XPDRSUM","SUMB",0)="467:8000:0:8000" +^COVERAGE("XPDRSUM","SUMB",2)="467:0:0:0" +^COVERAGE("XPDRSUM","SUMB",3)="467:1796124:180014:1976138" +^COVERAGE("XPDRSUM","SUMB",3,"FOR_LOOP",1)=44620 +^COVERAGE("XPDRSUM","SUMB",3,"FOR_LOOP",2)=1566704 +^COVERAGE("XPDRSUM","SUMB",4)="467:0:0:0" +^COVERAGE("XTRUTL1","BUILD")="1:0:0:0" +^COVERAGE("XTRUTL1","BUILD",0)="1:0:0:0" +^COVERAGE("XTRUTL1","BUILD",1)="1:0:0:0" +^COVERAGE("XTRUTL1","BUILD",2)="1:0:0:0" +^COVERAGE("XTRUTL1","BUILD",3)="1:0:0:0" + + diff --git a/Tests/MumpsCoverage/DartConfiguration.tcl.in b/Tests/MumpsCoverage/DartConfiguration.tcl.in new file mode 100644 index 000000000..2d7eaa521 --- /dev/null +++ b/Tests/MumpsCoverage/DartConfiguration.tcl.in @@ -0,0 +1,8 @@ +# This file is configured by CMake automatically as DartConfiguration.tcl +# If you choose not to use CMake, this file may be hand configured, by +# filling in the required variables. + + +# Configuration directories and files +SourceDirectory: ${CMake_SOURCE_DIR}/Testing/MumpsCoverage +BuildDirectory: ${CMake_BINARY_DIR}/Testing/MumpsCoverage diff --git a/Tests/MumpsCoverage/VistA-FOIA/Packages/Toolkit/Routines/XINDEX.m b/Tests/MumpsCoverage/VistA-FOIA/Packages/Toolkit/Routines/XINDEX.m new file mode 100644 index 000000000..b04522151 --- /dev/null +++ b/Tests/MumpsCoverage/VistA-FOIA/Packages/Toolkit/Routines/XINDEX.m @@ -0,0 +1,144 @@ +XINDEX ;ISC/REL,GFT,GRK,RWF - INDEX & CROSS-REFERENCE ;08/04/08 13:19 + ;;7.3;TOOLKIT;**20,27,48,61,66,68,110,121,128**;Apr 25, 1995;Build 1 + ; Per VHA Directive 2004-038, this routine should not be modified. + G ^XINDX6 +SEP F I=1:1 S CH=$E(LIN,I) D QUOTE:CH=Q Q:" "[CH + S ARG=$E(LIN,1,I-1) S:CH=" " I=I+1 S LIN=$E(LIN,I,999) Q +QUOTE F I=I+1:1 S CH=$E(LIN,I) Q:CH=""!(CH=Q) + Q:CH]"" S ERR=6 G ^XINDX1 +ALIVE ;enter here from taskman + D SETUP^XINDX7 ;Get ready to process +A2 S RTN=$O(^UTILITY($J,RTN)) G ^XINDX5:RTN="" + S INDLC=(RTN?1"|"1.4L.NP) D LOAD:'INDLC + I $D(ZTQUEUED),$$S^%ZTLOAD S RTN="~",IND("QUIT")=1,ZTSTOP=1 G A2 + I 'INDDS,INDLC W !!?10,"Data Dictionaries",! S INDDS=1 + D BEG + G A2 + ; +LOAD S X=RTN,XCNP=0,DIF="^UTILITY("_$J_",1,RTN,0," X ^%ZOSF("TEST") Q:'$T X ^%ZOSF("LOAD") S ^UTILITY($J,1,RTN,0,0)=XCNP-1 + I $D(^UTILITY($J,1,RTN,0,0)) S ^UTILITY($J,1,RTN,"RSUM")="B"_$$SUMB^XPDRSUM($NA(^UTILITY($J,1,RTN,0))) + Q +BEG ; + S %=INDLC*5 W:$X+10+%>IOM ! W RTN,$J("",10+%-$L(RTN)) + S (IND("DO"),IND("SZT"),IND("SZC"),LABO)=0,LC=$G(^UTILITY($J,1,RTN,0,0)) + I LC="" W !,">>>Routine '",RTN,"' not found <<<",! Q + S TXT="",LAB=$P(^UTILITY($J,1,RTN,0,1,0)," ") I RTN'=$P(LAB,"(") D E^XINDX1(17) + I 'INDLC,LAB["(" D E^XINDX1(55) S LAB=$P(LAB,"(") + ;if M routine(not compiled template or DD) and has more than 2 lines, check lines 1 & 2 + I 'INDLC,LC>2 D + . N LABO S LABO=1 + . S LIN=$G(^UTILITY($J,1,RTN,0,1,0)),TXT=1 + . ;check 1st line (site/dev - ) patch 128 + . I $P(LIN,";",2,4)'?.E1"/".E.1"-".E D E^XINDX1(62) + . S LIN=$G(^UTILITY($J,1,RTN,0,2,0)),TXT=2 + . ;check 2nd line (;;nn.nn[TV]nn;package;.anything) + . I $P(LIN,";",3,99)'?1.2N1"."1.2N.1(1"T",1"V").2N1";"1A.AP1";".E D E^XINDX1(44) ;patch 121 + . I $L(INP(11)) X INP(11) ;Version number check + . I $L(INP(12)) X INP(12) ;Patch number check +B5 F TXT=1:1:LC S LIN=^UTILITY($J,1,RTN,0,TXT,0),LN=$L(LIN),IND("SZT")=IND("SZT")+LN+2 D LN,ST ;Process Line + S LAB="",LABO=0,TXT=0,^UTILITY($J,1,RTN,0)=IND("SZT")_"^"_LC_"^"_IND("SZC") + I IND("SZT")>INP("MAX"),'INDLC S ERR=35,ERR(1)=IND("SZT") D ^XINDX1 + I IND("SZT")-IND("SZC")>INP("CMAX"),'INDLC S ERR=58,ERR(1)=IND("SZT")-IND("SZC") D ^XINDX1 + D POSTRTN + Q + ;Proccess one line, LN = Length, LIN = Line. +LN K V S (ARG,GRB,IND("COM"),IND("DOL"),IND("F"))="",X=$P(LIN," ") + I '$L(X) S LABO=LABO+1 G CD + S (IND("COM"),LAB)=$P(X,"("),ARG=$P($P(X,"(",2),")"),LABO=0,IND("PP")=X?1.8E1"(".E1")" + D:$L(ARG) NE^XINDX3 ;Process formal parameters as New list. + I 'INDLC,'$$VT^XINDX2(LAB) D E^XINDX1($S(LAB=$$CASE^XINDX52(LAB):37,1:55)) ;Check for bad labels + I $D(^UTILITY($J,1,RTN,"T",LAB)) D E^XINDX1(15) G CD ;DUP label + S ^UTILITY($J,1,RTN,"T",LAB)="" +CD I LN>245 D:'(LN=246&($E(RTN,1,3)="|dd")) E^XINDX1(19) ;patch 119 + D:LIN'?1.ANP E^XINDX1(18) + S LIN=$P(LIN," ",2,999),IND("LCC")=1 + I LIN="" D E^XINDX1(42) Q ;Blank line ;p110 + S I=0 ;Watch the scope of I, counts dots + I " ."[$E(LIN) D S X=$L($E(LIN,1,I),".")-1,LIN=$E(LIN,I,999) + . F I=1:1:245 Q:". "'[$E(LIN,I) + . Q + ;check dots against Do level IND("DO"), IND("DOL")=dot level + D:'I&$G(IND("DO1")) E^XINDX1(51) S IND("DO1")=0 S:'I IND("DO")=0 + I I D:X>IND("DO") E^XINDX1(51) S (IND("DO"),IND("DOL"))=X + ;Count Comment lines, skip ;; lines + I $E(LIN)=";",$E(LIN,2)'=";" S IND("SZC")=IND("SZC")+$L(LIN) ;p110 + ;Process commands on line. +EE I LIN="" D ^XINDX2 Q + S COM=$E(LIN),GK="",ARG="" + I COM=";" S LIN="" G EE ;p110 + I COM=" " S ERR=$S(LIN?1." ":13,1:0),LIN=$S(ERR:"",1:$E(LIN,2,999)) D:ERR ^XINDX1 G EE + D SEP + S CM=$P(ARG,":",1),POST=$P(ARG,":",2,999),IND("COM")=IND("COM")_$C(9)_COM,ERR=48 + D:ARG[":"&(POST']"") ^XINDX1 S:POST]"" GRB=GRB_$C(9)_POST,IND("COM")=IND("COM")_":" + ;SAC now allows lowercase commands + I CM?.E1L.E S CM=$$CASE^XINDX52(CM),COM=$E(CM) ;I IND("LCC") S IND("LCC")=0 D E^XINDX1(47) + I CM="" D E^XINDX1(21) G EE ;Missing command + S CX=$G(IND("CMD",CM)) I CX="" D G:CX="" EE + . I $E(CM)="Z" S CX="^Z" Q ;Proccess Z commands + . D E^XINDX1(1) S LIN="" Q + S CX=$P(CX,"^",2,9) + D SEP I '$L(LIN),CH=" " D E^XINDX1(13) ;trailing space + I ARG="","CGJMORSUWX"[COM S ERR=49 G ^XINDX1 + I CX>0 D E^XINDX1(CX) S CX="" + D:$L(CX) @CX S:ARG'="" GRB=GRB_$C(9)_ARG G EE +B S ERR=25 G ^XINDX1 +C S ERR=29 G ^XINDX1 +D G DG1^XINDX4 +E Q:ARG="" S ERR=7 G ^XINDX1 +F G:ARG]"" FR^XINDX4 S IND("F")=1 Q +G G DG^XINDX4 +H Q:ARG'="" S ERR=32 G ^XINDX1 +J S ERR=36,ARG="" G ^XINDX1 +K S ERR=$S(ARG?1"(".E:22,ARG?." ":23,1:0) D:ERR ^XINDX1 + G KL^XINDX3 +L G LO^XINDX4 +M G S^XINDX3 +N G NE^XINDX3 +O S ERR=34 D ^XINDX1,O^XINDX3 Q +Q Q:ARG="" G Q^XINDX4 +R S RDTIME=0 G RD^XINDX3 +S G S^XINDX3 +TR Q ;What to process. p110 +U S ARG=$P(ARG,":") Q +V S ARG="",ERR=20 G ^XINDX1 +W G WR^XINDX4 +X G XE^XINDX4 +Z S ERR=2 D ^XINDX1 G ZC^XINDX4 + ; + ;Save off items from line. +ST S R=LAB_$S(LABO:"+"_LABO,1:"") + ;Local variable, Global, Marked Items, Naked global, Internal ref, eXternal ref., Tag ref. + S LOC="" F S LOC=$O(V(LOC)),S="" Q:LOC="" F S S=$O(V(LOC,S)) Q:S="" D SET + S ^UTILITY($J,1,RTN,"COM",TXT)=IND("COM") + Q + ; +SET I V(LOC,S)]"" F %="!","~" I V(LOC,S)[%,$G(^UTILITY($J,1,RTN,LOC,S))'[% S ^(S)=$G(^(S))_% + S %=0 +SE2 S ARG=$G(^UTILITY($J,1,RTN,LOC,S,%)) I $L(ARG)>230 S %=%+1 G SE2 + S ^UTILITY($J,1,RTN,LOC,S,%)=ARG_R_V(LOC,S)_"," + Q + ; +POSTRTN ;Do more overall checking + N V,E,T,T1,T2 + S T="" ;Check for missing Labels + F S T=$O(^UTILITY($J,1,RTN,"I",T)),T2=T Q:T="" S T1=$G(^(T,0)) D + . Q:$E(T2,1,2)="@(" + . S:$E(T2,1,2)="$$" T2=$E(T2,3,99) + . I T2]"",'$D(^UTILITY($J,1,RTN,"T",$P(T2,"+",1))) D + . . F I=1:1:$L(T1,",")-1 S LAB=$P(T1,",",I),LABO=+$P(LAB,"+",2),LAB=$P(LAB,"+"),E=14,E(1)=T D E^XINDX1(.E) + . . Q + . Q + S LAB="",LABO=0 ;Check for valid label names + I 'INDLC F S LAB=$O(^UTILITY($J,1,RTN,"T",LAB)) Q:LAB="" D + . I '$$VA^XINDX2(LAB) D E^XINDX1(55) Q + . D:'$$VT^XINDX2(LAB) E^XINDX1(37) + . Q + S LAB="",LABO=0 ;Check for valid variable names. + F S LAB=$O(^UTILITY($J,1,RTN,"L",LAB)) Q:LAB="" D + . D VLNF^XINDX3($P(LAB,"(")) + . Q + Q + ; +QUICK ;Quick, Just get a routine an print the results + D QUICK^XINDX6() + Q diff --git a/Tests/MumpsCoverage/gtm_coverage.mcov.in b/Tests/MumpsCoverage/gtm_coverage.mcov.in new file mode 100644 index 000000000..b431dbdc1 --- /dev/null +++ b/Tests/MumpsCoverage/gtm_coverage.mcov.in @@ -0,0 +1,2 @@ +packages:${CMake_BINARY_DIR}/Testing/MumpsCoverage/VistA-FOIA/Packages +coverage_dir:${CMake_SOURCE_DIR}/Tests/MumpsCoverage From a86cd33cdd497acdb6b77a44c146a9779730675e Mon Sep 17 00:00:00 2001 From: Bill Hoffman Date: Tue, 1 May 2012 14:36:18 -0400 Subject: [PATCH 005/101] Add virutal destructor to silence warning. --- Source/CTest/cmParseMumpsCoverage.cxx | 4 ++++ Source/CTest/cmParseMumpsCoverage.h | 1 + 2 files changed, 5 insertions(+) diff --git a/Source/CTest/cmParseMumpsCoverage.cxx b/Source/CTest/cmParseMumpsCoverage.cxx index 359b5ac39..761139f28 100644 --- a/Source/CTest/cmParseMumpsCoverage.cxx +++ b/Source/CTest/cmParseMumpsCoverage.cxx @@ -14,6 +14,10 @@ cmParseMumpsCoverage::cmParseMumpsCoverage( { } +cmParseMumpsCoverage::~cmParseMumpsCoverage() +{ +} + bool cmParseMumpsCoverage::ReadCoverageFile(const char* file) { // Read the gtm_coverage.mcov file, that has two lines of data: diff --git a/Source/CTest/cmParseMumpsCoverage.h b/Source/CTest/cmParseMumpsCoverage.h index 63883de95..81180eecd 100644 --- a/Source/CTest/cmParseMumpsCoverage.h +++ b/Source/CTest/cmParseMumpsCoverage.h @@ -27,6 +27,7 @@ class cmParseMumpsCoverage public: cmParseMumpsCoverage(cmCTestCoverageHandlerContainer& cont, cmCTest* ctest); + virtual ~cmParseMumpsCoverage(); // This is the toplevel coverage file locating the coverage files // and the mumps source code package tree. bool ReadCoverageFile(const char* file); From 7955e995ec400fb063529064b6232ca0eedfe5e0 Mon Sep 17 00:00:00 2001 From: Bill Hoffman Date: Tue, 1 May 2012 17:00:43 -0400 Subject: [PATCH 006/101] Add support for Cache coverage. This adds support for Cache coverage parsing. A test is added that does a basic run of the coverage on a small bit of data. --- Source/CMakeLists.txt | 1 + Source/CTest/cmCTestCoverageHandler.cxx | 25 +- Source/CTest/cmCTestCoverageHandler.h | 4 +- Source/CTest/cmParseCacheCoverage.cxx | 187 +++++++++++ Source/CTest/cmParseCacheCoverage.h | 40 +++ Source/CTest/cmParseGTMCoverage.cxx | 28 +- Source/CTest/cmParseMumpsCoverage.cxx | 28 ++ Source/CTest/cmParseMumpsCoverage.h | 3 + Tests/CMakeLists.txt | 16 + .../Accounts_ReceivableTest.cmcov | 304 ++++++++++++++++++ .../DartConfiguration.cache.tcl.in | 8 + Tests/MumpsCoverage/cache_coverage.cmcov.in | 2 + 12 files changed, 616 insertions(+), 30 deletions(-) create mode 100644 Source/CTest/cmParseCacheCoverage.cxx create mode 100644 Source/CTest/cmParseCacheCoverage.h create mode 100644 Tests/MumpsCoverage/Accounts_ReceivableTest.cmcov create mode 100644 Tests/MumpsCoverage/DartConfiguration.cache.tcl.in create mode 100644 Tests/MumpsCoverage/cache_coverage.cmcov.in diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt index 081cf65f0..dcb56d4f8 100644 --- a/Source/CMakeLists.txt +++ b/Source/CMakeLists.txt @@ -424,6 +424,7 @@ SET(CTEST_SRCS cmCTest.cxx CTest/cmCTestCoverageCommand.cxx CTest/cmCTestCoverageHandler.cxx CTest/cmParseMumpsCoverage.cxx + CTest/cmParseCacheCoverage.cxx CTest/cmParseGTMCoverage.cxx CTest/cmParsePHPCoverage.cxx CTest/cmCTestEmptyBinaryDirectoryCommand.cxx diff --git a/Source/CTest/cmCTestCoverageHandler.cxx b/Source/CTest/cmCTestCoverageHandler.cxx index e7fa2f15a..48bea6433 100644 --- a/Source/CTest/cmCTestCoverageHandler.cxx +++ b/Source/CTest/cmCTestCoverageHandler.cxx @@ -12,6 +12,7 @@ #include "cmCTestCoverageHandler.h" #include "cmParsePHPCoverage.h" #include "cmParseGTMCoverage.h" +#include "cmParseCacheCoverage.h" #include "cmCTest.h" #include "cmake.h" #include "cmMakefile.h" @@ -391,7 +392,7 @@ int cmCTestCoverageHandler::ProcessHandler() { return error; } - file_count += this->HandleGTMCoverage(&cont); + file_count += this->HandleMumpsCoverage(&cont); error = cont.Error; if ( file_count < 0 ) { @@ -761,20 +762,38 @@ int cmCTestCoverageHandler::HandlePHPCoverage( return static_cast(cont->TotalCoverage.size()); } //---------------------------------------------------------------------- -int cmCTestCoverageHandler::HandleGTMCoverage( +int cmCTestCoverageHandler::HandleMumpsCoverage( cmCTestCoverageHandlerContainer* cont) { + // try gtm coverage cmParseGTMCoverage cov(*cont, this->CTest); std::string coverageFile = this->CTest->GetBinaryDir() + "/gtm_coverage.mcov"; if(cmSystemTools::FileExists(coverageFile.c_str())) { cov.ReadCoverageFile(coverageFile.c_str()); + return static_cast(cont->TotalCoverage.size()); } else { cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, - " Cannot find GTM coverage file: " << coverageFile + " Cannot find foobar GTM coverage file: " << coverageFile + << std::endl); + } + cmParseCacheCoverage ccov(*cont, this->CTest); + coverageFile = this->CTest->GetBinaryDir() + + "/cache_coverage.cmcov"; + if(cmSystemTools::FileExists(coverageFile.c_str())) + { + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, + "Parsing Cache Coverage: " << coverageFile + << std::endl); + ccov.ReadCoverageFile(coverageFile.c_str()); + } + else + { + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, + " Cannot find Cache coverage file: " << coverageFile << std::endl); } return static_cast(cont->TotalCoverage.size()); diff --git a/Source/CTest/cmCTestCoverageHandler.h b/Source/CTest/cmCTestCoverageHandler.h index f4c275fc0..92b0b2285 100644 --- a/Source/CTest/cmCTestCoverageHandler.h +++ b/Source/CTest/cmCTestCoverageHandler.h @@ -70,8 +70,8 @@ private: //! Handle coverage using xdebug php coverage int HandlePHPCoverage(cmCTestCoverageHandlerContainer* cont); - //! Handle coverage using GTM - int HandleGTMCoverage(cmCTestCoverageHandlerContainer* cont); + //! Handle coverage for mumps + int HandleMumpsCoverage(cmCTestCoverageHandlerContainer* cont); //! Handle coverage using Bullseye int HandleBullseyeCoverage(cmCTestCoverageHandlerContainer* cont); diff --git a/Source/CTest/cmParseCacheCoverage.cxx b/Source/CTest/cmParseCacheCoverage.cxx new file mode 100644 index 000000000..d2ff4040a --- /dev/null +++ b/Source/CTest/cmParseCacheCoverage.cxx @@ -0,0 +1,187 @@ +#include "cmStandardIncludes.h" +#include +#include +#include "cmSystemTools.h" +#include "cmParseCacheCoverage.h" +#include +#include + + +cmParseCacheCoverage::cmParseCacheCoverage(cmCTestCoverageHandlerContainer& cont, + cmCTest* ctest) + :cmParseMumpsCoverage(cont, ctest) +{ +} + + +bool cmParseCacheCoverage::LoadCoverageData(const char* d) +{ + // load all the .mcov files in the specified directory + cmsys::Directory dir; + if(!dir.Load(d)) + { + return false; + } + size_t numf; + unsigned int i; + numf = dir.GetNumberOfFiles(); + for (i = 0; i < numf; i++) + { + std::string file = dir.GetFile(i); + if(file != "." && file != ".." + && !cmSystemTools::FileIsDirectory(file.c_str())) + { + std::string path = d; + path += "/"; + path += file; + if(cmSystemTools::GetFilenameLastExtension(path) == ".cmcov") + { + if(!this->ReadCMCovFile(path.c_str())) + { + return false; + } + } + } + } + return true; +} + +bool cmParseCacheCoverage::SplitString(std::vector& args, + std::string const& line) +{ + std::string::size_type pos1 = 0; + std::string::size_type pos2 = line.find(',', 0); + if(pos2 == std::string::npos) + { + return false; + } + std::string arg; + while(pos2 != std::string::npos) + { + arg = line.substr(pos1, pos2-pos1); + args.push_back(arg); + pos1 = pos2+1; + pos2 = line.find(',',pos1); + } + arg = line.substr(pos1); + args.push_back(arg); + return true; +} + +bool cmParseCacheCoverage::ReadCMCovFile(const char* file) +{ + std::ifstream in(file); + if(!in) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Can not open : " + << file << "\n"); + return false; + } + std::string line; + std::vector separateLine; + if(!cmSystemTools::GetLineFromStream(in, line)) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Empty file : " + << file << " referenced in this line of cmcov data:\n" + "[" << line << "]\n"); + return false; + } + separateLine.clear(); + this->SplitString(separateLine, line); + if(separateLine.size() !=4 || separateLine[0] != "Routine" + || separateLine[1] != "Line" || separateLine[2] != "RtnLine" + || separateLine[3] != "Code") + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Bad first line of cmcov file : " + << file << " line:\n" + "[" << line << "]\n"); + } + std::string routine; + std::string filepath; + bool foundFile = false; + while(cmSystemTools::GetLineFromStream(in, line)) + { + // clear out line argument vector + separateLine.clear(); + // parse the comma separated line + this->SplitString(separateLine, line); + // might have more because code could have a quoted , in it + // but we only care about the first 3 args anyway + if(separateLine.size() < 4) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Bad line of cmcov file expected at least 4 found: " + << separateLine.size() << " " + << file << " line:\n" + "[" << line << "]\n"); + for(std::string::size_type i = 0; i < separateLine.size(); ++i) + { + cmCTestLog(this->CTest, ERROR_MESSAGE,"" + << separateLine[1] << " "); + } + cmCTestLog(this->CTest, ERROR_MESSAGE, "\n"); + return false; + } + // if we do not have a routine yet, then it should be + // the first argument in the vector + if(routine.size() == 0) + { + routine = separateLine[0]; + // Find the full path to the file + if(!this->FindMumpsFile(routine, filepath)) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Could not find mumps file for routine: " + << routine << "\n"); + filepath = ""; + continue; // move to next line + } + } + // if we have a routine name, check for end of routine + else + { + // Totals in arg 0 marks the end of a routine + if(separateLine[0].substr(0, 6) == "Totals") + { + routine = ""; // at the end of this routine + filepath = ""; + continue; // move to next line + } + } + // if the file path was not found for the routine + // move to next line. We should have already warned + // after the call to FindMumpsFile that we did not find + // it, so don't report again to cut down on output + if(filepath.size() == 0) + { + continue; + } + // routine and filepath should be set at this point. + // see if we have visited this file before, and if not + // call InitializeMumpsFile + if( this->Coverage.TotalCoverage[filepath].size() == 0) + { + // hack, this should be done on every file, but for now + // just do it on the ones that have coverage at all + this->InitializeMumpsFile(filepath); + } + // now we are ready to set the coverage from the line of data + cmCTestCoverageHandlerContainer::SingleFileCoverageVector& + coverageVector = this->Coverage.TotalCoverage[filepath]; + std::string::size_type linenumber = atoi(separateLine[1].c_str()) -1; + int count = atoi(separateLine[2].c_str()); + if(linenumber > coverageVector.size()) + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Parse error line is greater than number of lines in file: " + << linenumber << " " << filepath << "\n"); + continue; // skip setting count to avoid crash + } + // now add to count for linenumber + coverageVector[linenumber] += count; + } + return true; +} diff --git a/Source/CTest/cmParseCacheCoverage.h b/Source/CTest/cmParseCacheCoverage.h new file mode 100644 index 000000000..f377567cc --- /dev/null +++ b/Source/CTest/cmParseCacheCoverage.h @@ -0,0 +1,40 @@ +/*============================================================================ + CMake - Cross Platform Makefile Generator + Copyright 2000-2009 Kitware, Inc. + + Distributed under the OSI-approved BSD License (the "License"); + see accompanying file Copyright.txt for details. + + This software is distributed WITHOUT ANY WARRANTY; without even the + implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + See the License for more information. +============================================================================*/ + +#ifndef cmParseCacheCoverage_h +#define cmParseCacheCoverage_h + +#include "cmParseMumpsCoverage.h" + +/** \class cmParseCacheCoverage + * \brief Parse Cache coverage information + * + * This class is used to parse Cache coverage information for + * mumps. + */ +class cmParseCacheCoverage : public cmParseMumpsCoverage +{ +public: + cmParseCacheCoverage(cmCTestCoverageHandlerContainer& cont, + cmCTest* ctest); +protected: + // implement virtual from parent + bool LoadCoverageData(const char* dir); + // Read a single mcov file + bool ReadCMCovFile(const char* f); + // split a string based on , + bool SplitString(std::vector& args, + std::string const& line); +}; + + +#endif diff --git a/Source/CTest/cmParseGTMCoverage.cxx b/Source/CTest/cmParseGTMCoverage.cxx index 90d047b5a..f850c3cce 100644 --- a/Source/CTest/cmParseGTMCoverage.cxx +++ b/Source/CTest/cmParseGTMCoverage.cxx @@ -88,36 +88,14 @@ bool cmParseGTMCoverage::ReadMCovFile(const char* file) { cmCTestLog(this->CTest, ERROR_MESSAGE, "Can not find mumps file : " - << lastroutine << " referenced in this line of mcov data:\n" + << lastroutine << + " referenced in this line of mcov data:\n" "[" << line << "]\n"); } continue; } // Find the full path to the file - std::map::iterator i = - this->RoutineToDirectory.find(routine); - bool found = false; - if(i != this->RoutineToDirectory.end()) - { - filepath = i->second; - found = true; - } - else - { - // try some alternate names - const char* tryname[] = {"GUX", "GTM", "ONT", 0}; - for(int k=0; tryname[k] != 0; k++) - { - std::string routine2 = routine + tryname[k]; - i = this->RoutineToDirectory.find(routine2); - if(i != this->RoutineToDirectory.end()) - { - found = true; - filepath = i->second; - break; // break out of tryname loop if found - } - } - } + bool found = this->FindMumpsFile(routine, filepath); if(found) { int lineoffset; diff --git a/Source/CTest/cmParseMumpsCoverage.cxx b/Source/CTest/cmParseMumpsCoverage.cxx index 761139f28..ed263a4ce 100644 --- a/Source/CTest/cmParseMumpsCoverage.cxx +++ b/Source/CTest/cmParseMumpsCoverage.cxx @@ -127,3 +127,31 @@ bool cmParseMumpsCoverage::LoadPackages(const char* d) } return true; } + +bool cmParseMumpsCoverage::FindMumpsFile(std::string const& routine, + std::string& filepath) +{ + std::map::iterator i = + this->RoutineToDirectory.find(routine); + if(i != this->RoutineToDirectory.end()) + { + filepath = i->second; + return true; + } + else + { + // try some alternate names + const char* tryname[] = {"GUX", "GTM", "ONT", 0}; + for(int k=0; tryname[k] != 0; k++) + { + std::string routine2 = routine + tryname[k]; + i = this->RoutineToDirectory.find(routine2); + if(i != this->RoutineToDirectory.end()) + { + filepath = i->second; + return true; + } + } + } + return false; +} diff --git a/Source/CTest/cmParseMumpsCoverage.h b/Source/CTest/cmParseMumpsCoverage.h index 81180eecd..c1effa79b 100644 --- a/Source/CTest/cmParseMumpsCoverage.h +++ b/Source/CTest/cmParseMumpsCoverage.h @@ -40,6 +40,9 @@ protected: bool LoadPackages(const char* dir); // initialize the coverage information for a single mumps file void InitializeMumpsFile(std::string& file); + // Find mumps file for routine + bool FindMumpsFile(std::string const& routine, + std::string& filepath); protected: std::map RoutineToDirectory; cmCTestCoverageHandlerContainer& Coverage; diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index 9a088e43b..2cab6959f 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -1726,6 +1726,22 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/ set_tests_properties(CTestGTMCoverage PROPERTIES PASS_REGULAR_EXPRESSION "Process file.*XINDEX.m.*Total LOC:.*127.*Percentage Coverage: 85.83.*") + + configure_file( + "${CMake_SOURCE_DIR}/Tests/MumpsCoverage/DartConfiguration.cache.tcl.in" + "${CMake_BINARY_DIR}/Testing/MumpsCacheCoverage/DartConfiguration.tcl") + configure_file( + "${CMake_SOURCE_DIR}/Tests/MumpsCoverage/cache_coverage.cmcov.in" + "${CMake_BINARY_DIR}/Testing/MumpsCacheCoverage/cache_coverage.cmcov") + file(COPY "${CMake_SOURCE_DIR}/Tests/MumpsCoverage/VistA-FOIA" + DESTINATION "${CMake_BINARY_DIR}/Testing/MumpsCacheCoverage") + add_test(NAME CTestCacheCoverage + WORKING_DIRECTORY "${CMake_BINARY_DIR}/Testing/MumpsCacheCoverage" + COMMAND + ${CMAKE_CTEST_COMMAND} -T Coverage --debug) + set_tests_properties(CTestCacheCoverage PROPERTIES + PASS_REGULAR_EXPRESSION + "Process file.*XINDEX.m.*Total LOC:.*125.*Percentage Coverage: 85.60.*") # Use macro, not function so that build can still be driven by CMake 2.4. # After 2.6 is required, this could be a function without the extra 'set' # calls. diff --git a/Tests/MumpsCoverage/Accounts_ReceivableTest.cmcov b/Tests/MumpsCoverage/Accounts_ReceivableTest.cmcov new file mode 100644 index 000000000..c3b3342ab --- /dev/null +++ b/Tests/MumpsCoverage/Accounts_ReceivableTest.cmcov @@ -0,0 +1,304 @@ +Routine,Line,RtnLine,Code +DDIOL,1,0,"DDIOL ;SFISC/MKO-THE LOADER ;1:53 PM 12 Sep 1995" +,2,0," ;;22.0;VA FileMan;;Mar 30, 1999" +,3,0," ;Per VHA Directive 10-93-142, this routine should not be modified." +,4,0," ;" +,5,0,"EN(A,G,FMT) ;Write the text contained in local array A or global array G" +,6,0," ;If one string passed, use format FMT" +,7,0," N %,Y,DINAKED" +,8,0," S DINAKED=$$LGR^%ZOSV" +,9,0," ;" +,10,0," S:'$D(A) A=""""" +,11,0," I $G(A)="""",$D(A)<9,$G(FMT)="""",$G(G)'?1""^""1A.7AN,$G(G)'?1""^""1A.7AN1""("".E1"")"" Q" +,12,0," ;" +,13,0," G:$D(DDS) SM" +,14,0," G:$D(DIQUIET) LD" +,15,0," ;" +,16,0," N F,I,S" +,17,0," I $D(A)=1,$G(G)="""" D" +,18,0," . S F=$S($G(FMT)]"""":FMT,1:""!"")" +,19,0," . W @F,A" +,20,0," ;" +,21,0," E I $D(A)>9 S I=0 F S I=$O(A(I)) Q:I'=+$P(I,""E"") D" +,22,0," . S F=$G(A(I,""F""),""!"") S:F="""" F=""?0""" +,23,0," . W @F,$G(A(I))" +,24,0," ;" +,25,0," E S I=0 F S I=$O(@G@(I)) Q:I'=+$P(I,""E"") D" +,26,0," . S S=$G(@G@(I,0),$G(@G@(I)))" +,27,0," . S F=$G(@G@(I,""F""),""!"") S:F="""" F=""?0""" +,28,0," . W @F,S" +,29,0," ;" +,30,0," I DINAKED]"""" S DINAKED=$S(DINAKED["""""""""""":$O(@DINAKED),1:$D(@DINAKED))" +,31,0," Q" +,32,0," ;" +,33,0,"LD ;Load text into ^TMP" +,34,0," N I,N,T" +,35,0," S T=$S($G(DDIOLFLG)[""H"":""DIHELP"",1:""DIMSG"")" +,36,0," S N=$O(^TMP(T,$J,"" ""),-1)" +,37,0," ;" +,38,0," I $D(A)=1,$G(G)="""" D" +,39,0," . D LD1(A,$S($G(FMT)]"""":FMT,1:""!""))" +,40,0," ;" +,41,0," E I $D(A)>9 S I=0 F S I=$O(A(I)) Q:I'=+$P(I,""E"") D" +,42,0," . D LD1($G(A(I)),$G(A(I,""F""),""!""))" +,43,0," ;" +,44,0," E S I=0 F S I=$O(@G@(I)) Q:I'=+$P(I,""E"") D" +,45,0," . D LD1($G(@G@(I),$G(@G@(I,0))),$G(@G@(I,""F""),""!""))" +,46,0," ;" +,47,0," K:'N @T S:N @T=N" +,48,0," I DINAKED]"""" S DINAKED=$S(DINAKED["""""""""""":$O(@DINAKED),1:$D(@DINAKED))" +,49,0," Q" +,50,0," ;" +,51,0,"LD1(S,F) ;Load string S, with format F" +,52,0," ;In: N and T" +,53,0," N C,J,L" +,54,0," S:S[$C(7) S=$TR(S,$C(7),"""")" +,55,0," F J=1:1:$L(F,""!"")-1 S N=N+1,^TMP(T,$J,N)=""""" +,56,0," S:'N N=1" +,57,0," S:F[""?"" @(""C=""_$P(F,""?"",2))" +,58,0," S L=$G(^TMP(T,$J,N))" +,59,0," S ^TMP(T,$J,N)=L_$J("""",$G(C)-$L(L))_S" +,60,0," Q" +,61,0," ;" +,62,0,"SM ;Print text in ScreenMan's Command Area" +,63,0," I $D(DDSID),$D(DTOUT)!$D(DUOUT) G SMQ" +,64,0," N DDIOL" +,65,0," S DDIOL=1" +,66,0," ;" +,67,0," I $D(A)=1&($G(G)="""")!($D(A)>9) D" +,68,0," . D MSG^DDSMSG(.A,"""",$G(FMT))" +,69,0," E I $D(@G@(+$O(@G@(0)),0))#2 D" +,70,0," . D WP^DDSMSG(G)" +,71,0," E D HLP^DDSMSG(G)" +,72,0," ;" +,73,0,"SMQ I DINAKED]"""" S DINAKED=$S(DINAKED["""""""""""":$O(@DINAKED),1:$D(@DINAKED))" +,74,0," Q" +Totals for DDIOL,,0, +XINDEX,1,0,"XINDEX ;ISC/REL,GFT,GRK,RWF - INDEX & CROSS-REFERENCE ;08/04/08 13:19" +,2,1," ;;7.3;TOOLKIT;**20,27,48,61,66,68,110,121,128**;Apr 25, 1995;Build 1" +,3,0," ; Per VHA Directive 2004-038, this routine should not be modified." +,4,1," G ^XINDX6" +,5,107216,"SEP F I=1:1 S CH=$E(LIN,I) D QUOTE:CH=Q Q:"" ""[CH" +,6,107216," S ARG=$E(LIN,1,I-1) S:CH="" "" I=I+1 S LIN=$E(LIN,I,999) Q" +,7,36371,"QUOTE F I=I+1:1 S CH=$E(LIN,I) Q:CH=""""!(CH=Q)" +,8,36371," Q:CH]"""" S ERR=6 G ^XINDX1" +,9,0,"ALIVE ;enter here from taskman" +,10,1," D SETUP^XINDX7 ;Get ready to process" +,11,468,"A2 S RTN=$O(^UTILITY($J,RTN)) G ^XINDX5:RTN=""""" +,12,467," S INDLC=(RTN?1""|""1.4L.NP) D LOAD:'INDLC" +,13,467," I $D(ZTQUEUED),$$S^%ZTLOAD S RTN=""~"",IND(""QUIT"")=1,ZTSTOP=1 G A2" +,14,467," I 'INDDS,INDLC W !!?10,""Data Dictionaries"",! S INDDS=1" +,15,467," D BEG" +,16,467," G A2" +,17,0," ;" +,18,467,"LOAD S X=RTN,XCNP=0,DIF=""^UTILITY(""_$J_"",1,RTN,0,"" X ^%ZOSF(""TEST"") Q:'$T X ^%ZOSF(""LOAD"") S ^UTILITY($J,1,RTN,0,0)=XCNP-1" +,19,467," I $D(^UTILITY($J,1,RTN,0,0)) S ^UTILITY($J,1,RTN,""RSUM"")=""B""_$$SUMB^XPDRSUM($NA(^UTILITY($J,1,RTN,0)))" +,20,467," Q" +,21,0,"BEG ;" +,22,467," S %=INDLC*5 W:$X+10+%>IOM ! W RTN,$J("""",10+%-$L(RTN))" +,23,467," S (IND(""DO""),IND(""SZT""),IND(""SZC""),LABO)=0,LC=$G(^UTILITY($J,1,RTN,0,0))" +,24,467," I LC="""" W !,"">>>Routine '"",RTN,""' not found <<<"",! Q" +,25,467," S TXT="""",LAB=$P(^UTILITY($J,1,RTN,0,1,0),"" "") I RTN'=$P(LAB,""("") D E^XINDX1(17)" +,26,467," I 'INDLC,LAB[""("" D E^XINDX1(55) S LAB=$P(LAB,""("")" +,27,0," ;if M routine(not compiled template or DD) and has more than 2 lines, check lines 1 & 2" +,28,467," I 'INDLC,LC>2 D" +,29,467," . N LABO S LABO=1" +,30,467," . S LIN=$G(^UTILITY($J,1,RTN,0,1,0)),TXT=1" +,31,0," . ;check 1st line (site/dev - ) patch 128" +,32,467," . I $P(LIN,"";"",2,4)'?.E1""/"".E.1""-"".E D E^XINDX1(62)" +,33,467," . S LIN=$G(^UTILITY($J,1,RTN,0,2,0)),TXT=2" +,34,0," . ;check 2nd line (;;nn.nn[TV]nn;package;.anything)" +,35,467," . I $P(LIN,"";"",3,99)'?1.2N1"".""1.2N.1(1""T"",1""V"").2N1"";""1A.AP1"";"".E D E^XINDX1(44) ;patch 121" +,36,467," . I $L(INP(11)) X INP(11) ;Version number check" +,37,467," . I $L(INP(12)) X INP(12) ;Patch number check" +,38,467,"B5 F TXT=1:1:LC S LIN=^UTILITY($J,1,RTN,0,TXT,0),LN=$L(LIN),IND(""SZT"")=IND(""SZT"")+LN+2 D LN,ST ;Process Line" +,39,467," S LAB="""",LABO=0,TXT=0,^UTILITY($J,1,RTN,0)=IND(""SZT"")_""^""_LC_""^""_IND(""SZC"")" +,40,467," I IND(""SZT"")>INP(""MAX""),'INDLC S ERR=35,ERR(1)=IND(""SZT"") D ^XINDX1" +,41,467," I IND(""SZT"")-IND(""SZC"")>INP(""CMAX""),'INDLC S ERR=58,ERR(1)=IND(""SZT"")-IND(""SZC"") D ^XINDX1" +,42,467," D POSTRTN" +,43,467," Q" +,44,0," ;Proccess one line, LN = Length, LIN = Line." +,45,44620,"LN K V S (ARG,GRB,IND(""COM""),IND(""DOL""),IND(""F""))="""",X=$P(LIN,"" "")" +,46,44620," I '$L(X) S LABO=LABO+1 G CD" +,47,5073," S (IND(""COM""),LAB)=$P(X,""(""),ARG=$P($P(X,""("",2),"")""),LABO=0,IND(""PP"")=X?1.8E1""("".E1"")""" +,48,5073," D:$L(ARG) NE^XINDX3 ;Process formal parameters as New list." +,49,5073," I 'INDLC,'$$VT^XINDX2(LAB) D E^XINDX1($S(LAB=$$CASE^XINDX52(LAB):37,1:55)) ;Check for bad labels" +,50,5073," I $D(^UTILITY($J,1,RTN,""T"",LAB)) D E^XINDX1(15) G CD ;DUP label" +,51,5073," S ^UTILITY($J,1,RTN,""T"",LAB)=""""" +,52,44620,"CD I LN>245 D:'(LN=246&($E(RTN,1,3)=""|dd"")) E^XINDX1(19) ;patch 119" +,53,44620," D:LIN'?1.ANP E^XINDX1(18)" +,54,44620," S LIN=$P(LIN,"" "",2,999),IND(""LCC"")=1" +,55,44620," I LIN="""" D E^XINDX1(42) Q ;Blank line ;p110" +,56,44620," S I=0 ;Watch the scope of I, counts dots" +,57,44620," I "" .""[$E(LIN) D S X=$L($E(LIN,1,I),""."")-1,LIN=$E(LIN,I,999)" +,58,10770," . F I=1:1:245 Q:"". ""'[$E(LIN,I)" +,59,10770," . Q" +,60,0," ;check dots against Do level IND(""DO""), IND(""DOL"")=dot level" +,61,44620," D:'I&$G(IND(""DO1"")) E^XINDX1(51) S IND(""DO1"")=0 S:'I IND(""DO"")=0" +,62,44620," I I D:X>IND(""DO"") E^XINDX1(51) S (IND(""DO""),IND(""DOL""))=X" +,63,0," ;Count Comment lines, skip ;; lines" +,64,44620," I $E(LIN)="";"",$E(LIN,2)'="";"" S IND(""SZC"")=IND(""SZC"")+$L(LIN) ;p110" +,65,0," ;Process commands on line." +,66,116081,"EE I LIN="""" D ^XINDX2 Q" +,67,71461," S COM=$E(LIN),GK="""",ARG=""""" +,68,71461," I COM="";"" S LIN="""" G EE ;p110" +,69,54870," I COM="" "" S ERR=$S(LIN?1."" "":13,1:0),LIN=$S(ERR:"""",1:$E(LIN,2,999)) D:ERR ^XINDX1 G EE" +,70,53608," D SEP" +,71,53608," S CM=$P(ARG,"":"",1),POST=$P(ARG,"":"",2,999),IND(""COM"")=IND(""COM"")_$C(9)_COM,ERR=48" +,72,53608," D:ARG["":""&(POST']"""") ^XINDX1 S:POST]"""" GRB=GRB_$C(9)_POST,IND(""COM"")=IND(""COM"")_"":""" +,73,0," ;SAC now allows lowercase commands" +,74,53608," I CM?.E1L.E S CM=$$CASE^XINDX52(CM),COM=$E(CM) ;I IND(""LCC"") S IND(""LCC"")=0 D E^XINDX1(47)" +,75,53608," I CM="""" D E^XINDX1(21) G EE ;Missing command" +,76,53608," S CX=$G(IND(""CMD"",CM)) I CX="""" D G:CX="""" EE" +,77,0," . I $E(CM)=""Z"" S CX=""^Z"" Q ;Proccess Z commands" +,78,0," . D E^XINDX1(1) S LIN="""" Q" +,79,53608," S CX=$P(CX,""^"",2,9)" +,80,53608," D SEP I '$L(LIN),CH="" "" D E^XINDX1(13) ;trailing space" +,81,53608," I ARG="""",""CGJMORSUWX""[COM S ERR=49 G ^XINDX1" +,82,53608," I CX>0 D E^XINDX1(CX) S CX=""""" +,83,53608," D:$L(CX) @CX S:ARG'="""" GRB=GRB_$C(9)_ARG G EE" +,84,0,"B S ERR=25 G ^XINDX1" +,85,0,"C S ERR=29 G ^XINDX1" +,86,0,"D G DG1^XINDX4" +,87,0,"E Q:ARG="""" S ERR=7 G ^XINDX1" +,88,1559,"F G:ARG]"""" FR^XINDX4 S IND(""F"")=1 Q" +,89,1932,"G G DG^XINDX4" +,90,11,"H Q:ARG'="""" S ERR=32 G ^XINDX1" +,91,0,"J S ERR=36,ARG="""" G ^XINDX1" +,92,2218,"K S ERR=$S(ARG?1""("".E:22,ARG?."" "":23,1:0) D:ERR ^XINDX1" +,93,2218," G KL^XINDX3" +,94,259,"L G LO^XINDX4" +,95,30,"M G S^XINDX3" +,96,1721,"N G NE^XINDX3" +,97,0,"O S ERR=34 D ^XINDX1,O^XINDX3 Q" +,98,7762,"Q Q:ARG="""" G Q^XINDX4" +,99,85,"R S RDTIME=0 G RD^XINDX3" +,100,17549,"S G S^XINDX3" +,101,0,"TR Q ;What to process. p110" +,102,72,"U S ARG=$P(ARG,"":"") Q" +,103,0,"V S ARG="""",ERR=20 G ^XINDX1" +,104,4584,"W G WR^XINDX4" +,105,220,"X G XE^XINDX4" +,106,0,"Z S ERR=2 D ^XINDX1 G ZC^XINDX4" +,107,0," ;" +,108,0," ;Save off items from line." +,109,44620,"ST S R=LAB_$S(LABO:""+""_LABO,1:"""")" +,110,0," ;Local variable, Global, Marked Items, Naked global, Internal ref, eXternal ref., Tag ref." +,111,44620," S LOC="""" F S LOC=$O(V(LOC)),S="""" Q:LOC="""" F S S=$O(V(LOC,S)) Q:S="""" D SET" +,112,44620," S ^UTILITY($J,1,RTN,""COM"",TXT)=IND(""COM"")" +,113,44620," Q" +,114,0," ;" +,115,85079,"SET I V(LOC,S)]"""" F %=""!"",""~"" I V(LOC,S)[%,$G(^UTILITY($J,1,RTN,LOC,S))'[% S ^(S)=$G(^(S))_%" +,116,85079," S %=0" +,117,86891,"SE2 S ARG=$G(^UTILITY($J,1,RTN,LOC,S,%)) I $L(ARG)>230 S %=%+1 G SE2" +,118,85079," S ^UTILITY($J,1,RTN,LOC,S,%)=ARG_R_V(LOC,S)_"",""" +,119,85079," Q" +,120,0," ;" +,121,0,"POSTRTN ;Do more overall checking" +,122,467," N V,E,T,T1,T2" +,123,467," S T="""" ;Check for missing Labels" +,124,467," F S T=$O(^UTILITY($J,1,RTN,""I"",T)),T2=T Q:T="""" S T1=$G(^(T,0)) D" +,125,2091," . Q:$E(T2,1,2)=""@(""" +,126,2044," . S:$E(T2,1,2)=""$$"" T2=$E(T2,3,99)" +,127,2044," . I T2]"""",'$D(^UTILITY($J,1,RTN,""T"",$P(T2,""+"",1))) D" +,128,0," . . F I=1:1:$L(T1,"","")-1 S LAB=$P(T1,"","",I),LABO=+$P(LAB,""+"",2),LAB=$P(LAB,""+""),E=14,E(1)=T D E^XINDX1(.E)" +,129,0," . . Q" +,130,2044," . Q" +,131,467," S LAB="""",LABO=0 ;Check for valid label names" +,132,467," I 'INDLC F S LAB=$O(^UTILITY($J,1,RTN,""T"",LAB)) Q:LAB="""" D" +,133,5073," . I '$$VA^XINDX2(LAB) D E^XINDX1(55) Q" +,134,5073," . D:'$$VT^XINDX2(LAB) E^XINDX1(37)" +,135,5073," . Q" +,136,467," S LAB="""",LABO=0 ;Check for valid variable names." +,137,467," F S LAB=$O(^UTILITY($J,1,RTN,""L"",LAB)) Q:LAB="""" D" +,138,15909," . D VLNF^XINDX3($P(LAB,""(""))" +,139,15909," . Q" +,140,467," Q" +,141,0," ;" +,142,0,"QUICK ;Quick, Just get a routine an print the results" +,143,0," D QUICK^XINDX6()" +,144,0," Q" +Totals for XINDEX,,2446443, +XINDX1,1,0,"XINDX1 ;ISC/REL,GRK,RWF - ERROR ROUTINE ;08/05/08 13:59" +,2,2," ;;7.3;TOOLKIT;**20,61,66,68,110,121,128**;Apr 25, 1995;Build 1" +,3,0," ; Per VHA Directive 2004-038, this routine should not be modified." +,4,2," G A" +,5,0,"E(ERR) ;" +,6,75,"A N %,%1 ;TXT is the line of the error." +,7,75," S ERTX=LAB_$S(LABO:""+""_LABO,1:"""")_$C(9),%1=$T(ERROR+ERR),ERTX=ERTX_$S(ERR:$P(%1,"";"",4,9),1:ERR) ;p110" +,8,75," I ERTX[""|"" F %=1:1 S ERTX=$P(ERTX,""|"")_$S($D(ERR(%)):ERR(%),1:""??"")_$P(ERTX,""|"",%+1,99) Q:ERTX'[""|""" +,9,75,"B I $P(%1,"";"",3)]"""" D Q:%1]"""" ;Don't flag kernel doing kernel." +,10,0," . S %1=$P(%1,"";"",3)" +,11,0," . F Q:RTN[$P(%1,"","") S %1=$P(%1,"","",2,99) ;quit if RTN[%1 or null." +,12,0," . Q" +,13,75," I ERR=17,$E(RTN)'=""%"",$E(LAB)=""%"" Q ;Don't flag %RTN w/o %." +,14,0," ;Global is Error Line,tab,error tag,tab,error text" +,15,75," S %=$G(^UTILITY($J,1,RTN,""E"",0))+1,^(0)=%,^(%)=TXT_$C(9)_ERTX" +,16,75," Q" +,17,0," ;" +,18,0," ;F = Fatal, S = Standard, W = Warning, I = Info" +,19,0,"ERROR ;" +,20,0,"1 ;;;F - UNDEFINED COMMAND (rest of line not checked)." +,21,0,"2 ;;;F - Non-standard (Undefined) 'Z' command." +,22,0,"3 ;;XTRMON;F - Undefined Function." +,23,0,"4 ;;;F - Undefined Special Variable." +,24,0,"5 ;;;F - Unmatched Parenthesis." +,25,0,"6 ;;;F - Unmatched Quotation Marks." +,26,0,"7 ;;;F - ELSE Command followed by only one space." +,27,0,"8 ;;;F - FOR Command did not contain '='." +,28,0,"9 ;;;I - QUIT Command followed by only one space." +,29,0,"10 ;;;F - Unrecognized argument in SET command." +,30,0,"11 ;;;W - Invalid local variable name." +,31,0,"12 ;;;W - Invalid global variable name." +,32,0,"13 ;;;W - Blank(s) at end of line." +,33,0,"14 ;;;F - Call to missing label '|' in this routine." +,34,0,"15 ;;;W - Duplicate label. (M57)" +,35,0,"16 ;;;F - Error in pattern code." +,36,0,"17 ;;;W - First line label NOT routine name." +,37,0,"18 ;;;W - Line contains a CONTROL (non-graphic) character." +,38,0,"19 ;;;S - Line is longer than 245 bytes." +,39,0,"20 ;;;S - View command used." +,40,0,"21 ;;;F - General Syntax Error." +,41,0,"22 ;;;S - Exclusive Kill." +,42,0,"23 ;;;S - Unargumented Kill." +,43,0,"24 ;;;S - Kill of an unsubscripted global." +,44,0,"25 ;;;S - Break command used." +,45,0,"26 ;;;S - Exclusive or Unargumented NEW command." +,46,0,"27 ;;;S - $View function used." +,47,0,"28 ;;ZOSV,ZIS,ZT;S - Non-standard $Z special variable used." +,48,0,"29 ;;ZIS,ZTM;S - 'Close' command should be invoked through 'D ^%ZISC'." +,49,0,"30 ;;;S - LABEL+OFFSET syntax." +,50,0,"31 ;;ZOSV,ZIS,ZT;S - Non-standard $Z function used." +,51,0,"32 ;;;S - 'HALT' command should be invoked through 'G ^XUSCLEAN'." +,52,0,"33 ;;;S - Read command doesn't have a timeout." +,53,0,"34 ;;ZIS;S - 'OPEN' command should be invoked through ^%ZIS." +,54,0,"35 ;;;S - Routine exceeds SACC maximum size of 20000 (|)." +,55,0,"36 ;;ZTM;S - Should use 'TASKMAN' instead of 'JOB' command." +,56,0,"37 ;;;F - Label is not valid." +,57,0,"38 ;;;F - Call to this |" +,58,0,"39 ;;ZIS,XUS,XUP;S - Kill of a protected variable (|)." +,59,0,"40 ;;;S - Space where a command should be." +,60,0,"41 ;;;I - Star or pound READ used." +,61,0,"42 ;;;W - Null line (no commands or comment)." +,62,0,"43 ;;;F - Invalid or wrong number of arguments to a function." +,63,0,"44 ;;;S - 2nd line of routine violates the SAC." +,64,0,"45 ;;ZT,ZIS,XUTM,XTER;S - Set to a '%' global." +,65,0,"46 ;;;F - Quoted string not followed by a separator." +,66,0,"47 ;;;S - Lowercase command(s) used in line." +,67,0,"48 ;;;F - Missing argument to a command post-conditional." +,68,0,"49 ;;;F - Command missing an argument." +,69,0,"50 ;;ZTM;S - Extended reference." +,70,0,"51 ;;;F - Block structure mismatch." +,71,0,"52 ;;;F - Reference to routine '^|'. That isn't in this UCI." +,72,0,"53 ;;;F - Bad Number." +,73,0,"54 ;;XG;S - Access to SSVN's restricted to Kernel." +,74,0,"55 ;;;S - Violates VA programming standards." +,75,0,"56 ;;;S - Patch number '|' missing from second line." +,76,0,"57 ;;;S - Lower/Mixed case Variable name used." +,77,0,"58 ;;;S - Routine code exceeds SACC maximum size of 15000 (|)." +,78,0,"59 ;;;F - Bad WRITE syntax." +,79,0,"60 ;;;S - Lock missing Timeout." +,80,0,"61 ;;;S - Non-Incremental Lock." +,81,0,"62 ;;;S - First line of routine violates the SAC." +,82,0,"63 ;;;F - GO or DO mismatch from block structure (M45)." +Totals for XINDX1,,529, diff --git a/Tests/MumpsCoverage/DartConfiguration.cache.tcl.in b/Tests/MumpsCoverage/DartConfiguration.cache.tcl.in new file mode 100644 index 000000000..a1c6b17f6 --- /dev/null +++ b/Tests/MumpsCoverage/DartConfiguration.cache.tcl.in @@ -0,0 +1,8 @@ +# This file is configured by CMake automatically as DartConfiguration.tcl +# If you choose not to use CMake, this file may be hand configured, by +# filling in the required variables. + + +# Configuration directories and files +SourceDirectory: ${CMake_SOURCE_DIR}/Testing/MumpsCoverage +BuildDirectory: ${CMake_BINARY_DIR}/Testing/MumpsCacheCoverage diff --git a/Tests/MumpsCoverage/cache_coverage.cmcov.in b/Tests/MumpsCoverage/cache_coverage.cmcov.in new file mode 100644 index 000000000..b431dbdc1 --- /dev/null +++ b/Tests/MumpsCoverage/cache_coverage.cmcov.in @@ -0,0 +1,2 @@ +packages:${CMake_BINARY_DIR}/Testing/MumpsCoverage/VistA-FOIA/Packages +coverage_dir:${CMake_SOURCE_DIR}/Tests/MumpsCoverage From f5c5db0753161726c6032178bb10eb41b1ddde02 Mon Sep 17 00:00:00 2001 From: Bill Hoffman Date: Tue, 1 May 2012 17:32:23 -0400 Subject: [PATCH 007/101] Fix some warnings and a bug where it went past the length of a vector. Fix a kwstyle warning and an unused variable warning. Also fix a case where it could crash because a vector was referenced passed its end. --- Source/CTest/cmParseCacheCoverage.cxx | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/Source/CTest/cmParseCacheCoverage.cxx b/Source/CTest/cmParseCacheCoverage.cxx index d2ff4040a..fb8581008 100644 --- a/Source/CTest/cmParseCacheCoverage.cxx +++ b/Source/CTest/cmParseCacheCoverage.cxx @@ -7,8 +7,9 @@ #include -cmParseCacheCoverage::cmParseCacheCoverage(cmCTestCoverageHandlerContainer& cont, - cmCTest* ctest) +cmParseCacheCoverage::cmParseCacheCoverage( + cmCTestCoverageHandlerContainer& cont, + cmCTest* ctest) :cmParseMumpsCoverage(cont, ctest) { } @@ -101,7 +102,6 @@ bool cmParseCacheCoverage::ReadCMCovFile(const char* file) } std::string routine; std::string filepath; - bool foundFile = false; while(cmSystemTools::GetLineFromStream(in, line)) { // clear out line argument vector @@ -181,6 +181,13 @@ bool cmParseCacheCoverage::ReadCMCovFile(const char* file) continue; // skip setting count to avoid crash } // now add to count for linenumber + // for some reason the cache coverage adds extra lines to the + // end of the file in some cases. Since they do not exist, we will + // mark them as non executable + while(linenumber >= coverageVector.size()) + { + coverageVector.push_back(-1); + } coverageVector[linenumber] += count; } return true; From 62f6bce7a543a38965bfc2596afcd559e9fb7ee9 Mon Sep 17 00:00:00 2001 From: Bill Hoffman Date: Wed, 2 May 2012 10:45:06 -0400 Subject: [PATCH 008/101] Use a script to run the test because WORKING_DIRECTORY is not in 2.8.2. add_test with WORKING_DIRECTORY is too new to use in cmake. This change uses a configured script to run the command in the right directory. --- Tests/CMakeLists.txt | 24 ++++++++++++++++-------- Tests/MumpsCoverage/RunTest.ctest.in | 8 ++++++++ 2 files changed, 24 insertions(+), 8 deletions(-) create mode 100644 Tests/MumpsCoverage/RunTest.ctest.in diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index 2cab6959f..fbcd97ef0 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -1719,10 +1719,14 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/ "${CMake_BINARY_DIR}/Testing/MumpsCoverage/gtm_coverage.mcov") file(COPY "${CMake_SOURCE_DIR}/Tests/MumpsCoverage/VistA-FOIA" DESTINATION "${CMake_BINARY_DIR}/Testing/MumpsCoverage") - add_test(NAME CTestGTMCoverage - WORKING_DIRECTORY "${CMake_BINARY_DIR}/Testing/MumpsCoverage" - COMMAND - ${CMAKE_CTEST_COMMAND} -T Coverage --debug) + set(_MUMPS_TEST_DIR MumpsCoverage) + configure_file( + "${CMake_SOURCE_DIR}/Tests/MumpsCoverage/RunTest.ctest.in" + "${CMake_BINARY_DIR}/Testing/MumpsCoverage/RunTest.ctest" + @ONLY) + add_test(CTestGTMCoverage + ${CMAKE_CTEST_COMMAND} + -S ${CMake_BINARY_DIR}/Testing/MumpsCoverage/RunTest.ctest) set_tests_properties(CTestGTMCoverage PROPERTIES PASS_REGULAR_EXPRESSION "Process file.*XINDEX.m.*Total LOC:.*127.*Percentage Coverage: 85.83.*") @@ -1735,10 +1739,14 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/ "${CMake_BINARY_DIR}/Testing/MumpsCacheCoverage/cache_coverage.cmcov") file(COPY "${CMake_SOURCE_DIR}/Tests/MumpsCoverage/VistA-FOIA" DESTINATION "${CMake_BINARY_DIR}/Testing/MumpsCacheCoverage") - add_test(NAME CTestCacheCoverage - WORKING_DIRECTORY "${CMake_BINARY_DIR}/Testing/MumpsCacheCoverage" - COMMAND - ${CMAKE_CTEST_COMMAND} -T Coverage --debug) + set(_MUMPS_TEST_DIR MumpsCacheCoverage) + configure_file( + "${CMake_SOURCE_DIR}/Tests/MumpsCoverage/RunTest.ctest.in" + "${CMake_BINARY_DIR}/Testing/MumpsCacheCoverage/RunTest.ctest" + @ONLY) + add_test(CTestCacheCoverage + ${CMAKE_CTEST_COMMAND} + -S ${CMake_BINARY_DIR}/Testing/MumpsCacheCoverage/RunTest.ctest) set_tests_properties(CTestCacheCoverage PROPERTIES PASS_REGULAR_EXPRESSION "Process file.*XINDEX.m.*Total LOC:.*125.*Percentage Coverage: 85.60.*") diff --git a/Tests/MumpsCoverage/RunTest.ctest.in b/Tests/MumpsCoverage/RunTest.ctest.in new file mode 100644 index 000000000..3f9022a6d --- /dev/null +++ b/Tests/MumpsCoverage/RunTest.ctest.in @@ -0,0 +1,8 @@ +execute_process(COMMAND "@CMAKE_CTEST_COMMAND@" -T Coverage --debug + WORKING_DIRECTORY "@CMake_BINARY_DIR@/Testing/@_MUMPS_TEST_DIR@" + RESULT_VARIABLE RES) +if(${RES} EQUAL 0) + message("Test passed") +else() + message(FATAL_ERROR "Error code running ctest=${RES}") +endif() From 220afcaf842b9df501b4235df841395878c971e8 Mon Sep 17 00:00:00 2001 From: Bill Hoffman Date: Wed, 2 May 2012 11:51:38 -0400 Subject: [PATCH 009/101] Use expression to run ctest so it works with Xcode and VS IDE. Also add -crlf to the .gitconfig to handle the coverage data. --- Tests/CMakeLists.txt | 24 ++++++++---------------- Tests/MumpsCoverage/.gitattributes | 4 ++-- Tests/MumpsCoverage/RunTest.ctest.in | 8 -------- 3 files changed, 10 insertions(+), 26 deletions(-) delete mode 100644 Tests/MumpsCoverage/RunTest.ctest.in diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index fbcd97ef0..f2175fc8a 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -1719,14 +1719,10 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/ "${CMake_BINARY_DIR}/Testing/MumpsCoverage/gtm_coverage.mcov") file(COPY "${CMake_SOURCE_DIR}/Tests/MumpsCoverage/VistA-FOIA" DESTINATION "${CMake_BINARY_DIR}/Testing/MumpsCoverage") - set(_MUMPS_TEST_DIR MumpsCoverage) - configure_file( - "${CMake_SOURCE_DIR}/Tests/MumpsCoverage/RunTest.ctest.in" - "${CMake_BINARY_DIR}/Testing/MumpsCoverage/RunTest.ctest" - @ONLY) - add_test(CTestGTMCoverage - ${CMAKE_CTEST_COMMAND} - -S ${CMake_BINARY_DIR}/Testing/MumpsCoverage/RunTest.ctest) + add_test(NAME CTestGTMCoverage + COMMAND cmake -E chdir + ${CMake_BINARY_DIR}/Testing/MumpsCoverage + $ -T Coverage --debug) set_tests_properties(CTestGTMCoverage PROPERTIES PASS_REGULAR_EXPRESSION "Process file.*XINDEX.m.*Total LOC:.*127.*Percentage Coverage: 85.83.*") @@ -1739,14 +1735,10 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/ "${CMake_BINARY_DIR}/Testing/MumpsCacheCoverage/cache_coverage.cmcov") file(COPY "${CMake_SOURCE_DIR}/Tests/MumpsCoverage/VistA-FOIA" DESTINATION "${CMake_BINARY_DIR}/Testing/MumpsCacheCoverage") - set(_MUMPS_TEST_DIR MumpsCacheCoverage) - configure_file( - "${CMake_SOURCE_DIR}/Tests/MumpsCoverage/RunTest.ctest.in" - "${CMake_BINARY_DIR}/Testing/MumpsCacheCoverage/RunTest.ctest" - @ONLY) - add_test(CTestCacheCoverage - ${CMAKE_CTEST_COMMAND} - -S ${CMake_BINARY_DIR}/Testing/MumpsCacheCoverage/RunTest.ctest) + add_test(NAME CTestCacheCoverage + COMMAND cmake -E chdir + ${CMake_BINARY_DIR}/Testing/MumpsCacheCoverage + $ -T Coverage --debug) set_tests_properties(CTestCacheCoverage PROPERTIES PASS_REGULAR_EXPRESSION "Process file.*XINDEX.m.*Total LOC:.*125.*Percentage Coverage: 85.60.*") diff --git a/Tests/MumpsCoverage/.gitattributes b/Tests/MumpsCoverage/.gitattributes index 77a41f801..b6806125d 100644 --- a/Tests/MumpsCoverage/.gitattributes +++ b/Tests/MumpsCoverage/.gitattributes @@ -1,2 +1,2 @@ -*.cmcov -whitespace -*.mcov -whitespace +*.cmcov -crlf -whitespace +*.mcov -crlf -whitespace diff --git a/Tests/MumpsCoverage/RunTest.ctest.in b/Tests/MumpsCoverage/RunTest.ctest.in deleted file mode 100644 index 3f9022a6d..000000000 --- a/Tests/MumpsCoverage/RunTest.ctest.in +++ /dev/null @@ -1,8 +0,0 @@ -execute_process(COMMAND "@CMAKE_CTEST_COMMAND@" -T Coverage --debug - WORKING_DIRECTORY "@CMake_BINARY_DIR@/Testing/@_MUMPS_TEST_DIR@" - RESULT_VARIABLE RES) -if(${RES} EQUAL 0) - message("Test passed") -else() - message(FATAL_ERROR "Error code running ctest=${RES}") -endif() From 1aa52163efb2fa905e9d6d7b52b81e527416787b Mon Sep 17 00:00:00 2001 From: Modestas Vainius Date: Wed, 2 May 2012 22:06:35 +0300 Subject: [PATCH 010/101] Fix a few typos in NO_SONAME property description. --- Source/cmTarget.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx index 4789197f9..c9bb00621 100644 --- a/Source/cmTarget.cxx +++ b/Source/cmTarget.cxx @@ -832,7 +832,7 @@ void cmTarget::DefineProperties(cmake *cm) "plugins. If you use it on normal shared libraries which other targets " "link against, on some platforms a linker will insert a full path to " "the library (as specified at link time) into the dynamic section of " - "the dependant binary. Therefore, once installed, dynamic linker may " + "the dependent binary. Therefore, once installed, dynamic loader may " "eventually fail to locate the library for the binary."); cm->DefineProperty From a7abf5e090379a77f50ce2285ac4c1c99159d9d2 Mon Sep 17 00:00:00 2001 From: Bill Hoffman Date: Wed, 2 May 2012 16:47:24 -0400 Subject: [PATCH 011/101] Add ability to specify more than one package directory or coverage directory. --- Source/CTest/cmParseMumpsCoverage.cxx | 40 ++++++++++++++++----------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/Source/CTest/cmParseMumpsCoverage.cxx b/Source/CTest/cmParseMumpsCoverage.cxx index ed263a4ce..7076315d0 100644 --- a/Source/CTest/cmParseMumpsCoverage.cxx +++ b/Source/CTest/cmParseMumpsCoverage.cxx @@ -29,24 +29,32 @@ bool cmParseMumpsCoverage::ReadCoverageFile(const char* file) return false; } std::string line; - cmSystemTools::GetLineFromStream(in, line); - std::string::size_type pos = line.find(':', 0); - std::string packages; - if(pos != std::string::npos) + while(cmSystemTools::GetLineFromStream(in, line)) { - packages = line.substr(pos+1); + std::string::size_type pos = line.find(':', 0); + std::string packages; + if(pos != std::string::npos) + { + std::string type = line.substr(0, pos); + std::string path = line.substr(pos+1); + if(type == "packages") + { + this->LoadPackages(path.c_str()); + } + else if(type == "coverage_dir") + { + this->LoadCoverageData(path.c_str()); + } + else + { + cmCTestLog(this->CTest, ERROR_MESSAGE, + "Parse Error in Mumps coverage file :\n" + << file << + "\ntype: [" << type << "]\npath:[" << path << "]\n" + "input line: [" << line << "]\n"); + } + } } - cmSystemTools::GetLineFromStream(in, line); - pos = line.find(':', 0); - std::string coverage_dir; - if(pos != std::string::npos) - { - coverage_dir = line.substr(pos+1); - } - // load the mumps files from the packages directory - this->LoadPackages(packages.c_str()); - // now load the *.mcov files from the coverage directory - this->LoadCoverageData(coverage_dir.c_str()); return true; } From 0a169e628bb222fec7deead87f6ebe8fa77c7805 Mon Sep 17 00:00:00 2001 From: Bill Hoffman Date: Wed, 2 May 2012 17:23:01 -0400 Subject: [PATCH 012/101] Remove uncovered files from cache coverage data. Cache coverage data currently contains files with 0 coverage on each line. This change will remove those files from the coverage sent to CDash. --- Source/CTest/cmParseCacheCoverage.cxx | 36 +++++++++++++++++++++++++++ Source/CTest/cmParseCacheCoverage.h | 2 ++ 2 files changed, 38 insertions(+) diff --git a/Source/CTest/cmParseCacheCoverage.cxx b/Source/CTest/cmParseCacheCoverage.cxx index fb8581008..e4b0a8897 100644 --- a/Source/CTest/cmParseCacheCoverage.cxx +++ b/Source/CTest/cmParseCacheCoverage.cxx @@ -44,9 +44,45 @@ bool cmParseCacheCoverage::LoadCoverageData(const char* d) } } } + // now remove files wht no actual coverage... + this->RemoveUnCoveredFiles(); return true; } +void cmParseCacheCoverage::RemoveUnCoveredFiles() +{ + // loop over the coverage data computed and remove all files + // that only have -1 or 0 for the lines. + cmCTestCoverageHandlerContainer::TotalCoverageMap::iterator ci = + this->Coverage.TotalCoverage.begin(); + while(ci != this->Coverage.TotalCoverage.end()) + { + cmCTestCoverageHandlerContainer::SingleFileCoverageVector& v = + ci->second; + bool nothing = true; + for(cmCTestCoverageHandlerContainer::SingleFileCoverageVector::iterator i= + v.begin(); i != v.end(); ++i) + { + if(*i > 0) + { + nothing = false; + break; + } + } + if(nothing) + { + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, + "No coverage found in: " << ci->first + << std::endl); + this->Coverage.TotalCoverage.erase(ci++); + } + else + { + ++ci; + } + } +} + bool cmParseCacheCoverage::SplitString(std::vector& args, std::string const& line) { diff --git a/Source/CTest/cmParseCacheCoverage.h b/Source/CTest/cmParseCacheCoverage.h index f377567cc..114eb92d3 100644 --- a/Source/CTest/cmParseCacheCoverage.h +++ b/Source/CTest/cmParseCacheCoverage.h @@ -29,6 +29,8 @@ public: protected: // implement virtual from parent bool LoadCoverageData(const char* dir); + // remove files with no coverage + void RemoveUnCoveredFiles(); // Read a single mcov file bool ReadCMCovFile(const char* f); // split a string based on , From 1dfe15c4314c2b7ef6cb15a5deb274f73c3de3ce Mon Sep 17 00:00:00 2001 From: David Faure Date: Thu, 3 May 2012 16:46:50 +0200 Subject: [PATCH 013/101] Abort FindQt4.cmake if Qt 5 is found. --- Modules/FindQt4.cmake | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/Modules/FindQt4.cmake b/Modules/FindQt4.cmake index 9b646b443..e7cd02f78 100644 --- a/Modules/FindQt4.cmake +++ b/Modules/FindQt4.cmake @@ -1169,10 +1169,22 @@ ELSE( Qt4_FIND_COMPONENTS ) ENDIF( Qt4_FIND_COMPONENTS ) -FIND_PACKAGE_HANDLE_STANDARD_ARGS(Qt4 - REQUIRED_VARS ${_QT4_FOUND_REQUIRED_VARS} - VERSION_VAR QTVERSION - ) +if (${QT_VERSION_MAJOR} GREATER 4) + SET(VERSION_MSG "Found unsuitable Qt version \"${QTVERSION}\" from ${QT_QMAKE_EXECUTABLE}") + SET(QT4_FOUND FALSE) + IF(Qt4_FIND_REQUIRED) + MESSAGE( FATAL_ERROR "${VERSION_MSG}, this code requires Qt 4.x") + ELSE(Qt4_FIND_REQUIRED) + IF(NOT Qt4_FIND_QUIETLY) + MESSAGE( STATUS "${VERSION_MSG}") + ENDIF(NOT Qt4_FIND_QUIETLY) + ENDIF(Qt4_FIND_REQUIRED) +else() + FIND_PACKAGE_HANDLE_STANDARD_ARGS(Qt4 + REQUIRED_VARS ${_QT4_FOUND_REQUIRED_VARS} + VERSION_VAR QTVERSION + ) +endif() ####################################### # From 37a28ffa364b397082aa07cf69b32cf8980e1447 Mon Sep 17 00:00:00 2001 From: Stephen Kelly Date: Thu, 3 May 2012 17:40:04 +0200 Subject: [PATCH 014/101] Fix the number variable comparison when Qt is not found. --- Modules/FindQt4.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Modules/FindQt4.cmake b/Modules/FindQt4.cmake index e7cd02f78..f9db5e1db 100644 --- a/Modules/FindQt4.cmake +++ b/Modules/FindQt4.cmake @@ -1169,7 +1169,7 @@ ELSE( Qt4_FIND_COMPONENTS ) ENDIF( Qt4_FIND_COMPONENTS ) -if (${QT_VERSION_MAJOR} GREATER 4) +if (QT_VERSION_MAJOR GREATER 4) SET(VERSION_MSG "Found unsuitable Qt version \"${QTVERSION}\" from ${QT_QMAKE_EXECUTABLE}") SET(QT4_FOUND FALSE) IF(Qt4_FIND_REQUIRED) From 56f499dcef320b2644431223bd167de521fdf068 Mon Sep 17 00:00:00 2001 From: David Cole Date: Thu, 3 May 2012 16:02:27 -0400 Subject: [PATCH 015/101] CTest: Modify reg ex so it also works with gcov 4.7 output (#13121) --- Source/CTest/cmCTestCoverageHandler.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/CTest/cmCTestCoverageHandler.cxx b/Source/CTest/cmCTestCoverageHandler.cxx index ae06b0f43..15c02b47f 100644 --- a/Source/CTest/cmCTestCoverageHandler.cxx +++ b/Source/CTest/cmCTestCoverageHandler.cxx @@ -800,7 +800,7 @@ int cmCTestCoverageHandler::HandleGCovCoverage( std::string st2gcovOutputRex1 = "^File *[`'](.*)'$"; std::string st2gcovOutputRex2 = "Lines executed: *[0-9]+\\.[0-9]+% of [0-9]+$"; - std::string st2gcovOutputRex3 = "^(.*):creating [`'](.*\\.gcov)'"; + std::string st2gcovOutputRex3 = "^(.*)reating [`'](.*\\.gcov)'"; std::string st2gcovOutputRex4 = "^(.*):unexpected EOF *$"; std::string st2gcovOutputRex5 = "^(.*):cannot open source file*$"; std::string st2gcovOutputRex6 From b0c07a13d1ee034875c2067f35bd39a9ffef7954 Mon Sep 17 00:00:00 2001 From: Bill Hoffman Date: Fri, 4 May 2012 11:41:15 -0400 Subject: [PATCH 016/101] Disable bullseye coverage for mumps coverage test. --- Tests/CMakeLists.txt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index f2175fc8a..3f5dd2c46 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -1725,7 +1725,8 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/ $ -T Coverage --debug) set_tests_properties(CTestGTMCoverage PROPERTIES PASS_REGULAR_EXPRESSION - "Process file.*XINDEX.m.*Total LOC:.*127.*Percentage Coverage: 85.83.*") + "Process file.*XINDEX.m.*Total LOC:.*127.*Percentage Coverage: 85.83.*" + ENVIRONMENT COVFILE=) configure_file( "${CMake_SOURCE_DIR}/Tests/MumpsCoverage/DartConfiguration.cache.tcl.in" @@ -1741,7 +1742,8 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/ $ -T Coverage --debug) set_tests_properties(CTestCacheCoverage PROPERTIES PASS_REGULAR_EXPRESSION - "Process file.*XINDEX.m.*Total LOC:.*125.*Percentage Coverage: 85.60.*") + "Process file.*XINDEX.m.*Total LOC:.*125.*Percentage Coverage: 85.60.*" + ENVIRONMENT COVFILE=) # Use macro, not function so that build can still be driven by CMake 2.4. # After 2.6 is required, this could be a function without the extra 'set' # calls. From 1f8f58a0b9a7883aedf7a4bcb185e9784db4f13b Mon Sep 17 00:00:00 2001 From: Alex Neundorf Date: Sun, 6 May 2012 16:32:10 +0200 Subject: [PATCH 017/101] fix #13195: avoid multiple mentions of found packages Now before adding a package to the list of found or not-found packages, the package is remvoed from both lists before. Alex --- Source/cmFindPackageCommand.cxx | 94 +++++++++++++++++++++------------ Source/cmFindPackageCommand.h | 2 +- 2 files changed, 62 insertions(+), 34 deletions(-) diff --git a/Source/cmFindPackageCommand.cxx b/Source/cmFindPackageCommand.cxx index 4f9ba7eb2..be47f95d4 100644 --- a/Source/cmFindPackageCommand.cxx +++ b/Source/cmFindPackageCommand.cxx @@ -1368,41 +1368,73 @@ bool cmFindPackageCommand::ReadListFile(const char* f, PolicyScopeRule psr) } //---------------------------------------------------------------------------- -void cmFindPackageCommand::AppendToProperty(const char* propertyName) +void cmFindPackageCommand::AppendToFoundProperty(bool found) { - std::string propertyValue; - const char *prop = - this->Makefile->GetCMakeInstance()->GetProperty(propertyName); - if (prop && *prop) + std::vector foundContents; + const char *foundProp = + this->Makefile->GetCMakeInstance()->GetProperty("PACKAGES_FOUND"); + if (foundProp && *foundProp) { - propertyValue = prop; + std::string tmp = foundProp; - std::vector contents; - cmSystemTools::ExpandListArgument(propertyValue, contents, false); + cmSystemTools::ExpandListArgument(tmp, foundContents, false); + std::vector::iterator nameIt = std::find( + foundContents.begin(), foundContents.end(), this->Name); + if(nameIt != foundContents.end()) + { + foundContents.erase(nameIt); + } + } - bool alreadyInserted = false; - for(std::vector::const_iterator it = contents.begin(); - it != contents.end(); ++ it ) + std::vector notFoundContents; + const char *notFoundProp = + this->Makefile->GetCMakeInstance()->GetProperty("PACKAGES_NOT_FOUND"); + if (notFoundProp && *notFoundProp) + { + std::string tmp = notFoundProp; + + cmSystemTools::ExpandListArgument(tmp, notFoundContents, false); + std::vector::iterator nameIt = std::find( + notFoundContents.begin(), notFoundContents.end(), this->Name); + if(nameIt != notFoundContents.end()) { - if (*it == this->Name) - { - alreadyInserted = true; - break; - } - } - if (!alreadyInserted) - { - propertyValue += ";"; - propertyValue += this->Name; + notFoundContents.erase(nameIt); } } + + if(found) + { + foundContents.push_back(this->Name); + } else { - propertyValue = this->Name; + notFoundContents.push_back(this->Name); } - this->Makefile->GetCMakeInstance()->SetProperty(propertyName, - propertyValue.c_str()); - } + + + std::string tmp; + const char* sep =""; + for(size_t i=0; iMakefile->GetCMakeInstance()->SetProperty("PACKAGES_FOUND", + tmp.c_str()); + + tmp = ""; + sep = ""; + for(size_t i=0; iMakefile->GetCMakeInstance()->SetProperty("PACKAGES_NOT_FOUND", + tmp.c_str()); +} //---------------------------------------------------------------------------- void cmFindPackageCommand::AppendSuccessInformation() @@ -1413,14 +1445,10 @@ void cmFindPackageCommand::AppendSuccessInformation() const char* upperResult = this->Makefile->GetDefinition(upperFound.c_str()); const char* result = this->Makefile->GetDefinition(found.c_str()); - if ((cmSystemTools::IsOn(result)) || (cmSystemTools::IsOn(upperResult))) - { - this->AppendToProperty("PACKAGES_FOUND"); - } - else - { - this->AppendToProperty("PACKAGES_NOT_FOUND"); - } + bool packageFound = ((cmSystemTools::IsOn(result)) + || (cmSystemTools::IsOn(upperResult))); + + this->AppendToFoundProperty(packageFound); // Record whether the find was quiet or not, so this can be used // e.g. in FeatureSummary.cmake diff --git a/Source/cmFindPackageCommand.h b/Source/cmFindPackageCommand.h index edb70a6a1..c3801220d 100644 --- a/Source/cmFindPackageCommand.h +++ b/Source/cmFindPackageCommand.h @@ -69,7 +69,7 @@ protected: virtual void GenerateDocumentation(); private: void AppendSuccessInformation(); - void AppendToProperty(const char* propertyName); + void AppendToFoundProperty(bool found); void SetModuleVariables(const std::string& components); bool FindModule(bool& found); void AddFindDefinition(const char* var, const char* val); From 707afd1ed0d5d21760e33c5345b86be22d3d6ef5 Mon Sep 17 00:00:00 2001 From: Brad King Date: Mon, 7 May 2012 08:50:08 -0400 Subject: [PATCH 018/101] Documentation: Improve HTML section index format Add a newline after section index list items. This makes the generated HTML source more readable. --- Source/cmDocumentationFormatterHTML.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/cmDocumentationFormatterHTML.cxx b/Source/cmDocumentationFormatterHTML.cxx index ed28b45bf..cd0077ed9 100644 --- a/Source/cmDocumentationFormatterHTML.cxx +++ b/Source/cmDocumentationFormatterHTML.cxx @@ -145,7 +145,7 @@ void cmDocumentationFormatterHTML cmDocumentationPrintHTMLId(os, op->Name.c_str()); os << "\">"; this->PrintHTMLEscapes(os, op->Name.c_str()); - os << ""; + os << "\n"; } } os << "\n" ; From 470f39cf4ea3da35716e6f4ea5bbdc17b5b0e814 Mon Sep 17 00:00:00 2001 From: Brad King Date: Mon, 7 May 2012 15:24:16 -0400 Subject: [PATCH 019/101] VS: Restore header files marked as OS X Framework content (#13196) Header files listed in a target's PUBLIC_HEADER or similar properties are marked as OS X Framework content. Refactoring performed by commit 11d9b211 (Add cmGeneratorTarget to represent a target during generation, 2012-03-07) commit 45c2f932 (Simplify cmMakefileTargetGenerator using cmGeneratorTarget, 2012-03-07) commit 328c0f65 (Simplify cmVisualStudio10TargetGenerator source classification, 2012-03-19) and related commits accidentally removed such files from treatment as normal header files by the VS generator (generators other than Makefiles and Xcode). Move handling of such files out of cmGeneratorTarget and back to cmMakefileTargetGenerator. The central cmGeneratorTarget classification will always treat them as header or extra sources. --- Source/cmGeneratorTarget.cxx | 7 ------- Source/cmGeneratorTarget.h | 1 - Source/cmMakefileTargetGenerator.cxx | 26 ++++++++++++++++++-------- Source/cmMakefileTargetGenerator.h | 1 + Source/cmNinjaTargetGenerator.cxx | 1 - 5 files changed, 19 insertions(+), 17 deletions(-) diff --git a/Source/cmGeneratorTarget.cxx b/Source/cmGeneratorTarget.cxx index 42dd42819..6e2e23da5 100644 --- a/Source/cmGeneratorTarget.cxx +++ b/Source/cmGeneratorTarget.cxx @@ -39,17 +39,10 @@ void cmGeneratorTarget::ClassifySources() { cmSourceFile* sf = *si; std::string ext = cmSystemTools::LowerCase(sf->GetExtension()); - cmTarget::SourceFileFlags tsFlags = - this->Target->GetTargetSourceFileFlags(sf); if(sf->GetCustomCommand()) { this->CustomCommands.push_back(sf); } - else if(tsFlags.Type != cmTarget::SourceFileTypeNormal) - { - this->OSXContent.push_back(sf); - if(isObjLib) { badObjLib.push_back(sf); } - } else if(sf->GetPropertyAsBool("HEADER_FILE_ONLY")) { this->HeaderSources.push_back(sf); diff --git a/Source/cmGeneratorTarget.h b/Source/cmGeneratorTarget.h index 3e5065603..5c7578d94 100644 --- a/Source/cmGeneratorTarget.h +++ b/Source/cmGeneratorTarget.h @@ -37,7 +37,6 @@ public: std::vector HeaderSources; std::vector ObjectSources; std::vector ExternalObjects; - std::vector OSXContent; std::vector IDLSources; std::string ModuleDefinitionFile; diff --git a/Source/cmMakefileTargetGenerator.cxx b/Source/cmMakefileTargetGenerator.cxx index a0e04813d..408f287bc 100644 --- a/Source/cmMakefileTargetGenerator.cxx +++ b/Source/cmMakefileTargetGenerator.cxx @@ -153,14 +153,8 @@ void cmMakefileTargetGenerator::WriteTargetBuildRules() } } } - for(std::vector::const_iterator - si = this->GeneratorTarget->OSXContent.begin(); - si != this->GeneratorTarget->OSXContent.end(); ++si) - { - cmTarget::SourceFileFlags tsFlags = - this->Target->GetTargetSourceFileFlags(*si); - this->WriteMacOSXContentRules(**si, tsFlags.MacFolder); - } + this->WriteMacOSXContentRules(this->GeneratorTarget->HeaderSources); + this->WriteMacOSXContentRules(this->GeneratorTarget->ExtraSources); for(std::vector::const_iterator si = this->GeneratorTarget->ExternalObjects.begin(); si != this->GeneratorTarget->ExternalObjects.end(); ++si) @@ -353,6 +347,22 @@ void cmMakefileTargetGenerator::WriteTargetLanguageFlags() } } +//---------------------------------------------------------------------------- +void cmMakefileTargetGenerator::WriteMacOSXContentRules( + std::vector const& sources) +{ + for(std::vector::const_iterator + si = sources.begin(); si != sources.end(); ++si) + { + cmTarget::SourceFileFlags tsFlags = + this->Target->GetTargetSourceFileFlags(*si); + if(tsFlags.Type != cmTarget::SourceFileTypeNormal) + { + this->WriteMacOSXContentRules(**si, tsFlags.MacFolder); + } + } +} + //---------------------------------------------------------------------------- void cmMakefileTargetGenerator::WriteMacOSXContentRules(cmSourceFile& source, const char* pkgloc) diff --git a/Source/cmMakefileTargetGenerator.h b/Source/cmMakefileTargetGenerator.h index e1e554b6e..36a1f6861 100644 --- a/Source/cmMakefileTargetGenerator.h +++ b/Source/cmMakefileTargetGenerator.h @@ -73,6 +73,7 @@ protected: void WriteTargetDependRules(); // write rules for Mac OS X Application Bundle content. + void WriteMacOSXContentRules(std::vector const& sources); void WriteMacOSXContentRules(cmSourceFile& source, const char* pkgloc); // write the rules for an object diff --git a/Source/cmNinjaTargetGenerator.cxx b/Source/cmNinjaTargetGenerator.cxx index c6469f2c9..80007f107 100644 --- a/Source/cmNinjaTargetGenerator.cxx +++ b/Source/cmNinjaTargetGenerator.cxx @@ -396,7 +396,6 @@ cmNinjaTargetGenerator cmCustomCommand const* cc = (*si)->GetCustomCommand(); this->GetLocalGenerator()->AddCustomCommandTarget(cc, this->GetTarget()); } - // TODO: this->GeneratorTarget->OSXContent for(std::vector::const_iterator si = this->GeneratorTarget->ExternalObjects.begin(); si != this->GeneratorTarget->ExternalObjects.end(); ++si) From 1b418f1fbfdeea561cc175929ac677d93e523e41 Mon Sep 17 00:00:00 2001 From: Joseph Snyder Date: Mon, 7 May 2012 14:12:51 -0400 Subject: [PATCH 020/101] Change GT.M Coverage Parser global The coverage global should be in the local namespace. This means the global will be ^ZZCOVERAGE instead of ^COVERAGE. Change the parser to look for ^ZZCOVERAGE instead of the old ^COVERAGE --- Source/CTest/cmParseGTMCoverage.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/CTest/cmParseGTMCoverage.cxx b/Source/CTest/cmParseGTMCoverage.cxx index f850c3cce..e1f02d636 100644 --- a/Source/CTest/cmParseGTMCoverage.cxx +++ b/Source/CTest/cmParseGTMCoverage.cxx @@ -61,7 +61,7 @@ bool cmParseGTMCoverage::ReadMCovFile(const char* file) while( cmSystemTools::GetLineFromStream(in, line)) { // only look at lines that have coverage data - if(line.find("^COVERAGE") == line.npos) + if(line.find("^ZZCOVERAGE") == line.npos) { continue; } From 5b69ce49d4d80207d8fc90fe970875b4e545c13a Mon Sep 17 00:00:00 2001 From: Bill Hoffman Date: Mon, 7 May 2012 15:46:29 -0400 Subject: [PATCH 021/101] Update test data to match new coverage format. --- .../Accounts_ReceivableTest.mcov | 2882 ++++++++--------- 1 file changed, 1441 insertions(+), 1441 deletions(-) diff --git a/Tests/MumpsCoverage/Accounts_ReceivableTest.mcov b/Tests/MumpsCoverage/Accounts_ReceivableTest.mcov index c0ca7b5cc..3c585f556 100644 --- a/Tests/MumpsCoverage/Accounts_ReceivableTest.mcov +++ b/Tests/MumpsCoverage/Accounts_ReceivableTest.mcov @@ -1,1445 +1,1445 @@ %GO Global Output Utility GT.M 17-APR-2012 17:18:27 ZWR -^COVERAGE("%RSEL","SRC")="1:0:0:0" -^COVERAGE("%RSEL","SRC",1)="1:0:0:0" -^COVERAGE("%RSEL","SRC",2)="1:0:0:0" -^COVERAGE("%RSEL","SRC",3)="1:0:0:0" -^COVERAGE("%RSEL","SRC",4)="1:0:0:0" -^COVERAGE("%RSEL","SRC",5)="1:0:0:0" -^COVERAGE("%RSEL","SRC",6)="1:0:0:0" -^COVERAGE("%RSEL","SRC",7)="1:0:0:0" -^COVERAGE("%RSEL","init")="1:0:0:0" -^COVERAGE("%RSEL","init",1)="1:0:0:0" -^COVERAGE("%RSEL","init",3)="1:0:0:0" -^COVERAGE("%RSEL","init",4)="1:0:0:0" -^COVERAGE("%RSEL","init",5)="1:0:0:0" -^COVERAGE("%RSEL","init",6)="1:0:0:0" -^COVERAGE("%RSEL","init",7)="1:0:0:0" -^COVERAGE("%RSEL","init",8)="1:0:0:0" -^COVERAGE("%RSEL","init",8,"FOR_LOOP",1)=1 -^COVERAGE("%RSEL","init",9)="1:0:0:0" -^COVERAGE("%RSEL","init",10)="1:0:0:0" -^COVERAGE("%RSEL","init",11)="1:0:0:0" -^COVERAGE("%RSEL","init",12)="1:0:0:0" -^COVERAGE("%RSEL","init",13)="1:0:0:0" -^COVERAGE("%RSEL","init",14)="1:0:0:0" -^COVERAGE("%RSEL","init",15)="1:0:0:0" -^COVERAGE("%RSEL","init",16)="1:0:0:0" -^COVERAGE("%RSEL","init",17)="1:0:0:0" -^COVERAGE("%RSEL","init",17,"FOR_LOOP",1)=2 -^COVERAGE("%RSEL","init",18)="2:0:0:0" -^COVERAGE("%RSEL","init",19)="2:0:0:0" -^COVERAGE("%RSEL","init",20)="2:0:0:0" -^COVERAGE("%RSEL","init",40)="1:0:0:0" -^COVERAGE("%RSEL","main")="1:32001:84004:116005" -^COVERAGE("%RSEL","main",1)="1:0:0:0" -^COVERAGE("%RSEL","main",2)="1:0:0:0" -^COVERAGE("%RSEL","main",3)="1:0:0:0" -^COVERAGE("%RSEL","main",3,"FOR_LOOP",1)=468 -^COVERAGE("%RSEL","main",4)="468:0:24003:24003" -^COVERAGE("%RSEL","main",5)="468:0:0:0" -^COVERAGE("%RSEL","main",6)="468:32001:48001:80002" -^COVERAGE("%RSEL","main",7)="467:0:12000:12000" -^COVERAGE("%RSEL","main",8)="467:0:0:0" -^COVERAGE("%RSEL","main",9)="467:0:0:0" -^COVERAGE("%RSEL","main",10)="467:0:0:0" -^COVERAGE("%RSEL","main",11)="1:0:0:0" -^COVERAGE("%RSEL","main",12)="1:0:0:0" -^COVERAGE("%RSEL","main",13)="1:0:0:0" -^COVERAGE("%RSEL","main",14)="1:0:0:0" -^COVERAGE("%RSEL","next")="1403:12001:20002:32003" -^COVERAGE("%RSEL","next",0)="1403:0:0:0" -^COVERAGE("%RSEL","next",1)="1403:12001:20002:32003" -^COVERAGE("%RSEL","next",1,"FOR_LOOP",1)=1403 -^COVERAGE("%RSEL","next",2)="1403:0:0:0" -^COVERAGE("%RSEL","save")="467:0:4001:4001" -^COVERAGE("%RSEL","save",1)="467:0:0:0" -^COVERAGE("%RSEL","save",5)="467:0:0:0" -^COVERAGE("%RSEL","save",6)="467:0:0:0" -^COVERAGE("%RSEL","save",7)="467:0:0:0" -^COVERAGE("%RSEL","save",8)="467:0:4001:4001" -^COVERAGE("%RSEL","save",9)="467:0:0:0" -^COVERAGE("%RSEL","search")="934:0:16001:16001" -^COVERAGE("%RSEL","search",0)="934:0:4000:4000" -^COVERAGE("%RSEL","search",1)="934:0:0:0" -^COVERAGE("%RSEL","search",2)="934:0:4001:4001" -^COVERAGE("%RSEL","search",2,"FOR_LOOP",1)=1868 -^COVERAGE("%RSEL","search",3)="934:0:8000:8000" -^COVERAGE("%RSEL","search",4)="934:0:0:0" -^COVERAGE("%RSEL","search",5)="934:0:0:0" -^COVERAGE("%RSEL","start")="468:0:4001:4001" -^COVERAGE("%RSEL","start",0)="468:0:0:0" -^COVERAGE("%RSEL","start",1)="468:0:0:0" -^COVERAGE("%RSEL","start",2)="468:0:0:0" -^COVERAGE("%RSEL","start",2,"FOR_LOOP",1)=936 -^COVERAGE("%RSEL","start",3)="468:0:0:0" -^COVERAGE("%RSEL","work")="467:20002:24001:44003" -^COVERAGE("%RSEL","work",1)="467:0:0:0" -^COVERAGE("%RSEL","work",2)="467:0:0:0" -^COVERAGE("%RSEL","work",3)="467:0:4000:4000" -^COVERAGE("%RSEL","work",4)="467:0:0:0" -^COVERAGE("%RSEL","work",6)="467:4000:12000:16000" -^COVERAGE("%RSEL","work",6,"FOR_LOOP",1)=3421 -^COVERAGE("%RSEL","work",7)="467:0:0:0" -^COVERAGE("%RSEL","work",8)="467:4001:0:4001" -^COVERAGE("%RSEL","work",9)="467:0:0:0" -^COVERAGE("%RSEL","work",10)="467:0:0:0" -^COVERAGE("%RSEL","work",11)="467:0:0:0" -^COVERAGE("%RSEL","work",12)="467:4000:0:4000" -^COVERAGE("%RSEL","work",13)="467:0:4000:4000" -^COVERAGE("%RSEL","work",14)="467:0:0:0" -^COVERAGE("%RSEL","work",15)="467:4001:4001:8002" -^COVERAGE("%RSEL","work",15,"FOR_LOOP",1)=934 -^COVERAGE("%RSEL","work",16)="467:0:0:0" -^COVERAGE("%ZIS","%ZIS")="2:0:0:0" -^COVERAGE("%ZIS","%ZIS",3)="2:0:0:0" -^COVERAGE("%ZIS","%ZIS",4)="2:0:0:0" -^COVERAGE("%ZIS","A",0)="2:0:0:0" -^COVERAGE("%ZIS","A",1)="2:0:0:0" -^COVERAGE("%ZIS","CLEAN")="3:0:0:0" -^COVERAGE("%ZIS","CLEAN",1)="3:0:0:0" -^COVERAGE("%ZIS","CLEAN",2)="3:0:0:0" -^COVERAGE("%ZIS","CLEAN",3)="3:0:0:0" -^COVERAGE("%ZIS","CLEAN",4)="3:0:0:0" -^COVERAGE("%ZIS","GETHOME")="2:0:0:0" -^COVERAGE("%ZIS","GETHOME",0)="2:0:0:0" -^COVERAGE("%ZIS","GETHOME",1)="1:0:0:0" -^COVERAGE("%ZIS","GETHOME",3)="1:0:0:0" -^COVERAGE("%ZIS","GETHOME",4)="1:0:0:0" -^COVERAGE("%ZIS","GETHOME",5)="1:0:0:0" -^COVERAGE("%ZIS","GETHOME",6)="1:0:0:0" -^COVERAGE("%ZIS","GETHOME",7)="1:0:0:0" -^COVERAGE("%ZIS","HOME")="1:0:0:0" -^COVERAGE("%ZIS","HOME",1)="1:0:0:0" -^COVERAGE("%ZIS","HOME",2)="1:0:0:0" -^COVERAGE("%ZIS","INIT",1)="2:0:0:0" -^COVERAGE("%ZIS","INIT",3)="2:0:0:0" -^COVERAGE("%ZIS","INIT",4)="2:0:0:0" -^COVERAGE("%ZIS","INIT",5)="2:0:0:0" -^COVERAGE("%ZIS","INIT",6)="2:0:0:0" -^COVERAGE("%ZIS","INIT",8)="2:0:0:0" -^COVERAGE("%ZIS","INIT",10)="2:0:0:0" -^COVERAGE("%ZIS","INIT",11)="2:0:0:0" -^COVERAGE("%ZIS","INIT",12)="2:0:0:0" -^COVERAGE("%ZIS","INIT",13)="2:0:0:0" -^COVERAGE("%ZIS","INIT",15)="2:0:0:0" -^COVERAGE("%ZIS","K2",0)="2:0:0:0" -^COVERAGE("%ZIS","K2",1)="2:0:0:0" -^COVERAGE("%ZIS","K2",2)="2:0:0:0" -^COVERAGE("%ZIS","K2",4)="2:0:0:0" -^COVERAGE("%ZIS","VIRTUAL")="2:0:0:0" -^COVERAGE("%ZIS","VIRTUAL",4)="2:0:0:0" -^COVERAGE("%ZIS","VIRTUAL",4,"FOR_LOOP",1)=6 -^COVERAGE("%ZIS","VIRTUAL",5)="2:0:0:0" -^COVERAGE("%ZIS","VIRTUAL",7)="2:0:0:0" -^COVERAGE("%ZIS","VTLKUP")="4:0:0:0" -^COVERAGE("%ZIS","VTLKUP",0)="4:0:0:0" -^COVERAGE("%ZIS","VTLKUP",0,"FOR_LOOP",1)=8 -^COVERAGE("%ZIS","VTLKUP",1)="4:0:0:0" -^COVERAGE("%ZIS1","EX2",1)="2:0:0:0" -^COVERAGE("%ZIS1","EX2",2)="2:0:0:0" -^COVERAGE("%ZIS1","EXIT",1)="2:0:0:0" -^COVERAGE("%ZIS1","EXIT",3)="2:0:0:0" -^COVERAGE("%ZIS1","EXIT",5)="2:0:0:0" -^COVERAGE("%ZIS1","EXIT",6)="2:0:0:0" -^COVERAGE("%ZIS1","EXIT",7)="2:0:0:0" -^COVERAGE("%ZIS1","EXIT",8)="2:0:0:0" -^COVERAGE("%ZIS1","EXIT",9)="2:0:0:0" -^COVERAGE("%ZIS1","G",0)="2:0:0:0" -^COVERAGE("%ZIS1","IOP")="1:0:0:0" -^COVERAGE("%ZIS1","IOP",1)="1:0:0:0" -^COVERAGE("%ZIS1","K2")="2:0:0:0" -^COVERAGE("%ZIS1","K2",1)="4:0:0:0" -^COVERAGE("%ZIS1","K2",2)="4:0:0:0" -^COVERAGE("%ZIS1","K2",3)="4:0:0:0" -^COVERAGE("%ZIS1","K2",4)="4:0:0:0" -^COVERAGE("%ZIS1","KIL",1)="2:0:0:0" -^COVERAGE("%ZIS1","KIL",2)="2:0:0:0" -^COVERAGE("%ZIS1","KIL",3)="2:0:0:0" -^COVERAGE("%ZIS1","L1",1)="2:0:0:0" -^COVERAGE("%ZIS1","L1",2)="2:0:0:0" -^COVERAGE("%ZIS1","L1",3)="2:0:0:0" -^COVERAGE("%ZIS1","L1",4)="2:0:0:0" -^COVERAGE("%ZIS1","L1",5)="2:0:0:0" -^COVERAGE("%ZIS1","L1",6)="2:0:0:0" -^COVERAGE("%ZIS1","L1",7)="2:0:0:0" -^COVERAGE("%ZIS1","L1",8)="2:0:0:0" -^COVERAGE("%ZIS1","L1",9)="2:0:0:0" -^COVERAGE("%ZIS1","L1",10)="2:0:0:0" -^COVERAGE("%ZIS1","L1",11)="2:0:0:0" -^COVERAGE("%ZIS1","L1",12)="2:0:0:0" -^COVERAGE("%ZIS1","LKUP")="2:0:0:0" -^COVERAGE("%ZIS1","LKUP",1)="2:0:0:0" -^COVERAGE("%ZIS1","LKUP",2)="2:0:0:0" -^COVERAGE("%ZIS1","LKUP",3)="2:0:0:0" -^COVERAGE("%ZIS1","MAIN",2)="2:0:0:0" -^COVERAGE("%ZIS1","R")="1:0:0:0" -^COVERAGE("%ZIS1","R",0)="1:0:0:0" -^COVERAGE("%ZIS1","R",1)="1:0:0:0" -^COVERAGE("%ZIS1","R",2)="1:0:0:0" -^COVERAGE("%ZIS1","RD",0)="1:0:0:0" -^COVERAGE("%ZIS1","RD",1)="1:0:0:0" -^COVERAGE("%ZIS1","RD",2)="1:0:0:0" -^COVERAGE("%ZIS1","RD",3)="1:0:0:0" -^COVERAGE("%ZIS1","RD",4)="1:0:0:0" -^COVERAGE("%ZIS1","RD",5)="1:0:0:0" -^COVERAGE("%ZIS1","SBR")="1:0:0:0" -^COVERAGE("%ZIS1","SBR",1)="1:0:0:0" -^COVERAGE("%ZIS1","SBR",2)="1:0:0:0" -^COVERAGE("%ZIS1","SBR",3)="1:0:0:0" -^COVERAGE("%ZIS1","SETQ")="2:0:0:0" -^COVERAGE("%ZIS1","SETQ",1)="2:0:0:0" -^COVERAGE("%ZIS1","SETQ",2)="2:0:0:0" -^COVERAGE("%ZIS1","SETQ",3)="2:0:0:0" -^COVERAGE("%ZIS1","SETQ",4)="2:0:0:0" -^COVERAGE("%ZIS1","SETQ",5)="2:0:0:0" -^COVERAGE("%ZIS1","SETVAR",1)="2:0:0:0" -^COVERAGE("%ZIS1","SETVAR",2)="2:0:0:0" -^COVERAGE("%ZIS1","SETVAR",5)="2:0:0:0" -^COVERAGE("%ZIS1","SETVAR",7)="2:0:0:0" -^COVERAGE("%ZIS1","SETVAR",8)="2:0:0:0" -^COVERAGE("%ZIS1","SETVAR",9)="2:0:0:0" -^COVERAGE("%ZIS1","SETVAR",10)="2:0:0:0" -^COVERAGE("%ZIS1","SETVAR",11)="2:0:0:0" -^COVERAGE("%ZIS1","SETVAR",12)="2:0:0:0" -^COVERAGE("%ZIS1","SETVAR",13)="2:0:0:0" -^COVERAGE("%ZIS2","CHECK",1)="2:0:0:0" -^COVERAGE("%ZIS2","CHECK",2)="2:0:0:0" -^COVERAGE("%ZIS2","CHECK",3)="2:0:0:0" -^COVERAGE("%ZIS2","CHECK",4)="2:0:0:0" -^COVERAGE("%ZIS2","CHECK",5)="2:0:0:0" -^COVERAGE("%ZIS2","CHECK",6)="2:0:0:0" -^COVERAGE("%ZIS2","IOPAR")="4:0:0:0" -^COVERAGE("%ZIS2","IOPAR",0)="4:0:0:0" -^COVERAGE("%ZIS2","IOPAR",1)="4:0:0:0" -^COVERAGE("%ZIS2","L2")="2:0:0:0" -^COVERAGE("%ZIS2","L2",1)="2:0:0:0" -^COVERAGE("%ZIS2","OCPU",0)="2:0:0:0" -^COVERAGE("%ZIS2","OOS",0)="2:0:0:0" -^COVERAGE("%ZIS2","OOS",2)="2:0:0:0" -^COVERAGE("%ZIS2","OTHCPU")="2:0:0:0" -^COVERAGE("%ZIS2","OTHCPU",0)="2:0:0:0" -^COVERAGE("%ZIS2","OTHCPU",1)="2:0:0:0" -^COVERAGE("%ZIS2","OTHCPU",2)="2:0:0:0" -^COVERAGE("%ZIS2","OTHCPU",2,"FOR_LOOP",1)=4 -^COVERAGE("%ZIS2","OTHCPU",3)="4:0:0:0" -^COVERAGE("%ZIS2","OTHCPU",4)="4:0:0:0" -^COVERAGE("%ZIS2","OTHCPU",5)="4:0:0:0" -^COVERAGE("%ZIS2","OTHCPU",15)="2:0:0:0" -^COVERAGE("%ZIS2","PTIME",0)="2:0:0:0" -^COVERAGE("%ZIS2","QUECHK")="2:0:0:0" -^COVERAGE("%ZIS2","QUECHK",0)="2:0:0:0" -^COVERAGE("%ZIS2","QUECHK",1)="2:0:0:0" -^COVERAGE("%ZIS2","QUECHK",3)="2:0:0:0" -^COVERAGE("%ZIS2","QUECHK",4)="2:0:0:0" -^COVERAGE("%ZIS2","QUECHK",9)="2:0:0:0" -^COVERAGE("%ZIS2","QUECHK",13)="2:0:0:0" -^COVERAGE("%ZIS2","SLAVE",0)="2:0:0:0" -^COVERAGE("%ZIS2","T2",0)="2:0:0:0" -^COVERAGE("%ZIS2","T2",2)="2:0:0:0" -^COVERAGE("%ZIS2","TMPVAR",0)="2:0:0:0" -^COVERAGE("%ZIS2","TMPVAR",1)="2:0:0:0" -^COVERAGE("%ZIS2","TMPVAR",2)="2:0:0:0" -^COVERAGE("%ZIS2","TMPVAR",4)="2:0:0:0" -^COVERAGE("%ZIS2","TMPVAR",10)="2:0:0:0" -^COVERAGE("%ZIS2","TMPVAR",11)="2:0:0:0" -^COVERAGE("%ZIS2","TMPVAR",12)="2:0:0:0" -^COVERAGE("%ZIS2","TMPVAR",15)="2:0:0:0" -^COVERAGE("%ZIS2","TMPVAR",16)="2:0:0:0" -^COVERAGE("%ZIS2","TMPVAR",18)="2:0:0:0" -^COVERAGE("%ZIS2","VTRM",0)="2:0:0:0" -^COVERAGE("%ZIS2","VTRM",1)="2:0:0:0" -^COVERAGE("%ZIS3","%ZIS3",4)="2:0:0:0" -^COVERAGE("%ZIS3","%ZIS3",5)="2:0:0:0" -^COVERAGE("%ZIS3","%ZIS3",6)="2:0:0:0" -^COVERAGE("%ZIS3","%ZIS3",8)="2:0:0:0" -^COVERAGE("%ZIS3","%ZIS3",9)="2:0:0:0" -^COVERAGE("%ZIS3","%ZIS3",11)="2:0:0:0" -^COVERAGE("%ZIS3","ALTP",0)="2:0:0:0" -^COVERAGE("%ZIS3","ASKMAR",0)="2:0:0:0" -^COVERAGE("%ZIS3","ASKMAR",1)="2:0:0:0" -^COVERAGE("%ZIS3","MARGN")="2:0:0:0" -^COVERAGE("%ZIS3","MARGN",1)="2:0:0:0" -^COVERAGE("%ZIS3","MARGN",2)="2:0:0:0" -^COVERAGE("%ZIS3","MARGN",3)="2:0:0:0" -^COVERAGE("%ZIS3","MARGN",4)="2:0:0:0" -^COVERAGE("%ZIS3","Q",2)="2:0:0:0" -^COVERAGE("%ZIS3","Q",3)="2:0:0:0" -^COVERAGE("%ZIS3","Q",4)="2:0:0:0" -^COVERAGE("%ZIS3","SETPAR")="2:0:0:0" -^COVERAGE("%ZIS3","SETPAR",0)="2:0:0:0" -^COVERAGE("%ZIS3","SETPAR",1)="2:0:0:0" -^COVERAGE("%ZIS3","ST")="2:0:0:0" -^COVERAGE("%ZIS3","ST",0)="2:0:0:0" -^COVERAGE("%ZIS3","ST",1)="2:0:0:0" -^COVERAGE("%ZIS3","ST",2)="2:0:0:0" -^COVERAGE("%ZIS3","ST",3)="2:0:0:0" -^COVERAGE("%ZIS3","STP",0)="2:0:0:0" -^COVERAGE("%ZIS3","STP",1)="2:0:0:0" -^COVERAGE("%ZIS3","STP",2)="2:0:0:0" -^COVERAGE("%ZIS3","STP",3)="2:0:0:0" -^COVERAGE("%ZIS3","TRM",1)="2:0:0:0" -^COVERAGE("%ZIS3","TRM",2)="2:0:0:0" -^COVERAGE("%ZIS3","TRM",3)="2:0:0:0" -^COVERAGE("%ZIS3","TRM",4)="2:0:0:0" -^COVERAGE("%ZIS3","TRM",5)="2:0:0:0" -^COVERAGE("%ZIS3","W")="2:0:0:0" -^COVERAGE("%ZIS3","W",0)="2:0:0:0" -^COVERAGE("%ZIS3","W",1)="2:0:0:0" -^COVERAGE("%ZIS3","W",2)="1:0:0:0" -^COVERAGE("%ZIS3","W",3)="1:0:0:0" -^COVERAGE("%ZIS4","O")="2:0:0:0" -^COVERAGE("%ZIS4","O",1)="2:0:0:0" -^COVERAGE("%ZIS4","O",2)="2:0:0:0" -^COVERAGE("%ZIS4","O1")="2:0:0:0" -^COVERAGE("%ZIS4","O1",0)="2:0:0:0" -^COVERAGE("%ZIS4","O1",1)="2:0:0:0" -^COVERAGE("%ZIS4","O1",2)="2:0:0:0" -^COVERAGE("%ZIS4","O1",3)="2:0:0:0" -^COVERAGE("%ZIS4","OPAR",0)="2:0:0:0" -^COVERAGE("%ZIS4","OPAR",1)="2:0:0:0" -^COVERAGE("%ZIS4","OPAR",2)="2:0:0:0" -^COVERAGE("%ZIS4","OPAR",3)="2:0:0:0" -^COVERAGE("%ZIS4","OPAR",4)="2:0:0:0" -^COVERAGE("%ZIS4","OPAR",5)="2:0:0:0" -^COVERAGE("%ZIS4","OPAR",9)="2:0:0:0" -^COVERAGE("%ZIS4","OPAR",10)="2:0:0:0" -^COVERAGE("%ZIS4","OPAR",12)="2:0:0:0" -^COVERAGE("%ZIS6","ANSBAK",1)="2:0:0:0" -^COVERAGE("%ZIS6","ANSBAK",2)="2:0:0:0" -^COVERAGE("%ZIS6","ANSBAK",3)="2:0:0:0" -^COVERAGE("%ZIS6","OXECUTE",1)="2:0:0:0" -^COVERAGE("%ZIS6","QUIT",0)="2:0:0:0" -^COVERAGE("%ZIS6","QUIT",1)="2:0:0:0" -^COVERAGE("%ZISC","C0")="1:0:0:0" -^COVERAGE("%ZISC","C0",1)="1:0:0:0" -^COVERAGE("%ZISC","C0",3)="1:0:0:0" -^COVERAGE("%ZISC","C0",5)="1:0:0:0" -^COVERAGE("%ZISC","C0",6)="1:0:0:0" -^COVERAGE("%ZISC","C0",8)="1:0:0:0" -^COVERAGE("%ZISC","C0",9)="1:0:0:0" -^COVERAGE("%ZISC","C0",10)="1:0:0:0" -^COVERAGE("%ZISC","C0",13)="1:0:0:0" -^COVERAGE("%ZISC","C0",16)="1:0:0:0" -^COVERAGE("%ZISC","C0",17)="1:0:0:0" -^COVERAGE("%ZISC","C0",21)="1:0:0:0" -^COVERAGE("%ZISC","C0",26)="1:0:0:0" -^COVERAGE("%ZISC","C0",27)="1:0:0:0" -^COVERAGE("%ZISC","C0",29)="1:0:0:0" -^COVERAGE("%ZISC","C0",32)="1:0:0:0" -^COVERAGE("%ZISC","C0",33)="1:0:0:0" -^COVERAGE("%ZISC","C0",34)="1:0:0:0" -^COVERAGE("%ZISC","C0",37)="1:0:0:0" -^COVERAGE("%ZISC","C0",41)="1:0:0:0" -^COVERAGE("%ZISC","C0",43)="1:0:0:0" -^COVERAGE("%ZISC","CIOS")="1:0:0:0" -^COVERAGE("%ZISC","CIOS",0)="1:0:0:0" -^COVERAGE("%ZISC","CIOS",1)="1:0:0:0" -^COVERAGE("%ZISC","CIOS",2)="1:0:0:0" -^COVERAGE("%ZISC","CIOS",3)="1:0:0:0" -^COVERAGE("%ZISC","CIOS",4)="1:0:0:0" -^COVERAGE("%ZISC","CIOS",5)="1:0:0:0" -^COVERAGE("%ZISC","CIOS",6)="1:0:0:0" -^COVERAGE("%ZISC","CIOS",7)="1:0:0:0" -^COVERAGE("%ZISC","CIOS",8)="1:0:0:0" -^COVERAGE("%ZISC","CLOSPP")="1:0:0:0" -^COVERAGE("%ZISC","CLOSPP",0)="1:0:0:0" -^COVERAGE("%ZISC","CLOSPP",1)="1:0:0:0" -^COVERAGE("%ZISC","CLOSPP",2)="1:0:0:0" -^COVERAGE("%ZISC","END",0)="1:0:0:0" -^COVERAGE("%ZISC","END",2)="1:0:0:0" -^COVERAGE("%ZISC","END",4)="1:0:0:0" -^COVERAGE("%ZISC","FF")="1:0:0:0" -^COVERAGE("%ZISC","FF",0)="1:0:0:0" -^COVERAGE("%ZISC","FF",1)="1:0:0:0" -^COVERAGE("%ZISC","FF",2)="1:0:0:0" -^COVERAGE("%ZISC","RM")="1:0:0:0" -^COVERAGE("%ZISC","RM",0)="1:0:0:0" -^COVERAGE("%ZISC","RM",1)="1:0:0:0" -^COVERAGE("%ZISC","S1",0)="1:0:0:0" -^COVERAGE("%ZISC","S1",1)="1:0:0:0" -^COVERAGE("%ZISC","SETIO",2)="1:0:0:0" -^COVERAGE("%ZISC","SETIO",4)="1:0:0:0" -^COVERAGE("%ZISC","SETIO",5)="1:0:0:0" -^COVERAGE("%ZISC","SETIO",6)="1:0:0:0" -^COVERAGE("%ZISC","SETIO",7)="1:0:0:0" -^COVERAGE("%ZISC","SETIO",8)="1:0:0:0" -^COVERAGE("%ZISC","SETIO",9)="1:0:0:0" -^COVERAGE("%ZISC","SETIO",10)="1:0:0:0" -^COVERAGE("%ZISC","SETIO",12)="1:0:0:0" -^COVERAGE("%ZISC","SUBTYPE")="1:0:0:0" -^COVERAGE("%ZISC","SUBTYPE",1)="1:0:0:0" -^COVERAGE("%ZISC","SUBTYPE",2)="1:0:0:0" -^COVERAGE("%ZISC","SUBTYPE",3)="1:0:0:0" -^COVERAGE("%ZISUTL","LINEPORT")="1:0:0:0" -^COVERAGE("%ZISUTL","LINEPORT",0)="1:0:0:0" -^COVERAGE("%ZISUTL","LINEPORT",2)="1:0:0:0" -^COVERAGE("%ZISUTL","LINEPORT",3)="1:0:0:0" -^COVERAGE("%ZISUTL","LINEPORT",4)="1:0:0:0" -^COVERAGE("%ZISUTL","LINEPORT",5)="1:0:0:0" -^COVERAGE("%ZISUTL","LINEPORT",6)="1:0:0:0" -^COVERAGE("%ZISUTL","LNPRTIEN")="3:0:0:0" -^COVERAGE("%ZISUTL","LNPRTIEN",0)="3:0:0:0" -^COVERAGE("%ZISUTL","LNPRTIEN",1)="3:0:0:0" -^COVERAGE("%ZISUTL","LNPRTNAM")="3:0:0:0" -^COVERAGE("%ZISUTL","LNPRTNAM",0)="3:0:0:0" -^COVERAGE("%ZISUTL","LNPRTNAM",1)="3:0:0:0" -^COVERAGE("%ZISUTL","LNPRTNAM",2)="3:0:0:0" -^COVERAGE("%ZISUTL","LNPRTNAM",3)="3:0:0:0" -^COVERAGE("%ZISUTL","LNPRTNAM",5)="3:0:0:0" -^COVERAGE("%ZISUTL","LNPRTNAM",6)="3:0:0:0" -^COVERAGE("%ZISUTL","LNPRTSUB")="2:0:0:0" -^COVERAGE("%ZISUTL","LNPRTSUB",0)="2:0:0:0" -^COVERAGE("%ZISUTL","LNPRTSUB",1)="2:0:0:0" -^COVERAGE("%ZISUTL","LNPRTSUB",2)="2:0:0:0" -^COVERAGE("%ZISUTL","LNPRTSUB",3)="2:0:0:0" -^COVERAGE("%ZISUTL","SYMBOL")="2:0:0:0" -^COVERAGE("%ZISUTL","SYMBOL",0)="2:0:0:0" -^COVERAGE("%ZISUTL","SYMBOL",1)="2:0:0:0" -^COVERAGE("%ZISUTL","SYMBOL",3)="2:0:0:0" -^COVERAGE("%ZISUTL","SYMBOL",4)="2:0:0:0" -^COVERAGE("%ZISUTL","SYMBOL",5)="2:0:0:0" -^COVERAGE("%ZISUTL","SYMBOL",5,"FOR_LOOP",1)=40 -^COVERAGE("%ZISUTL","SYMBOL",6)="40:0:0:0" -^COVERAGE("%ZISUTL","SYMBOL",10)="2:0:0:0" -^COVERAGE("%ZOSV","GETENV")="2:0:0:0" -^COVERAGE("%ZOSV","GETENV",1)="2:0:0:0" -^COVERAGE("%ZOSV","GETENV",2)="2:0:0:0" -^COVERAGE("%ZOSV","GETENV",3)="2:0:0:0" -^COVERAGE("%ZOSV","LGR")="2:0:0:0" -^COVERAGE("%ZOSV","LGR",0)="2:0:0:0" -^COVERAGE("%ZOSV","LGR",1)="2:0:0:0" -^COVERAGE("%ZOSV","PRI")="1:0:0:0" -^COVERAGE("%ZOSV","PRI",0)="1:0:0:0" -^COVERAGE("%ZOSV","PRI",3)="1:0:0:0" -^COVERAGE("%ZOSV","RETURN")="2:0:4000:4000" -^COVERAGE("%ZOSV","RETURN",0)="2:0:0:0" -^COVERAGE("%ZOSV","RETURN",2)="2:0:0:0" -^COVERAGE("%ZOSV","RETURN",3)="2:0:0:0" -^COVERAGE("%ZOSV","RETURN",4)="2:0:4000:4000" -^COVERAGE("%ZOSV","RETURN",5)="2:0:0:0" -^COVERAGE("%ZOSV","RETURN",7)="2:0:0:0" -^COVERAGE("%ZOSV","TEMP")="2:0:0:0" -^COVERAGE("%ZOSV","TEMP",0)="2:0:0:0" -^COVERAGE("%ZOSV","TEMP",2)="2:0:0:0" -^COVERAGE("%ZOSV2","LOAD")="467:1000060:340019:1340079" -^COVERAGE("%ZOSV2","LOAD",0)="467:0:0:0" -^COVERAGE("%ZOSV2","LOAD",1)="467:0:8001:8001" -^COVERAGE("%ZOSV2","LOAD",2)="467:1000060:320018:1320078" -^COVERAGE("%ZOSV2","LOAD",2,"FOR_LOOP",1)=45087 -^COVERAGE("%ZOSV2","LOAD",3)="467:0:12000:12000" -^COVERAGE("DIALOG","EZBLD")="2:0:4000:4000" -^COVERAGE("DIALOG","EZBLD",0)="2:0:0:0" -^COVERAGE("DIALOG","EZBLD",2)="2:0:0:0" -^COVERAGE("DIALOG","EZBLD",3)="2:0:0:0" -^COVERAGE("DIALOG","EZBLD",4)="2:0:0:0" -^COVERAGE("DIALOG","EZBLD",5)="2:0:0:0" -^COVERAGE("DIALOG","EZBLD",6)="2:0:0:0" -^COVERAGE("DIALOG","EZBLD",7)="2:0:0:0" -^COVERAGE("DIALOG","EZBLD",8)="2:0:0:0" -^COVERAGE("DIALOG","EZBLD",9)="2:0:0:0" -^COVERAGE("DIALOG","PARAM")="2:0:0:0" -^COVERAGE("DIALOG","PARAM",0)="4:0:0:0" -^COVERAGE("DIALOG","PARAM",1)="2:0:0:0" -^COVERAGE("DIALOG","PARAM",2)="2:0:0:0" -^COVERAGE("DIALOG","PARAM",3)="2:0:0:0" -^COVERAGE("DIALOG","Q1",0)="2:0:0:0" -^COVERAGE("DIALOG","Q2")="2:0:0:0" -^COVERAGE("DIALOG","Q2",0)="2:0:0:0" -^COVERAGE("DIALOG","QEZ",0)="2:0:4000:4000" -^COVERAGE("DIALOG","QEZ",1)="2:0:0:0" -^COVERAGE("DIALOG","QP",0)="2:0:0:0" -^COVERAGE("DIC","A1",0)="2:0:0:0" -^COVERAGE("DIC","ASK",0)="2:0:0:0" -^COVERAGE("DIC","ASK",1)="2:0:0:0" -^COVERAGE("DIC","ASK",2)="2:0:0:0" -^COVERAGE("DIC","ASK",3)="2:0:0:0" -^COVERAGE("DIC","ASK",4)="2:0:0:0" -^COVERAGE("DIC","DIC")="2:0:0:0" -^COVERAGE("DIC","DIC",3)="2:0:0:0" -^COVERAGE("DIC","DIC",4)="2:0:0:0" -^COVERAGE("DIC","DIC",5)="2:0:0:0" -^COVERAGE("DIC","DIC",6)="2:0:0:0" -^COVERAGE("DIC","EN",0)="2:0:0:0" -^COVERAGE("DIC","EN",1)="2:0:0:0" -^COVERAGE("DIC","EN",2)="2:0:0:0" -^COVERAGE("DIC","EN",3)="2:0:0:0" -^COVERAGE("DIC","EN",4)="2:0:0:0" -^COVERAGE("DIC","EN",5)="2:0:0:0" -^COVERAGE("DIC","EN",6)="2:0:0:0" -^COVERAGE("DIC","EN",7)="2:0:0:0" -^COVERAGE("DIC","EN",8)="2:0:0:0" -^COVERAGE("DIC","EN",9)="2:0:0:0" -^COVERAGE("DIC","RTN",0)="2:0:0:0" -^COVERAGE("DIC","RTN",3)="2:0:0:0" -^COVERAGE("DIC","RTN",6)="2:0:0:0" -^COVERAGE("DIC","X",1)="2:0:0:0" -^COVERAGE("DIC","X",4)="2:0:0:0" -^COVERAGE("DIC","X",5)="2:0:0:0" -^COVERAGE("DIC","X",6)="2:0:0:0" -^COVERAGE("DIC0","GETFILE")="2:0:0:0" -^COVERAGE("DIC0","GETFILE",0)="2:0:0:0" -^COVERAGE("DIC0","GETFILE",1)="2:0:0:0" -^COVERAGE("DIC0","GETFILE",2)="2:0:0:0" -^COVERAGE("DIC0","GETFILE",3)="2:0:0:0" -^COVERAGE("DIC0","GETFILE",4)="2:0:0:0" -^COVERAGE("DIC0","GETFILE",7)="2:0:0:0" -^COVERAGE("DIC0","GETFILE",8)="2:0:0:0" -^COVERAGE("DIC0","GETFILE",11)="2:0:0:0" -^COVERAGE("DIC0","GETFILE",12)="2:0:0:0" -^COVERAGE("DIC0","GETFILE",13)="2:0:0:0" -^COVERAGE("DIC0","GETFILE",14)="2:0:0:0" -^COVERAGE("DIC0","GETFILE",15)="2:0:0:0" -^COVERAGE("DIC0","GETFILE",16)="2:0:0:0" -^COVERAGE("DIC0","INIT")="2:0:0:0" -^COVERAGE("DIC0","INIT",1)="2:0:0:0" -^COVERAGE("DIC0","INIT",2)="2:0:0:0" -^COVERAGE("DIC0","INIT",3)="2:0:0:0" -^COVERAGE("DIC0","INIT",4)="2:0:0:0" -^COVERAGE("DIC0","INIT",5)="2:0:0:0" -^COVERAGE("DIC0","INIT",6)="2:0:0:0" -^COVERAGE("DIC0","INIT",7)="2:0:0:0" -^COVERAGE("DIC0","INIT",8)="2:0:0:0" -^COVERAGE("DIC0","SETIEN")="2:0:0:0" -^COVERAGE("DIC0","SETIEN",0)="2:0:0:0" -^COVERAGE("DIC0","SETIEN",1)="2:0:0:0" -^COVERAGE("DIC0","SETIEN",2)="2:0:0:0" -^COVERAGE("DIC0","SETIEN",3)="2:0:0:0" -^COVERAGE("DIC0","SETIEN",4)="2:0:0:0" -^COVERAGE("DIC0","SETIEN",5)="2:0:0:0" -^COVERAGE("DIC0","SETIEN",5,"FOR_LOOP",1)=2 -^COVERAGE("DIC0","SETIEN",6)="2:0:0:0" -^COVERAGE("DIC0","SETIEN",7)="2:0:0:0" -^COVERAGE("DIC1","B",0)="2:0:0:0" -^COVERAGE("DIC1","DIC1")="2:0:0:0" -^COVERAGE("DIC1","DIC1",3)="2:0:0:0" -^COVERAGE("DIC1","DIC1",4)="2:0:0:0" -^COVERAGE("DIC1","DIC1",5)="2:0:0:0" -^COVERAGE("DIC1","DO")="4:0:0:0" -^COVERAGE("DIC1","DO",1)="4:0:0:0" -^COVERAGE("DIC1","DO",2)="2:0:0:0" -^COVERAGE("DIC1","DO2",0)="2:0:0:0" -^COVERAGE("DIC1","DO2",1)="2:0:0:0" -^COVERAGE("DIC1","DO2",2)="2:0:0:0" -^COVERAGE("DIC1","DO2",3)="2:0:0:0" -^COVERAGE("DIC1","GETFA")="4:0:0:0" -^COVERAGE("DIC1","GETFA",0)="4:0:0:0" -^COVERAGE("DIC1","GETFA",2)="4:0:0:0" -^COVERAGE("DIC1","P",1)="2:0:0:0" -^COVERAGE("DIC1","P",2)="2:0:0:0" -^COVERAGE("DIC1","PROMPT",1)="2:0:0:0" -^COVERAGE("DIC1","PROMPT",2)="2:0:0:0" -^COVERAGE("DIC1","W",0)="2:0:0:0" -^COVERAGE("DIC1","W",0,"FOR_LOOP",1)=4 -^COVERAGE("DIC1","W",1)="3:0:0:0" -^COVERAGE("DIC1","W",2)="3:0:0:0" -^COVERAGE("DIC1","W",3)="2:0:0:0" -^COVERAGE("DIC1","W",4)="2:0:0:0" -^COVERAGE("DIC1","W",5)="2:0:0:0" -^COVERAGE("DIC1","W",6)="2:0:0:0" -^COVERAGE("DIC1","WOV")="1:0:0:0" -^COVERAGE("DIC1","WOV",0)="1:0:0:0" -^COVERAGE("DIC1","WOV",1)="1:0:0:0" -^COVERAGE("DIC11","GETPRMT")="2:0:0:0" -^COVERAGE("DIC11","GETPRMT",0)="2:0:0:0" -^COVERAGE("DIC11","GETPRMT",1)="2:0:0:0" -^COVERAGE("DIC11","GETPRMT",2)="2:0:0:0" -^COVERAGE("DIC11","GETPRMT",3)="2:0:0:0" -^COVERAGE("DIC11","GETPRMT",3,"FOR_LOOP",1)=2 -^COVERAGE("DIC11","GETPRMT",4)="2:0:0:0" -^COVERAGE("DIC11","GETPRMT",8)="2:0:0:0" -^COVERAGE("DIC11","GETPRMT",9)="2:0:0:0" -^COVERAGE("DIC11","GETPRMT",10)="2:0:0:0" -^COVERAGE("DIC11","GETPRMT",11)="2:0:0:0" -^COVERAGE("DIC11","GETPRMT",12)="2:0:0:0" -^COVERAGE("DIC11","GETPRMT",13)="2:0:0:0" -^COVERAGE("DIC11","GETPRMT",14)="2:0:0:0" -^COVERAGE("DIC11","GETPRMT",15)="2:0:0:0" -^COVERAGE("DIC11","GETPRMT",16)="2:0:0:0" -^COVERAGE("DIC11","GETPRMT",17)="2:0:0:0" -^COVERAGE("DIC11","GETPRMT",18)="2:0:0:0" -^COVERAGE("DIC11","GETPRMT",19)="2:0:0:0" -^COVERAGE("DIC11","PR1",0)="2:0:0:0" -^COVERAGE("DIC11","PR1",1)="2:0:0:0" -^COVERAGE("DIC11","PR1",2)="2:0:0:0" -^COVERAGE("DIC11","PR1",3)="2:0:0:0" -^COVERAGE("DIC11","PR1",4)="2:0:0:0" -^COVERAGE("DIC11","PR1",6)="2:0:0:0" -^COVERAGE("DIC11","PR1",8)="2:0:0:0" -^COVERAGE("DIC11","PR1",9)="2:0:0:0" -^COVERAGE("DIC11","PR1",11)="2:0:0:0" -^COVERAGE("DIC11","PR1",12)="2:0:0:0" -^COVERAGE("DIC11","PR1",13)="2:0:0:0" -^COVERAGE("DIC11","PR1",14)="2:0:0:0" -^COVERAGE("DIC11","PR1",15)="2:0:0:0" -^COVERAGE("DIC11","PR1",16)="2:0:0:0" -^COVERAGE("DIC11","PROMPT")="2:0:0:0" -^COVERAGE("DIC11","PROMPT",0)="2:0:0:0" -^COVERAGE("DIC11","PROMPT",1)="2:0:0:0" -^COVERAGE("DIC11","PROMPT",1,"FOR_LOOP",1)=2 -^COVERAGE("DIC11","PROMPT",2)="2:0:0:0" -^COVERAGE("DIC11","PROMPT",3)="2:0:0:0" -^COVERAGE("DIC11","PROMPT",5)="2:0:0:0" -^COVERAGE("DIC2","PGM")="4:0:0:0" -^COVERAGE("DIC2","PGM",0)="4:0:0:0" -^COVERAGE("DIC2","PGM",1)="4:0:0:0" -^COVERAGE("DIC2","PGM",2)="4:0:0:0" -^COVERAGE("DIC2","Q")="2:0:0:0" -^COVERAGE("DIC2","Q",0)="2:0:0:0" -^COVERAGE("DIC2","Q",1)="2:0:0:0" -^COVERAGE("DIC2","Q",2)="2:0:0:0" -^COVERAGE("DICL","DINDEX")="2:0:0:0" -^COVERAGE("DICL","DINDEX",0)="2:0:0:0" -^COVERAGE("DICL","DINDEX",1)="2:0:0:0" -^COVERAGE("DICL","DINDEX",2)="2:0:0:0" -^COVERAGE("DICL","DINDEX",5)="2:0:0:0" -^COVERAGE("DICL","DINDEX",6)="2:0:0:0" -^COVERAGE("DICUIX","I1",2)="2:0:0:0" -^COVERAGE("DICUIX","I1",3)="2:0:0:0" -^COVERAGE("DICUIX","I1",4)="2:0:0:0" -^COVERAGE("DICUIX","I1",5)="2:0:0:0" -^COVERAGE("DICUIX","INDEX")="2:0:0:0" -^COVERAGE("DICUIX","INDEX",0)="2:0:0:0" -^COVERAGE("DICUIX","X1",2)="2:0:0:0" -^COVERAGE("DICUIX","X1",8)="2:0:0:0" -^COVERAGE("DICUIX","X1",9)="2:0:0:0" -^COVERAGE("DICUIX","X2",2)="2:0:0:0" -^COVERAGE("DICUIX","X2",3)="2:0:0:0" -^COVERAGE("DICUIX","X2",4)="2:0:0:0" -^COVERAGE("DICUIX","X2",5)="2:0:0:0" -^COVERAGE("DICUIX","X2",8)="2:0:0:0" -^COVERAGE("DICUIX","X2",11)="2:0:0:0" -^COVERAGE("DICUIX","X2",12)="2:0:0:0" -^COVERAGE("DICUIX","X2",13)="2:0:0:0" -^COVERAGE("DICUIX","X2",14)="2:0:0:0" -^COVERAGE("DICUIX","X2",15)="2:0:0:0" -^COVERAGE("DICUIX","X2",15,"FOR_LOOP",1)=2 -^COVERAGE("DICUIX","X2",16)="2:0:0:0" -^COVERAGE("DICUIX","X2",17)="2:0:0:0" -^COVERAGE("DICUIX","X2",18)="2:0:0:0" -^COVERAGE("DICUIX","X2",19)="2:0:0:0" -^COVERAGE("DICUIX","X2",20)="2:0:0:0" -^COVERAGE("DICUIX","X2",21)="2:0:0:0" -^COVERAGE("DICUIX","X2",22)="2:0:0:0" -^COVERAGE("DICUIX","X2",23)="2:0:0:0" -^COVERAGE("DICUIX","X2",24)="2:0:0:0" -^COVERAGE("DICUIX","X2",25)="2:0:0:0" -^COVERAGE("DICUIX","X2",26)="2:0:0:0" -^COVERAGE("DICUIX","X2",27)="2:0:0:0" -^COVERAGE("DICUIX","X2",28)="2:0:0:0" -^COVERAGE("DICUIX","X2",29)="2:0:0:0" -^COVERAGE("DICUIX","X2",30)="2:0:0:0" -^COVERAGE("DICUIX","X2",31)="2:0:0:0" -^COVERAGE("DICUIX","X2",32)="2:0:0:0" -^COVERAGE("DICUIX","X2",33)="2:0:0:0" -^COVERAGE("DICUIX","XREF")="2:0:0:0" -^COVERAGE("DICUIX","XREF",0)="2:0:0:0" -^COVERAGE("DICUIX1","G1",2)="2:0:0:0" -^COVERAGE("DICUIX1","G1",3)="2:0:0:0" -^COVERAGE("DICUIX1","G1",4)="2:0:0:0" -^COVERAGE("DICUIX1","G2",2)="2:0:0:0" -^COVERAGE("DICUIX1","G2",3)="2:0:0:0" -^COVERAGE("DICUIX1","G3",2)="2:0:0:0" -^COVERAGE("DICUIX1","G30",1)="2:0:0:0" -^COVERAGE("DICUIX1","G4",2)="2:0:0:0" -^COVERAGE("DICUIX1","G4",3)="2:0:0:0" -^COVERAGE("DICUIX1","G4",4)="2:0:0:0" -^COVERAGE("DICUIX1","G4",5)="2:0:0:0" -^COVERAGE("DICUIX1","G4",6)="2:0:0:0" -^COVERAGE("DICUIX1","G4",7)="2:0:0:0" -^COVERAGE("DICUIX1","G5",2)="2:0:0:0" -^COVERAGE("DICUIX1","G5",3)="2:0:0:0" -^COVERAGE("DICUIX1","G5",7)="2:0:0:0" -^COVERAGE("DICUIX1","GET")="2:0:0:0" -^COVERAGE("DICUIX1","GET",0)="2:0:0:0" -^COVERAGE("DICUIX2","C1",0)="2:0:0:0" -^COVERAGE("DICUIX2","C1",1)="2:0:0:0" -^COVERAGE("DICUIX2","C2",0)="2:0:0:0" -^COVERAGE("DICUIX2","C2",1)="2:0:0:0" -^COVERAGE("DICUIX2","C3",0)="2:0:0:0" -^COVERAGE("DICUIX2","C3",1)="2:0:0:0" -^COVERAGE("DICUIX2","C3",2)="2:0:0:0" -^COVERAGE("DICUIX2","C3",5)="2:0:0:0" -^COVERAGE("DICUIX2","C4",0)="2:0:0:0" -^COVERAGE("DICUIX2","C4",1)="2:0:0:0" -^COVERAGE("DICUIX2","C4",2)="2:0:0:0" -^COVERAGE("DICUIX2","C4",3)="2:0:0:0" -^COVERAGE("DICUIX2","C4",4)="2:0:0:0" -^COVERAGE("DICUIX2","C4",5)="2:0:0:0" -^COVERAGE("DICUIX2","C4",6)="2:0:0:0" -^COVERAGE("DICUIX2","C4",7)="2:0:0:0" -^COVERAGE("DICUIX2","C4",8)="2:0:0:0" -^COVERAGE("DICUIX2","C4",9)="2:0:0:0" -^COVERAGE("DICUIX2","C4",10)="2:0:0:0" -^COVERAGE("DICUIX2","C4",11)="2:0:0:0" -^COVERAGE("DICUIX2","C4",12)="2:0:0:0" -^COVERAGE("DICUIX2","C4",17)="2:0:0:0" -^COVERAGE("DICUIX2","C4",18)="2:0:0:0" -^COVERAGE("DICUIX2","C4",23)="2:0:0:0" -^COVERAGE("DICUIX2","C4",24)="2:0:0:0" -^COVERAGE("DICUIX2","C5",0)="2:0:0:0" -^COVERAGE("DICUIX2","C5",1)="2:0:0:0" -^COVERAGE("DICUIX2","C6",0)="2:0:0:0" -^COVERAGE("DICUIX2","C6",18)="2:0:0:0" -^COVERAGE("DICUIX2","C6",19)="2:0:0:0" -^COVERAGE("DICUIX2","C6",20)="2:0:0:0" -^COVERAGE("DICUIX2","C7",0)="2:0:0:0" -^COVERAGE("DICUIX2","C7",7)="2:0:0:0" -^COVERAGE("DICUIX2","COMMON1")="2:0:0:0" -^COVERAGE("DICUIX2","COMMON1",1)="2:0:0:0" -^COVERAGE("DICUIX2","COMMON1",2)="2:0:0:0" -^COVERAGE("DICUIX2","COMMON1",3)="2:0:0:0" -^COVERAGE("DICUIX2","COMMON1",4)="2:0:0:0" -^COVERAGE("DICUIX2","COMMON1",5)="2:0:0:0" -^COVERAGE("DICUIX2","COMMON1",6)="2:0:0:0" -^COVERAGE("DICUIX2","COMMON1",7)="2:0:0:0" -^COVERAGE("DICUIX2","COMMON2")="2:0:0:0" -^COVERAGE("DICUIX2","COMMON2",1)="2:0:0:0" -^COVERAGE("DICUIX2","COMMON2",2)="2:0:0:0" -^COVERAGE("DICUIX2","COMMON2",3)="2:0:0:0" -^COVERAGE("DICUIX2","COMMON2",4)="2:0:0:0" -^COVERAGE("DICUIX2","COMMON2",5)="2:0:0:0" -^COVERAGE("DICUIX2","COMMON2",6)="2:0:0:0" -^COVERAGE("DICUIX2","COMMON2",7)="2:0:0:0" -^COVERAGE("DICUIX2","COMMON2",8)="2:0:0:0" -^COVERAGE("DICUIX2","COMMON2",9)="2:0:0:0" -^COVERAGE("DIEFU","IENX",1)="2:0:0:0" -^COVERAGE("DIEFU","IENX",2)="2:0:0:0" -^COVERAGE("DIEFU","IENX",3)="2:0:0:0" -^COVERAGE("DIEFU","IENX",3,"FOR_LOOP",1)=4 -^COVERAGE("DIEFU","IENX",4)="2:0:0:0" -^COVERAGE("DIEFU","IENX",5)="2:0:0:0" -^COVERAGE("DILF","CREF")="4:0:0:0" -^COVERAGE("DILF","CREF",0)="4:0:0:0" -^COVERAGE("DILF","IENS")="2:0:0:0" -^COVERAGE("DILF","IENS",0)="2:0:0:0" -^COVERAGE("DILF","IENS",1)="2:0:0:0" -^COVERAGE("DILF","OREF")="2:0:0:0" -^COVERAGE("DILF","OREF",0)="2:0:0:0" -^COVERAGE("DILIBF","FNO")="2:0:0:0" -^COVERAGE("DILIBF","FNO",0)="2:0:0:0" -^COVERAGE("DILIBF","FNO",1)="2:0:0:0" -^COVERAGE("DILIBF","FNO",2)="2:0:0:0" -^COVERAGE("DIQGU","ENCREF",0)="4:0:0:0" -^COVERAGE("DIQGU","ENOREF",0)="2:0:0:0" -^COVERAGE("DIQGU","OR2")="2:0:0:0" -^COVERAGE("DIQGU","OR2",0)="2:0:0:0" -^COVERAGE("XINDEX","A2",0)="468:0:4000:4000" -^COVERAGE("XINDEX","A2",1)="467:0:0:0" -^COVERAGE("XINDEX","A2",2)="467:0:0:0" -^COVERAGE("XINDEX","A2",3)="467:4000:0:4000" -^COVERAGE("XINDEX","A2",4)="467:0:4000:4000" -^COVERAGE("XINDEX","A2",5)="467:0:0:0" -^COVERAGE("XINDEX","ALIVE",1)="1:0:0:0" -^COVERAGE("XINDEX","B5",0)="467:188012:220012:408024" -^COVERAGE("XINDEX","B5",0,"FOR_LOOP",1)=44620 -^COVERAGE("XINDEX","B5",1)="467:20000:8000:28000" -^COVERAGE("XINDEX","B5",2)="467:4000:0:4000" -^COVERAGE("XINDEX","B5",3)="467:0:0:0" -^COVERAGE("XINDEX","B5",4)="467:4000:0:4000" -^COVERAGE("XINDEX","B5",5)="467:0:0:0" -^COVERAGE("XINDEX","BEG")="467:2460149:2872194:5332343" -^COVERAGE("XINDEX","BEG",1)="467:8000:0:8000" -^COVERAGE("XINDEX","BEG",2)="467:4000:0:4000" -^COVERAGE("XINDEX","BEG",3)="467:0:4000:4000" -^COVERAGE("XINDEX","BEG",4)="467:0:4000:4000" -^COVERAGE("XINDEX","BEG",5)="467:4001:0:4001" -^COVERAGE("XINDEX","BEG",7)="467:0:0:0" -^COVERAGE("XINDEX","BEG",8)="467:0:0:0" -^COVERAGE("XINDEX","BEG",9)="467:0:0:0" -^COVERAGE("XINDEX","BEG",11)="467:4000:0:4000" -^COVERAGE("XINDEX","BEG",12)="467:0:4000:4000" -^COVERAGE("XINDEX","BEG",14)="467:0:0:0" -^COVERAGE("XINDEX","BEG",15)="467:0:0:0" -^COVERAGE("XINDEX","BEG",16)="467:0:0:0" -^COVERAGE("XINDEX","CD",0)="44620:32001:36002:68003" -^COVERAGE("XINDEX","CD",1)="44620:40002:60004:100006" -^COVERAGE("XINDEX","CD",2)="44620:40001:60002:100003" -^COVERAGE("XINDEX","CD",3)="44620:36002:44004:80006" -^COVERAGE("XINDEX","CD",4)="44620:28000:40002:68002" -^COVERAGE("XINDEX","CD",5)="44620:28002:52001:80003" -^COVERAGE("XINDEX","CD",6)="10770:28003:20000:48003" -^COVERAGE("XINDEX","CD",6,"FOR_LOOP",1)=57531 -^COVERAGE("XINDEX","CD",7)="10770:24004:16000:40004" -^COVERAGE("XINDEX","CD",9)="44620:60005:40004:100009" -^COVERAGE("XINDEX","CD",10)="44620:44003:48005:92008" -^COVERAGE("XINDEX","CD",12)="44620:52004:44002:96006" -^COVERAGE("XINDEX","EE",0)="116081:148007:200014:348021" -^COVERAGE("XINDEX","EE",1)="71461:44004:44002:88006" -^COVERAGE("XINDEX","EE",2)="71461:100007:80003:180010" -^COVERAGE("XINDEX","EE",3)="54870:44001:48001:92002" -^COVERAGE("XINDEX","EE",4)="53608:88008:100009:188017" -^COVERAGE("XINDEX","EE",5)="53608:72006:68004:140010" -^COVERAGE("XINDEX","EE",6)="53608:76005:72004:148009" -^COVERAGE("XINDEX","EE",8)="53608:60003:64005:124008" -^COVERAGE("XINDEX","EE",9)="53608:48003:72003:120006" -^COVERAGE("XINDEX","EE",10)="53608:52002:96008:148010" -^COVERAGE("XINDEX","EE",13)="53608:52003:44001:96004" -^COVERAGE("XINDEX","EE",14)="53608:96007:112006:208013" -^COVERAGE("XINDEX","EE",15)="53608:24001:52004:76005" -^COVERAGE("XINDEX","EE",16)="53608:52005:88007:140012" -^COVERAGE("XINDEX","EE",17)="53608:128008:208017:336025" -^COVERAGE("XINDEX","F")="1559:4000:4001:8001" -^COVERAGE("XINDEX","F",0)="1559:4000:0:4000" -^COVERAGE("XINDEX","G")="1932:56003:96009:152012" -^COVERAGE("XINDEX","G",0)="1932:4000:8002:12002" -^COVERAGE("XINDEX","H")="11:0:0:0" -^COVERAGE("XINDEX","H",0)="11:0:0:0" -^COVERAGE("XINDEX","K")="2218:40001:24002:64003" -^COVERAGE("XINDEX","K",0)="2218:4000:4000:8000" -^COVERAGE("XINDEX","K",1)="2218:0:4001:4001" -^COVERAGE("XINDEX","L")="259:4001:4000:8001" -^COVERAGE("XINDEX","L",0)="259:0:0:0" -^COVERAGE("XINDEX","LN",0)="44620:68005:104005:172010" -^COVERAGE("XINDEX","LN",1)="44620:40001:64004:104005" -^COVERAGE("XINDEX","LN",2)="5073:12000:4001:16001" -^COVERAGE("XINDEX","LN",3)="5073:4000:8000:12000" -^COVERAGE("XINDEX","LN",4)="5073:20001:0:20001" -^COVERAGE("XINDEX","LN",5)="5073:20003:12002:32005" -^COVERAGE("XINDEX","LN",6)="5073:12002:16000:28002" -^COVERAGE("XINDEX","LOAD")="467:88003:196019:284022" -^COVERAGE("XINDEX","LOAD",0)="467:88003:196019:284022" -^COVERAGE("XINDEX","LOAD",1)="467:0:0:0" -^COVERAGE("XINDEX","LOAD",2)="467:0:0:0" -^COVERAGE("XINDEX","M")="30:4000:0:4000" -^COVERAGE("XINDEX","M",0)="30:0:0:0" -^COVERAGE("XINDEX","N")="1721:88005:80004:168009" -^COVERAGE("XINDEX","N",0)="1721:4000:0:4000" -^COVERAGE("XINDEX","POSTRTN")="467:108009:96003:204012" -^COVERAGE("XINDEX","POSTRTN",1)="467:0:0:0" -^COVERAGE("XINDEX","POSTRTN",2)="467:0:0:0" -^COVERAGE("XINDEX","POSTRTN",3)="467:12000:8000:20000" -^COVERAGE("XINDEX","POSTRTN",3,"FOR_LOOP",1)=2558 -^COVERAGE("XINDEX","POSTRTN",4)="2091:0:0:0" -^COVERAGE("XINDEX","POSTRTN",5)="2044:4000:0:4000" -^COVERAGE("XINDEX","POSTRTN",6)="2044:4000:0:4000" -^COVERAGE("XINDEX","POSTRTN",9)="2044:0:0:0" -^COVERAGE("XINDEX","POSTRTN",10)="467:0:4000:4000" -^COVERAGE("XINDEX","POSTRTN",11)="467:12002:16001:28003" -^COVERAGE("XINDEX","POSTRTN",11,"FOR_LOOP",1)=5540 -^COVERAGE("XINDEX","POSTRTN",12)="5073:0:4000:4000" -^COVERAGE("XINDEX","POSTRTN",13)="5073:8000:4000:12000" -^COVERAGE("XINDEX","POSTRTN",14)="5073:0:0:0" -^COVERAGE("XINDEX","POSTRTN",15)="467:0:0:0" -^COVERAGE("XINDEX","POSTRTN",16)="467:28001:20001:48002" -^COVERAGE("XINDEX","POSTRTN",16,"FOR_LOOP",1)=16376 -^COVERAGE("XINDEX","POSTRTN",17)="15909:40006:40001:80007" -^COVERAGE("XINDEX","POSTRTN",18)="15909:0:0:0" -^COVERAGE("XINDEX","POSTRTN",19)="467:0:0:0" -^COVERAGE("XINDEX","Q")="7762:12000:20001:32001" -^COVERAGE("XINDEX","Q",0)="7762:4000:16001:20001" -^COVERAGE("XINDEX","QUOTE")="36371:188012:232009:420021" -^COVERAGE("XINDEX","QUOTE",0)="36371:156010:192008:348018" -^COVERAGE("XINDEX","QUOTE",0,"FOR_LOOP",1)=323268 -^COVERAGE("XINDEX","QUOTE",1)="36371:20002:20001:40003" -^COVERAGE("XINDEX","R")="85:0:8001:8001" -^COVERAGE("XINDEX","R",0)="85:0:0:0" -^COVERAGE("XINDEX","S")="17549:716055:988057:1704112" -^COVERAGE("XINDEX","S",0)="17549:28003:28003:56006" -^COVERAGE("XINDEX","SE2",0)="86891:176010:272017:448027" -^COVERAGE("XINDEX","SE2",1)="85079:264015:376016:640031" -^COVERAGE("XINDEX","SE2",2)="85079:72005:112010:184015" -^COVERAGE("XINDEX","SEP")="107216:736054:648038:1384092" -^COVERAGE("XINDEX","SEP",0)="107216:580045:440030:1020075" -^COVERAGE("XINDEX","SEP",0,"FOR_LOOP",1)=1019212 -^COVERAGE("XINDEX","SEP",1)="107216:120007:144005:264012" -^COVERAGE("XINDEX","SET")="85079:772044:1124063:1896107" -^COVERAGE("XINDEX","SET",0)="85079:176007:168008:344015" -^COVERAGE("XINDEX","SET",0,"FOR_LOOP",1)=74812 -^COVERAGE("XINDEX","SET",1)="85079:64005:144010:208015" -^COVERAGE("XINDEX","ST",0)="44620:68001:56004:124005" -^COVERAGE("XINDEX","ST",2)="44620:260012:376038:636050" -^COVERAGE("XINDEX","ST",2,"FOR_LOOP",1)=85813 -^COVERAGE("XINDEX","ST",2,"FOR_LOOP",2)=126272 -^COVERAGE("XINDEX","ST",3)="44620:224014:184014:408028" -^COVERAGE("XINDEX","ST",4)="44620:0:0:0" -^COVERAGE("XINDEX","U")="72:0:0:0" -^COVERAGE("XINDEX","U",0)="72:0:0:0" -^COVERAGE("XINDEX","W")="4584:156009:200014:356023" -^COVERAGE("XINDEX","W",0)="4584:0:16001:16001" -^COVERAGE("XINDEX","X")="220:0:0:0" -^COVERAGE("XINDEX","X",0)="220:0:0:0" -^COVERAGE("XINDEX","XINDEX")="1:32002:36000:68002" -^COVERAGE("XINDEX","XINDEX",3)="1:0:0:0" -^COVERAGE("XINDX1","A",0)="75:0:4000:4000" -^COVERAGE("XINDX1","A",1)="75:0:0:0" -^COVERAGE("XINDX1","A",2)="75:0:0:0" -^COVERAGE("XINDX1","B",0)="75:0:0:0" -^COVERAGE("XINDX1","B",4)="75:0:0:0" -^COVERAGE("XINDX1","B",6)="75:0:0:0" -^COVERAGE("XINDX1","B",7)="75:0:0:0" -^COVERAGE("XINDX1","E")="73:0:4000:4000" -^COVERAGE("XINDX1","E",0)="73:0:0:0" -^COVERAGE("XINDX1","XINDX1")="2:0:0:0" -^COVERAGE("XINDX1","XINDX1",3)="2:0:0:0" -^COVERAGE("XINDX10","ASK")="1:0:0:0" -^COVERAGE("XINDX10","ASK",1)="1:0:0:0" -^COVERAGE("XINDX10","ASK",2)="1:0:0:0" -^COVERAGE("XINDX10","ASK",3)="1:0:0:0" -^COVERAGE("XINDX10","ASK",8)="1:0:0:0" -^COVERAGE("XINDX2","%")="44620:132010:232014:364024" -^COVERAGE("XINDX2","%",0)="44620:96008:92005:188013" -^COVERAGE("XINDX2","%",0,"FOR_LOOP",1)=62810 -^COVERAGE("XINDX2","%",1)="44620:16001:68003:84004" -^COVERAGE("XINDX2","ARG")="329774:1516089:2124136:3640225" -^COVERAGE("XINDX2","ARG",1)="330498:328020:360021:688041" -^COVERAGE("XINDX2","ARG",2)="262221:228015:296022:524037" -^COVERAGE("XINDX2","ARG",3)="226556:260020:468034:728054" -^COVERAGE("XINDX2","ARG",4)="126854:104004:160011:264015" -^COVERAGE("XINDX2","ARG",5)="117750:136007:148011:284018" -^COVERAGE("XINDX2","ARG",6)="88629:60001:96003:156004" -^COVERAGE("XINDX2","ARG",7)="88424:80005:100006:180011" -^COVERAGE("XINDX2","ARG",8)="86550:72002:108007:180009" -^COVERAGE("XINDX2","ARGG")="18715:288018:352019:640037" -^COVERAGE("XINDX2","ARGG",0)="18715:76007:84005:160012" -^COVERAGE("XINDX2","ARGG",0,"FOR_LOOP",1)=49672 -^COVERAGE("XINDX2","ARGS")="44410:464031:676031:1140062" -^COVERAGE("XINDX2","ARGS",1)="63125:620038:844037:1464075" -^COVERAGE("XINDX2","ARGS",1,"FOR_LOOP",1)=291597 -^COVERAGE("XINDX2","ARGS",2)="63125:24001:60004:84005" -^COVERAGE("XINDX2","DN")="44410:208011:284017:492028" -^COVERAGE("XINDX2","DN",0)="44410:44003:108008:152011" -^COVERAGE("XINDX2","DN",1)="44410:152008:144006:296014" -^COVERAGE("XINDX2","EXT",1)="1970:4000:8001:12001" -^COVERAGE("XINDX2","EXT",2)="1970:0:0:0" -^COVERAGE("XINDX2","EXT",3)="1970:8001:12001:20002" -^COVERAGE("XINDX2","EXT",4)="1970:0:4000:4000" -^COVERAGE("XINDX2","FLUSH")="94:0:0:0" -^COVERAGE("XINDX2","FLUSH",0)="94:0:0:0" -^COVERAGE("XINDX2","FLUSH",1)="94:0:0:0" -^COVERAGE("XINDX2","FLUSH",1,"FOR_LOOP",1)=415 -^COVERAGE("XINDX2","FLUSH",2)="94:0:0:0" -^COVERAGE("XINDX2","FNC")="12:0:0:0" -^COVERAGE("XINDX2","FNC",0)="12:0:0:0" -^COVERAGE("XINDX2","FNC",1)="12:0:0:0" -^COVERAGE("XINDX2","FNC",2)="12:0:0:0" -^COVERAGE("XINDX2","FNC",3)="12:0:0:0" -^COVERAGE("XINDX2","FNC",4)="12:0:0:0" -^COVERAGE("XINDX2","FUN")="29121:340019:424027:764046" -^COVERAGE("XINDX2","FUN",0)="29121:36004:40002:76006" -^COVERAGE("XINDX2","FUN",1)="23452:48002:72003:120005" -^COVERAGE("XINDX2","FUN",2)="23452:20000:44003:64003" -^COVERAGE("XINDX2","FUN",3)="23393:96004:56005:152009" -^COVERAGE("XINDX2","FUN",3,"FOR_LOOP",1)=147754 -^COVERAGE("XINDX2","FUN",4)="23393:48003:56005:104008" -^COVERAGE("XINDX2","FUN",5)="23393:60004:92005:152009" -^COVERAGE("XINDX2","GLO",0)="9104:28002:28001:56003" -^COVERAGE("XINDX2","GLO",1)="9104:12001:20001:32002" -^COVERAGE("XINDX2","GLO",2)="9104:16000:28001:44001" -^COVERAGE("XINDX2","GLO",3)="9104:36002:80004:116006" -^COVERAGE("XINDX2","GLO",4)="9104:8000:4000:12000" -^COVERAGE("XINDX2","INC")="322910:416022:652029:1068051" -^COVERAGE("XINDX2","INC",0)="365505:320019:472020:792039" -^COVERAGE("XINDX2","INC2")="42595:104006:148008:252014" -^COVERAGE("XINDX2","INC2",0)="42595:48001:40003:88004" -^COVERAGE("XINDX2","LOC")="99702:576031:736052:1312083" -^COVERAGE("XINDX2","LOC",0)="99702:144010:156013:300023" -^COVERAGE("XINDX2","LOC",1)="99702:124004:148011:272015" -^COVERAGE("XINDX2","LOC",2)="99702:212011:272014:484025" -^COVERAGE("XINDX2","LOC",3)="99702:52005:96006:148011" -^COVERAGE("XINDX2","NAK",0)="996:0:0:0" -^COVERAGE("XINDX2","NAK",1)="996:0:0:0" -^COVERAGE("XINDX2","PAT")="205:4000:0:4000" -^COVERAGE("XINDX2","PAT",0)="205:0:0:0" -^COVERAGE("XINDX2","PAT",1)="205:4000:0:4000" -^COVERAGE("XINDX2","PAT",1,"FOR_LOOP",1)=457 -^COVERAGE("XINDX2","PAT",2)="205:0:0:0" -^COVERAGE("XINDX2","PATCODE")="457:4000:4000:8000" -^COVERAGE("XINDX2","PATCODE",0)="457:0:4000:4000" -^COVERAGE("XINDX2","PATCODE",1)="358:4000:0:4000" -^COVERAGE("XINDX2","PATCODE",1,"FOR_LOOP",1)=791 -^COVERAGE("XINDX2","PATCODE",2)="358:0:0:0" -^COVERAGE("XINDX2","PATCODE",3)="358:0:0:0" -^COVERAGE("XINDX2","PATCODE",4)="358:0:0:0" -^COVERAGE("XINDX2","PATQ")="99:4000:4000:8000" -^COVERAGE("XINDX2","PATQ",0)="99:0:4000:4000" -^COVERAGE("XINDX2","PATQ",0,"FOR_LOOP",1)=247 -^COVERAGE("XINDX2","PATQ",1)="99:4000:0:4000" -^COVERAGE("XINDX2","PATQ",2)="99:0:0:0" -^COVERAGE("XINDX2","PEEK")="112687:168013:248022:416035" -^COVERAGE("XINDX2","PEEK",0)="112687:120009:164010:284019" -^COVERAGE("XINDX2","PEEKDN")="17373:56002:40000:96002" -^COVERAGE("XINDX2","PEEKDN",0)="17373:48002:32000:80002" -^COVERAGE("XINDX2","REPCNT")="457:0:0:0" -^COVERAGE("XINDX2","REPCNT",0)="457:0:0:0" -^COVERAGE("XINDX2","REPCNT",0,"FOR_LOOP",1)=1004 -^COVERAGE("XINDX2","REPCNT",1)="457:0:0:0" -^COVERAGE("XINDX2","REPCNT",2)="457:0:0:0" -^COVERAGE("XINDX2","SPV",1)="3699:0:8001:8001" -^COVERAGE("XINDX2","SPV",2)="3699:0:0:0" -^COVERAGE("XINDX2","ST")="110835:464030:648049:1112079" -^COVERAGE("XINDX2","ST",0)="110835:192009:248021:440030" -^COVERAGE("XINDX2","ST",1)="110835:100008:156011:256019" -^COVERAGE("XINDX2","ST",2)="110835:76005:116005:192010" -^COVERAGE("XINDX2","TEXT",0)="59:0:0:0" -^COVERAGE("XINDX2","TEXT",1)="59:0:0:0" -^COVERAGE("XINDX2","TEXT",2)="59:0:0:0" -^COVERAGE("XINDX2","TEXT",3)="59:0:0:0" -^COVERAGE("XINDX2","UP")="44410:116012:180012:296024" -^COVERAGE("XINDX2","UP",1)="44410:112012:116006:228018" -^COVERAGE("XINDX2","VA")="5073:16001:20000:36001" -^COVERAGE("XINDX2","VA",0)="5073:4000:12000:16000" -^COVERAGE("XINDX2","VA",1)="5073:8000:4000:12000" -^COVERAGE("XINDX2","VT")="10205:4001:24002:28003" -^COVERAGE("XINDX2","VT",0)="10205:0:8000:8000" -^COVERAGE("XINDX2","VT",1)="10205:0:4000:4000" -^COVERAGE("XINDX3","A",0)="8136:36001:12001:48002" -^COVERAGE("XINDX3","ASM")="312:12001:0:12001" -^COVERAGE("XINDX3","ASM",0)="312:0:0:0" -^COVERAGE("XINDX3","ASM",1)="312:8001:0:8001" -^COVERAGE("XINDX3","ASM",1,"FOR_LOOP",1)=2110 -^COVERAGE("XINDX3","ASM",2)="312:0:0:0" -^COVERAGE("XINDX3","DN")="498:4000:4000:8000" -^COVERAGE("XINDX3","DN",0)="498:0:4000:4000" -^COVERAGE("XINDX3","DN",1)="498:4000:0:4000" -^COVERAGE("XINDX3","FL")="63250:152007:260014:412021" -^COVERAGE("XINDX3","FL",1)="63250:72000:144009:216009" -^COVERAGE("XINDX3","FL",2)="63250:64006:80004:144010" -^COVERAGE("XINDX3","INC")="145482:224018:308026:532044" -^COVERAGE("XINDX3","INC",0)="145482:188015:196015:384030" -^COVERAGE("XINDX3","KL",1)="2218:0:4000:4000" -^COVERAGE("XINDX3","KL1")="28:0:0:0" -^COVERAGE("XINDX3","KL1",0)="28:0:0:0" -^COVERAGE("XINDX3","KL2")="724:4000:28000:32000" -^COVERAGE("XINDX3","KL2",0)="724:0:0:0" -^COVERAGE("XINDX3","KL2",1)="724:0:4000:4000" -^COVERAGE("XINDX3","KL2",2)="724:0:0:0" -^COVERAGE("XINDX3","KL3")="3320:12002:36002:48004" -^COVERAGE("XINDX3","KL3",0)="3320:4000:8000:12000" -^COVERAGE("XINDX3","KL3",1)="3320:4001:4000:8001" -^COVERAGE("XINDX3","KL5",0)="3320:0:20002:20002" -^COVERAGE("XINDX3","MULT")="498:8001:4000:12001" -^COVERAGE("XINDX3","MULT",0)="498:4001:0:4001" -^COVERAGE("XINDX3","MULT",1)="498:4000:4000:8000" -^COVERAGE("XINDX3","MULT",1,"FOR_LOOP",1)=2401 -^COVERAGE("XINDX3","MULT",2)="498:0:0:0" -^COVERAGE("XINDX3","N2",0)="23604:68004:36003:104007" -^COVERAGE("XINDX3","N2",3)="11802:16002:4000:20002" -^COVERAGE("XINDX3","N2",4)="187:0:0:0" -^COVERAGE("XINDX3","N2",5)="187:0:0:0" -^COVERAGE("XINDX3","N2",6)="11628:12001:20002:32003" -^COVERAGE("XINDX3","N2",7)="11628:12000:8000:20000" -^COVERAGE("XINDX3","NE")="779:32002:16001:48003" -^COVERAGE("XINDX3","NE",1)="2500:4000:4000:8000" -^COVERAGE("XINDX3","NE",2)="2500:4000:20000:24000" -^COVERAGE("XINDX3","PEEK")="498:0:0:0" -^COVERAGE("XINDX3","PEEK",0)="498:0:0:0" -^COVERAGE("XINDX3","PEEKDN")="39:0:0:0" -^COVERAGE("XINDX3","PEEKDN",0)="39:0:0:0" -^COVERAGE("XINDX3","RD",0)="85:0:0:0" -^COVERAGE("XINDX3","RD1",0)="278:0:4001:4001" -^COVERAGE("XINDX3","RD1",3)="193:0:4000:4000" -^COVERAGE("XINDX3","RD1",4)="85:0:0:0" -^COVERAGE("XINDX3","RD1",5)="85:0:0:0" -^COVERAGE("XINDX3","RD2")="85:0:4000:4000" -^COVERAGE("XINDX3","RD2",0)="255:0:0:0" -^COVERAGE("XINDX3","RD2",1)="170:0:0:0" -^COVERAGE("XINDX3","RD2",2)="170:0:4000:4000" -^COVERAGE("XINDX3","RD2",3)="85:0:0:0" -^COVERAGE("XINDX3","RD3")="108:0:0:0" -^COVERAGE("XINDX3","RD3",0)="161:0:0:0" -^COVERAGE("XINDX3","RD3",1)="37:0:0:0" -^COVERAGE("XINDX3","RD3",2)="37:0:0:0" -^COVERAGE("XINDX3","S",1)="17579:48005:56003:104008" -^COVERAGE("XINDX3","S2",0)="110559:164008:220011:384019" -^COVERAGE("XINDX3","S2",1)="92980:64007:96005:160012" -^COVERAGE("XINDX3","S2",2)="92980:52004:100005:152009" -^COVERAGE("XINDX3","S2",3)="87238:60005:68003:128008" -^COVERAGE("XINDX3","S2",4)="63916:68007:68004:136011" -^COVERAGE("XINDX3","S2",5)="846:0:0:0" -^COVERAGE("XINDX3","S2",6)="846:0:4000:4000" -^COVERAGE("XINDX3","S2",10)="63916:56004:60003:116007" -^COVERAGE("XINDX3","S2",11)="62481:40002:60003:100005" -^COVERAGE("XINDX3","S2",12)="62313:56003:56005:112008" -^COVERAGE("XINDX3","S2",13)="61815:76007:152010:228017" -^COVERAGE("XINDX3","UP")="498:8000:4000:12000" -^COVERAGE("XINDX3","UP",1)="498:8000:4000:12000" -^COVERAGE("XINDX3","VLN",1)="15909:32002:16001:48003" -^COVERAGE("XINDX3","VLN",2)="15909:44002:28003:72005" -^COVERAGE("XINDX3","VLNF")="15909:120006:60005:180011" -^COVERAGE("XINDX3","VLNF",0)="15909:32002:12001:44003" -^COVERAGE("XINDX4","CNG")="2186:0:24001:24001" -^COVERAGE("XINDX4","CNG",0)="2186:0:0:0" -^COVERAGE("XINDX4","CNG",2)="2186:0:8001:8001" -^COVERAGE("XINDX4","CNG",2,"FOR_LOOP",1)=2202 -^COVERAGE("XINDX4","CNG",3)="2186:0:12000:12000" -^COVERAGE("XINDX4","DG",0)="8937:20003:16000:36003" -^COVERAGE("XINDX4","DG",1)="8937:12000:16001:28001" -^COVERAGE("XINDX4","DG",2)="8937:8001:20002:28003" -^COVERAGE("XINDX4","DG",3)="8937:16000:12000:28000" -^COVERAGE("XINDX4","DG",4)="8937:4000:12001:16001" -^COVERAGE("XINDX4","DG",5)="8937:0:12002:12002" -^COVERAGE("XINDX4","DG",6)="8937:12001:12000:24001" -^COVERAGE("XINDX4","DG",7)="8937:12000:20003:32003" -^COVERAGE("XINDX4","DG",8)="8937:24001:4001:28002" -^COVERAGE("XINDX4","DG",9)="8937:4000:12001:16001" -^COVERAGE("XINDX4","DG",10)="8937:16001:28001:44002" -^COVERAGE("XINDX4","DG",11)="8937:8000:12000:20000" -^COVERAGE("XINDX4","DG",12)="8937:4000:16002:20002" -^COVERAGE("XINDX4","DG",13)="8937:8000:12002:20002" -^COVERAGE("XINDX4","DG",14)="8937:0:4000:4000" -^COVERAGE("XINDX4","DG",15)="8937:36002:32002:68004" -^COVERAGE("XINDX4","DG",16)="8937:8001:4001:12002" -^COVERAGE("XINDX4","DG",17)="8387:12002:4000:16002" -^COVERAGE("XINDX4","DG1")="8449:168011:180013:348024" -^COVERAGE("XINDX4","DG1",0)="8449:12001:16001:28002" -^COVERAGE("XINDX4","FR",0)="525:0:4001:4001" -^COVERAGE("XINDX4","FR",1)="525:0:0:0" -^COVERAGE("XINDX4","FR",2)="525:0:0:0" -^COVERAGE("XINDX4","INSIDE")="2202:4001:32001:36002" -^COVERAGE("XINDX4","INSIDE",0)="2202:0:16000:16000" -^COVERAGE("XINDX4","INSIDE",1)="2202:0:4000:4000" -^COVERAGE("XINDX4","INSIDE",2)="2202:4001:4000:8001" -^COVERAGE("XINDX4","LO",1)="259:0:0:0" -^COVERAGE("XINDX4","LO",2)="259:0:0:0" -^COVERAGE("XINDX4","LO",3)="259:0:0:0" -^COVERAGE("XINDX4","LO",4)="259:0:4000:4000" -^COVERAGE("XINDX4","LO",4,"FOR_LOOP",1)=260 -^COVERAGE("XINDX4","LO",5)="260:0:0:0" -^COVERAGE("XINDX4","LO",6)="260:0:0:0" -^COVERAGE("XINDX4","LO",7)="260:0:0:0" -^COVERAGE("XINDX4","LO",8)="89:0:0:0" -^COVERAGE("XINDX4","LO",9)="89:0:0:0" -^COVERAGE("XINDX4","LO",10)="89:4001:0:4001" -^COVERAGE("XINDX4","LO",12)="259:0:0:0" -^COVERAGE("XINDX4","LO",13)="259:0:0:0" -^COVERAGE("XINDX4","LOOP")="14735:44003:108008:152011" -^COVERAGE("XINDX4","LOOP",0)="14735:28002:72005:100007" -^COVERAGE("XINDX4","LOOP",0,"FOR_LOOP",1)=68121 -^COVERAGE("XINDX4","LOOP",1)="14735:4000:32003:36003" -^COVERAGE("XINDX4","PAREN")="2638:24000:36004:60004" -^COVERAGE("XINDX4","PAREN",0)="2638:4000:8000:12000" -^COVERAGE("XINDX4","PAREN",1)="2638:20000:16001:36001" -^COVERAGE("XINDX4","PAREN",1,"FOR_LOOP",1)=50171 -^COVERAGE("XINDX4","PAREN",2)="2638:0:8002:8002" -^COVERAGE("XINDX4","PAREN",3)="2638:0:0:0" -^COVERAGE("XINDX4","PRUNE")="2186:8001:16001:24002" -^COVERAGE("XINDX4","PRUNE",0)="2186:8001:4000:12001" -^COVERAGE("XINDX4","PRUNE",1)="2186:0:8001:8001" -^COVERAGE("XINDX4","PRUNE",1,"FOR_LOOP",1)=2186 -^COVERAGE("XINDX4","PRUNE",2)="2186:0:4000:4000" -^COVERAGE("XINDX4","PRUNE",2,"FOR_LOOP",1)=2187 -^COVERAGE("XINDX4","PRUNE",3)="2186:0:0:0" -^COVERAGE("XINDX4","Q",1)="747:8000:0:8000" -^COVERAGE("XINDX4","Q",2)="747:0:0:0" -^COVERAGE("XINDX4","QUOTE")="2402:28002:28000:56002" -^COVERAGE("XINDX4","QUOTE",0)="2402:20002:20000:40002" -^COVERAGE("XINDX4","QUOTE",0,"FOR_LOOP",1)=23674 -^COVERAGE("XINDX4","QUOTE",1)="2402:0:0:0" -^COVERAGE("XINDX4","QUOTE",2)="2402:8000:4000:12000" -^COVERAGE("XINDX4","ST")="8937:24000:16002:40002" -^COVERAGE("XINDX4","ST",0)="8937:12000:8000:20000" -^COVERAGE("XINDX4","ST",1)="8937:8000:8002:16002" -^COVERAGE("XINDX4","WR",0)="4584:12001:12000:24001" -^COVERAGE("XINDX4","WR",1)="4584:0:8000:8000" -^COVERAGE("XINDX4","WR",2)="4584:72004:56006:128010" -^COVERAGE("XINDX4","WR",2,"FOR_LOOP",1)=27607 -^COVERAGE("XINDX4","WR",3)="23023:8002:32003:40005" -^COVERAGE("XINDX4","WR",4)="20835:12000:32001:44001" -^COVERAGE("XINDX4","WR",5)="20835:24002:8001:32003" -^COVERAGE("XINDX4","WR",6)="20835:24000:36002:60002" -^COVERAGE("XINDX4","WR",7)="20835:0:0:0" -^COVERAGE("XINDX4","WR",8)="4584:4000:0:4000" -^COVERAGE("XINDX4","XE",0)="220:0:0:0" -^COVERAGE("XINDX4","XE",1)="220:0:0:0" -^COVERAGE("XINDX5","A",0)="468:0:4000:4000" -^COVERAGE("XINDX5","A",1)="467:28002:24000:52002" -^COVERAGE("XINDX5","A",1,"FOR_LOOP",1)=4011 -^COVERAGE("XINDX5","A",2)="467:0:0:0" -^COVERAGE("XINDX5","AA")="3544:48004:68006:116010" -^COVERAGE("XINDX5","AA",0)="3544:8002:16003:24005" -^COVERAGE("XINDX5","AA",1)="1902:0:4000:4000" -^COVERAGE("XINDX5","AA",2)="1902:4001:0:4001" -^COVERAGE("XINDX5","AA",3)="1902:12001:4001:16002" -^COVERAGE("XINDX5","AA",4)="1902:12000:32002:44002" -^COVERAGE("XINDX5","AA",5)="1902:0:0:0" -^COVERAGE("XINDX5","AA",6)="1209:0:0:0" -^COVERAGE("XINDX5","AA",7)="1209:8000:4000:12000" -^COVERAGE("XINDX5","AA",8)="1209:0:0:0" -^COVERAGE("XINDX5","AA",9)="1642:0:4000:4000" -^COVERAGE("XINDX5","AA",10)="1594:0:0:0" -^COVERAGE("XINDX5","AA",11)="1594:4000:4000:8000" -^COVERAGE("XINDX5","AA",12)="1642:0:0:0" -^COVERAGE("XINDX5","B",0)="1:0:0:0" -^COVERAGE("XINDX5","CLEAN",1)="1:0:0:0" -^COVERAGE("XINDX5","CLEAN",2)="1:0:0:0" -^COVERAGE("XINDX5","CLEAN",3)="1:0:0:0" -^COVERAGE("XINDX5","END",0)="1:0:0:0" -^COVERAGE("XINDX5","END",1)="1:0:0:0" -^COVERAGE("XINDX5","END",2)="1:0:0:0" -^COVERAGE("XINDX5","END",3)="1:0:0:0" -^COVERAGE("XINDX5","VTAG")="4320:12000:16001:28001" -^COVERAGE("XINDX5","VTAG",0)="4320:12000:8001:20001" -^COVERAGE("XINDX5","VTAG",1)="4320:0:4000:4000" -^COVERAGE("XINDX5","XINDX5",3)="1:0:0:0" -^COVERAGE("XINDX5","XINDX5",4)="1:0:0:0" -^COVERAGE("XINDX5","XINDX5",5)="1:0:0:0" -^COVERAGE("XINDX5","XINDX5",7)="1:0:0:0" -^COVERAGE("XINDX51","B")="1:0:4001:4001" -^COVERAGE("XINDX51","B",0)="1:0:0:0" -^COVERAGE("XINDX51","B",1)="1:0:0:0" -^COVERAGE("XINDX51","B",3)="1:0:4001:4001" -^COVERAGE("XINDX51","B",3,"FOR_LOOP",1)=468 -^COVERAGE("XINDX51","B",4)="1:0:0:0" -^COVERAGE("XINDX51","B",6)="1:0:0:0" -^COVERAGE("XINDX51","BHDR")="60:0:4000:4000" -^COVERAGE("XINDX51","BHDR",0)="60:0:4000:4000" -^COVERAGE("XINDX51","BHDR",1)="60:0:0:0" -^COVERAGE("XINDX51","END",0)="1:0:0:0" -^COVERAGE("XINDX51","HD")="60:0:0:0" -^COVERAGE("XINDX51","HD",0)="60:0:0:0" -^COVERAGE("XINDX51","HD",1)="60:0:0:0" -^COVERAGE("XINDX51","HD1")="1:0:0:0" -^COVERAGE("XINDX51","HD1",0)="1:0:0:0" -^COVERAGE("XINDX51","HD1",1)="1:0:0:0" -^COVERAGE("XINDX51","HD2")="60:4000:0:4000" -^COVERAGE("XINDX51","HD2",0)="60:4000:0:4000" -^COVERAGE("XINDX51","HD2",1)="60:0:0:0" -^COVERAGE("XINDX51","WAIT")="1:0:0:0" -^COVERAGE("XINDX51","WAIT",0)="1:0:0:0" -^COVERAGE("XINDX51","WAIT",1)="1:0:0:0" -^COVERAGE("XINDX51","WAIT",2)="1:0:0:0" -^COVERAGE("XINDX51","WERR")="60:0:0:0" -^COVERAGE("XINDX51","WERR",0)="60:0:0:0" -^COVERAGE("XINDX51","WERR",1)="60:0:0:0" -^COVERAGE("XINDX51","WERR",2)="60:0:0:0" -^COVERAGE("XINDX51","WERR",2,"FOR_LOOP",1)=135 -^COVERAGE("XINDX51","WERR",3)="75:0:0:0" -^COVERAGE("XINDX51","WERR",4)="75:0:0:0" -^COVERAGE("XINDX51","WERR",5)="75:0:0:0" -^COVERAGE("XINDX51","WERR",6)="75:0:0:0" -^COVERAGE("XINDX51","WERR",7)="60:0:0:0" -^COVERAGE("XINDX51","WORL")="70:0:0:0" -^COVERAGE("XINDX51","WORL",0)="70:0:0:0" -^COVERAGE("XINDX51","WORL",1)="70:0:0:0" -^COVERAGE("XINDX51","WORL",2)="70:0:0:0" -^COVERAGE("XINDX51","WORL",3)="70:0:0:0" -^COVERAGE("XINDX51","WORL",3,"FOR_LOOP",1)=76 -^COVERAGE("XINDX51","WORL",4)="70:0:0:0" -^COVERAGE("XINDX52","CASE")="2:0:0:0" -^COVERAGE("XINDX52","CASE",0)="2:0:0:0" -^COVERAGE("XINDX52","CASE",1)="2:0:0:0" -^COVERAGE("XINDX6","ANS")="2:0:0:0" -^COVERAGE("XINDX6","ANS",0)="2:0:0:0" -^COVERAGE("XINDX6","ANS",1)="2:0:0:0" -^COVERAGE("XINDX6","ANS",1,"FOR_LOOP",1)=2 -^COVERAGE("XINDX6","ANS",2)="2:0:0:0" -^COVERAGE("XINDX6","ASKRTN")="1:4000:0:4000" -^COVERAGE("XINDX6","ASKRTN",1)="1:0:0:0" -^COVERAGE("XINDX6","ASKRTN",1,"FOR_LOOP",1)=468 -^COVERAGE("XINDX6","ASKRTN",2)="1:4000:0:4000" -^COVERAGE("XINDX6","ASKRTN",2,"FOR_LOOP",1)=468 -^COVERAGE("XINDX6","ASKRTN",3)="1:0:0:0" -^COVERAGE("XINDX6","DEVICE",0)="1:0:0:0" -^COVERAGE("XINDX6","DEVICE",2)="1:0:0:0" -^COVERAGE("XINDX6","DEVICE",3)="1:0:0:0" -^COVERAGE("XINDX6","L7",0)="1:0:0:0" -^COVERAGE("XINDX6","L7",1)="1:0:0:0" -^COVERAGE("XINDX6","NY")="1:0:0:0" -^COVERAGE("XINDX6","NY",0)="1:0:0:0" -^COVERAGE("XINDX6","PARAM")="1:0:0:0" -^COVERAGE("XINDX6","PARAM",1)="1:0:0:0" -^COVERAGE("XINDX6","PARAM",2)="1:0:0:0" -^COVERAGE("XINDX6","PARAM",2,"FOR_LOOP",1)=10 -^COVERAGE("XINDX6","PARAM",3)="1:0:0:0" -^COVERAGE("XINDX6","PARAM",4)="1:0:0:0" -^COVERAGE("XINDX6","PARAM",5)="1:0:0:0" -^COVERAGE("XINDX6","PARAM",6)="1:0:0:0" -^COVERAGE("XINDX6","PARAM",7)="1:0:0:0" -^COVERAGE("XINDX6","RD")="2:0:0:0" -^COVERAGE("XINDX6","RD",0)="2:0:0:0" -^COVERAGE("XINDX6","XINDX6",5)="1:0:0:0" -^COVERAGE("XINDX6","XINDX6",6)="1:0:0:0" -^COVERAGE("XINDX6","XINDX6",7)="1:0:0:0" -^COVERAGE("XINDX6","XINDX6",8)="1:0:0:0" -^COVERAGE("XINDX6","XINDX6",9)="1:0:0:0" -^COVERAGE("XINDX6","XINDX6",10)="1:0:0:0" -^COVERAGE("XINDX6","XINDX6",11)="1:0:0:0" -^COVERAGE("XINDX6","XINDX6",12)="1:0:0:0" -^COVERAGE("XINDX6","XINDX6",13)="1:0:0:0" -^COVERAGE("XINDX6","YN")="1:0:0:0" -^COVERAGE("XINDX6","YN",0)="1:0:0:0" -^COVERAGE("XINDX7","BUILD")="1:0:0:0" -^COVERAGE("XINDX7","BUILD",0)="1:0:0:0" -^COVERAGE("XINDX7","BUILD",1)="1:0:0:0" -^COVERAGE("XINDX7","BUILD",1,"FOR_LOOP",1)=10 -^COVERAGE("XINDX7","BUILD",2)="9:0:0:0" -^COVERAGE("XINDX7","BUILD",3)="6:0:0:0" -^COVERAGE("XINDX7","BUILD",3,"FOR_LOOP",1)=85 -^COVERAGE("XINDX7","BUILD",4)="79:0:0:0" -^COVERAGE("XINDX7","BUILD",5)="79:0:0:0" -^COVERAGE("XINDX7","BUILD",6)="6:0:0:0" -^COVERAGE("XINDX7","BUILD",7)="1:0:0:0" -^COVERAGE("XINDX7","HDR")="2:0:0:0" -^COVERAGE("XINDX7","HDR",0)="2:0:0:0" -^COVERAGE("XINDX7","HDR",1)="2:0:0:0" -^COVERAGE("XINDX7","HDR",2)="1:0:0:0" -^COVERAGE("XINDX7","HDR",3)="1:0:0:0" -^COVERAGE("XINDX7","HDR",4)="1:0:0:0" -^COVERAGE("XINDX7","HDR",5)="1:0:0:0" -^COVERAGE("XINDX7","HDR",6)="2:0:0:0" -^COVERAGE("XINDX7","HDR",7)="2:0:0:0" -^COVERAGE("XINDX7","SETUP")="1:0:0:0" -^COVERAGE("XINDX7","SETUP",1)="1:0:0:0" -^COVERAGE("XINDX7","SETUP",2)="1:0:0:0" -^COVERAGE("XINDX7","SETUP",3)="1:0:0:0" -^COVERAGE("XINDX7","SETUP",4)="1:0:0:0" -^COVERAGE("XINDX7","SETUP",6)="1:0:0:0" -^COVERAGE("XINDX7","SETUP",7)="1:0:0:0" -^COVERAGE("XINDX7","SETUP",7,"FOR_LOOP",1)=468 -^COVERAGE("XINDX7","SETUP",8)="1:0:0:0" -^COVERAGE("XINDX7","SETUP",9)="1:0:0:0" -^COVERAGE("XINDX7","SETUP",10)="1:0:0:0" -^COVERAGE("XINDX9","ADD")="406841:436032:684041:1120073" -^COVERAGE("XINDX9","ADD",0)="598820:552042:692040:1244082" -^COVERAGE("XINDX9","AR")="197699:748039:1052073:1800112" -^COVERAGE("XINDX9","AR",0)="197699:708036:936061:1644097" -^COVERAGE("XINDX9","CASE")="23461:28003:92005:120008" -^COVERAGE("XINDX9","CASE",0)="23461:12002:48003:60005" -^COVERAGE("XINDX9","CASE",1)="23461:12001:28000:40001" -^COVERAGE("XINDX9","DN")="45002:204010:248016:452026" -^COVERAGE("XINDX9","DN",0)="45002:176008:196011:372019" -^COVERAGE("XINDX9","DN",1)="45002:16001:24003:40004" -^COVERAGE("XINDX9","EXT",1)="1970:4000:12001:16001" -^COVERAGE("XINDX9","FNC")="29146:96005:104009:200014" -^COVERAGE("XINDX9","FNC",0)="29146:28001:20003:48004" -^COVERAGE("XINDX9","FNC",1)="29146:44002:72005:116007" -^COVERAGE("XINDX9","FNC",2)="12:0:0:0" -^COVERAGE("XINDX9","FNC",3)="12:0:0:0" -^COVERAGE("XINDX9","FUNC")="29134:284015:400024:684039" -^COVERAGE("XINDX9","FUNC",1)="29134:112005:120007:232012" -^COVERAGE("XINDX9","FUNC",2)="23461:48003:72004:120007" -^COVERAGE("XINDX9","FUNC",3)="23461:20000:32001:52001" -^COVERAGE("XINDX9","FX",0)="23461:68004:116009:184013" -^COVERAGE("XINDX9","GVAR")="29134:96004:180015:276019" -^COVERAGE("XINDX9","GVAR",0)="29134:28000:44003:72003" -^COVERAGE("XINDX9","GVAR",1)="29134:32001:72005:104006" -^COVERAGE("XINDX9","GVAR",2)="29134:16000:24002:40002" -^COVERAGE("XINDX9","INC")="29134:64003:64007:128010" -^COVERAGE("XINDX9","INC",0)="29134:20001:12001:32002" -^COVERAGE("XINDX9","INC",1)="29134:32002:40004:72006" -^COVERAGE("XINDX9","NEW")="287703:532032:660032:1192064" -^COVERAGE("XINDX9","NEW",0)="287703:200012:244014:444026" -^COVERAGE("XINDX9","NEW",1)="287703:220014:248008:468022" -^COVERAGE("XINDX9","NUM")="45379:292023:340026:632049" -^COVERAGE("XINDX9","NUM",0)="45379:92006:84006:176012" -^COVERAGE("XINDX9","NUM",0,"FOR_LOOP",1)=71145 -^COVERAGE("XINDX9","NUM",1)="45379:40005:48002:88007" -^COVERAGE("XINDX9","NUM",2)="45379:40004:56005:96009" -^COVERAGE("XINDX9","NUM",3)="45379:76003:88008:164011" -^COVERAGE("XINDX9","NUM",4)="45379:24003:40003:64006" -^COVERAGE("XINDX9","PA2",0)="518346:544028:668032:1212060" -^COVERAGE("XINDX9","PA2",1)="472665:532043:620035:1152078" -^COVERAGE("XINDX9","PA2",2)="317803:264019:292021:556040" -^COVERAGE("XINDX9","PA2",3)="317803:200013:324018:524031" -^COVERAGE("XINDX9","PA2",4)="307072:348020:492025:840045" -^COVERAGE("XINDX9","PA2",5)="197397:160015:296011:456026" -^COVERAGE("XINDX9","PA2",6)="152018:120016:132005:252021" -^COVERAGE("XINDX9","PA2",7)="152018:116009:112008:228017" -^COVERAGE("XINDX9","PA2",8)="151813:96008:168010:264018" -^COVERAGE("XINDX9","PA2",9)="151813:100008:172009:272017" -^COVERAGE("XINDX9","PA2",10)="151813:220008:324022:544030" -^COVERAGE("XINDX9","PA2",11)="151813:168011:152010:320021" -^COVERAGE("XINDX9","PA2",12)="151813:128009:148012:276021" -^COVERAGE("XINDX9","PA2",13)="151813:136005:104009:240014" -^COVERAGE("XINDX9","PARSE")="45681:3356226:4340257:7696483" -^COVERAGE("XINDX9","PARSE",0)="45681:104007:108007:212014" -^COVERAGE("XINDX9","PAT")="205:0:0:0" -^COVERAGE("XINDX9","PAT",0)="205:0:0:0" -^COVERAGE("XINDX9","PAT",1)="205:0:0:0" -^COVERAGE("XINDX9","PAT",1,"FOR_LOOP",1)=1185 -^COVERAGE("XINDX9","PAT",2)="205:0:0:0" -^COVERAGE("XINDX9","PAT",3)="205:0:0:0" -^COVERAGE("XINDX9","PAT",4)="205:0:0:0" -^COVERAGE("XINDX9","PATC")="28:0:0:0" -^COVERAGE("XINDX9","PATC",0)="28:0:0:0" -^COVERAGE("XINDX9","PATQ")="99:0:8000:8000" -^COVERAGE("XINDX9","PATQ",0)="99:0:0:0" -^COVERAGE("XINDX9","PATQ",0,"FOR_LOOP",1)=247 -^COVERAGE("XINDX9","PATQ",1)="99:0:0:0" -^COVERAGE("XINDX9","PATQ",2)="99:0:8000:8000" -^COVERAGE("XINDX9","PATU")="15:0:0:0" -^COVERAGE("XINDX9","PATU",0)="15:0:0:0" -^COVERAGE("XINDX9","PEND",0)="45681:68001:140014:208015" -^COVERAGE("XINDX9","PEND",1)="45681:36004:52005:88009" -^COVERAGE("XINDX9","QUOTE")="35724:244013:304019:548032" -^COVERAGE("XINDX9","QUOTE",0)="36272:172010:140009:312019" -^COVERAGE("XINDX9","QUOTE",0,"FOR_LOOP",1)=323021 -^COVERAGE("XINDX9","QUOTE",1)="36272:28001:72004:100005" -^COVERAGE("XINDX9","QUOTE",2)="35724:28001:24003:52004" -^COVERAGE("XINDX9","QUOTE",3)="35724:16001:52002:68003" -^COVERAGE("XINDX9","SPV",0)="3703:4000:12000:16000" -^COVERAGE("XINDX9","SPV",1)="3703:8001:4000:12001" -^COVERAGE("XINDX9","SPV",2)="3703:8001:4000:12001" -^COVERAGE("XINDX9","SPV",3)="3703:4000:8001:12001" -^COVERAGE("XINDX9","STR")="287703:560037:724043:1284080" -^COVERAGE("XINDX9","STR",0)="287703:300018:312020:612038" -^COVERAGE("XINDX9","SUM")="213322:612034:916052:1528086" -^COVERAGE("XINDX9","SUM",0)="213322:160009:208011:368020" -^COVERAGE("XINDX9","SUM",1)="213322:212007:280018:492025" -^COVERAGE("XINDX9","SUM",2)="213322:136012:268012:404024" -^COVERAGE("XINDX9","UP")="45002:396026:440029:836055" -^COVERAGE("XINDX9","UP",0)="45002:24003:44001:68004" -^COVERAGE("XINDX9","UP",1)="45002:180008:192016:372024" -^COVERAGE("XINDX9","UP",2)="45002:136010:128005:264015" -^COVERAGE("XINDX9","UP",3)="45002:40003:52003:92006" -^COVERAGE("XINDX9","VAR")="138809:828044:1004072:1832116" -^COVERAGE("XINDX9","VAR",0)="138809:376018:336017:712035" -^COVERAGE("XINDX9","VAR",0,"FOR_LOOP",1)=462128 -^COVERAGE("XINDX9","VAR",1)="138809:292018:376034:668052" -^COVERAGE("XINDX9","VAR",2)="138809:116003:144008:260011" -^COVERAGE("XINDX9","XINDX9")="45681:296016:320021:616037" -^COVERAGE("XINDX9","XINDX9",3)="45681:52003:128006:180009" -^COVERAGE("XINDX9","XINDX9",4)="45681:164006:112008:276014" -^COVERAGE("XINDX9","XINDX9",4,"FOR_LOOP",1)=128269 -^COVERAGE("XINDX9","XINDX9",5)="45681:48004:52005:100009" -^COVERAGE("XLFDT","DT")="1:0:0:0" -^COVERAGE("XLFDT","DT",0)="1:0:0:0" -^COVERAGE("XLFDT","DT",1)="1:0:0:0" -^COVERAGE("XLFDT","HR")="3:0:0:0" -^COVERAGE("XLFDT","HR",0)="3:0:0:0" -^COVERAGE("XLFDT","HR",1)="3:0:0:0" -^COVERAGE("XLFDT","HTE")="1:0:0:0" -^COVERAGE("XLFDT","HTE",0)="1:0:0:0" -^COVERAGE("XLFDT","HTE",1)="1:0:0:0" -^COVERAGE("XLFDT","HTE",2)="1:0:0:0" -^COVERAGE("XLFDT","HTE",3)="1:0:0:0" -^COVERAGE("XLFDT","HTFM")="2:0:0:0" -^COVERAGE("XLFDT","HTFM",0)="2:0:0:0" -^COVERAGE("XLFDT","HTFM",1)="2:0:0:0" -^COVERAGE("XLFDT","HTFM",2)="2:0:0:0" -^COVERAGE("XLFDT","HTFM",3)="2:0:0:0" -^COVERAGE("XLFDT","HTFM",4)="2:0:0:0" -^COVERAGE("XLFDT","HTFM",5)="2:0:0:0" -^COVERAGE("XLFDT","T2",0)="1:0:0:0" -^COVERAGE("XLFDT","T2",1)="1:0:0:0" -^COVERAGE("XLFDT","YMD")="2:0:0:0" -^COVERAGE("XLFDT","YMD",1)="2:0:0:0" -^COVERAGE("XLFDT","YMD",2)="2:0:0:0" -^COVERAGE("XLFDT","YMD",3)="2:0:0:0" -^COVERAGE("XLFDT","YMD",4)="2:0:0:0" -^COVERAGE("XLFDT","YMD",5)="2:0:0:0" -^COVERAGE("XLFDT1","F1",1)="1:0:0:0" -^COVERAGE("XLFDT1","FMT")="1:0:0:0" -^COVERAGE("XLFDT1","FMT",1)="1:0:0:0" -^COVERAGE("XLFDT1","FMT",2)="1:0:0:0" -^COVERAGE("XLFDT1","M")="1:0:0:0" -^COVERAGE("XLFDT1","M",0)="1:0:0:0" -^COVERAGE("XLFDT1","TM",1)="1:0:0:0" -^COVERAGE("XLFDT1","TM",2)="1:0:0:0" -^COVERAGE("XLFDT1","TM",3)="1:0:0:0" -^COVERAGE("XLFDT1","TM",7)="1:0:0:0" -^COVERAGE("XPDRSUM","SUMB")="467:1808124:180014:1988138" -^COVERAGE("XPDRSUM","SUMB",0)="467:8000:0:8000" -^COVERAGE("XPDRSUM","SUMB",2)="467:0:0:0" -^COVERAGE("XPDRSUM","SUMB",3)="467:1796124:180014:1976138" -^COVERAGE("XPDRSUM","SUMB",3,"FOR_LOOP",1)=44620 -^COVERAGE("XPDRSUM","SUMB",3,"FOR_LOOP",2)=1566704 -^COVERAGE("XPDRSUM","SUMB",4)="467:0:0:0" -^COVERAGE("XTRUTL1","BUILD")="1:0:0:0" -^COVERAGE("XTRUTL1","BUILD",0)="1:0:0:0" -^COVERAGE("XTRUTL1","BUILD",1)="1:0:0:0" -^COVERAGE("XTRUTL1","BUILD",2)="1:0:0:0" -^COVERAGE("XTRUTL1","BUILD",3)="1:0:0:0" +^ZZCOVERAGE("%RSEL","SRC")="1:0:0:0" +^ZZCOVERAGE("%RSEL","SRC",1)="1:0:0:0" +^ZZCOVERAGE("%RSEL","SRC",2)="1:0:0:0" +^ZZCOVERAGE("%RSEL","SRC",3)="1:0:0:0" +^ZZCOVERAGE("%RSEL","SRC",4)="1:0:0:0" +^ZZCOVERAGE("%RSEL","SRC",5)="1:0:0:0" +^ZZCOVERAGE("%RSEL","SRC",6)="1:0:0:0" +^ZZCOVERAGE("%RSEL","SRC",7)="1:0:0:0" +^ZZCOVERAGE("%RSEL","init")="1:0:0:0" +^ZZCOVERAGE("%RSEL","init",1)="1:0:0:0" +^ZZCOVERAGE("%RSEL","init",3)="1:0:0:0" +^ZZCOVERAGE("%RSEL","init",4)="1:0:0:0" +^ZZCOVERAGE("%RSEL","init",5)="1:0:0:0" +^ZZCOVERAGE("%RSEL","init",6)="1:0:0:0" +^ZZCOVERAGE("%RSEL","init",7)="1:0:0:0" +^ZZCOVERAGE("%RSEL","init",8)="1:0:0:0" +^ZZCOVERAGE("%RSEL","init",8,"FOR_LOOP",1)=1 +^ZZCOVERAGE("%RSEL","init",9)="1:0:0:0" +^ZZCOVERAGE("%RSEL","init",10)="1:0:0:0" +^ZZCOVERAGE("%RSEL","init",11)="1:0:0:0" +^ZZCOVERAGE("%RSEL","init",12)="1:0:0:0" +^ZZCOVERAGE("%RSEL","init",13)="1:0:0:0" +^ZZCOVERAGE("%RSEL","init",14)="1:0:0:0" +^ZZCOVERAGE("%RSEL","init",15)="1:0:0:0" +^ZZCOVERAGE("%RSEL","init",16)="1:0:0:0" +^ZZCOVERAGE("%RSEL","init",17)="1:0:0:0" +^ZZCOVERAGE("%RSEL","init",17,"FOR_LOOP",1)=2 +^ZZCOVERAGE("%RSEL","init",18)="2:0:0:0" +^ZZCOVERAGE("%RSEL","init",19)="2:0:0:0" +^ZZCOVERAGE("%RSEL","init",20)="2:0:0:0" +^ZZCOVERAGE("%RSEL","init",40)="1:0:0:0" +^ZZCOVERAGE("%RSEL","main")="1:32001:84004:116005" +^ZZCOVERAGE("%RSEL","main",1)="1:0:0:0" +^ZZCOVERAGE("%RSEL","main",2)="1:0:0:0" +^ZZCOVERAGE("%RSEL","main",3)="1:0:0:0" +^ZZCOVERAGE("%RSEL","main",3,"FOR_LOOP",1)=468 +^ZZCOVERAGE("%RSEL","main",4)="468:0:24003:24003" +^ZZCOVERAGE("%RSEL","main",5)="468:0:0:0" +^ZZCOVERAGE("%RSEL","main",6)="468:32001:48001:80002" +^ZZCOVERAGE("%RSEL","main",7)="467:0:12000:12000" +^ZZCOVERAGE("%RSEL","main",8)="467:0:0:0" +^ZZCOVERAGE("%RSEL","main",9)="467:0:0:0" +^ZZCOVERAGE("%RSEL","main",10)="467:0:0:0" +^ZZCOVERAGE("%RSEL","main",11)="1:0:0:0" +^ZZCOVERAGE("%RSEL","main",12)="1:0:0:0" +^ZZCOVERAGE("%RSEL","main",13)="1:0:0:0" +^ZZCOVERAGE("%RSEL","main",14)="1:0:0:0" +^ZZCOVERAGE("%RSEL","next")="1403:12001:20002:32003" +^ZZCOVERAGE("%RSEL","next",0)="1403:0:0:0" +^ZZCOVERAGE("%RSEL","next",1)="1403:12001:20002:32003" +^ZZCOVERAGE("%RSEL","next",1,"FOR_LOOP",1)=1403 +^ZZCOVERAGE("%RSEL","next",2)="1403:0:0:0" +^ZZCOVERAGE("%RSEL","save")="467:0:4001:4001" +^ZZCOVERAGE("%RSEL","save",1)="467:0:0:0" +^ZZCOVERAGE("%RSEL","save",5)="467:0:0:0" +^ZZCOVERAGE("%RSEL","save",6)="467:0:0:0" +^ZZCOVERAGE("%RSEL","save",7)="467:0:0:0" +^ZZCOVERAGE("%RSEL","save",8)="467:0:4001:4001" +^ZZCOVERAGE("%RSEL","save",9)="467:0:0:0" +^ZZCOVERAGE("%RSEL","search")="934:0:16001:16001" +^ZZCOVERAGE("%RSEL","search",0)="934:0:4000:4000" +^ZZCOVERAGE("%RSEL","search",1)="934:0:0:0" +^ZZCOVERAGE("%RSEL","search",2)="934:0:4001:4001" +^ZZCOVERAGE("%RSEL","search",2,"FOR_LOOP",1)=1868 +^ZZCOVERAGE("%RSEL","search",3)="934:0:8000:8000" +^ZZCOVERAGE("%RSEL","search",4)="934:0:0:0" +^ZZCOVERAGE("%RSEL","search",5)="934:0:0:0" +^ZZCOVERAGE("%RSEL","start")="468:0:4001:4001" +^ZZCOVERAGE("%RSEL","start",0)="468:0:0:0" +^ZZCOVERAGE("%RSEL","start",1)="468:0:0:0" +^ZZCOVERAGE("%RSEL","start",2)="468:0:0:0" +^ZZCOVERAGE("%RSEL","start",2,"FOR_LOOP",1)=936 +^ZZCOVERAGE("%RSEL","start",3)="468:0:0:0" +^ZZCOVERAGE("%RSEL","work")="467:20002:24001:44003" +^ZZCOVERAGE("%RSEL","work",1)="467:0:0:0" +^ZZCOVERAGE("%RSEL","work",2)="467:0:0:0" +^ZZCOVERAGE("%RSEL","work",3)="467:0:4000:4000" +^ZZCOVERAGE("%RSEL","work",4)="467:0:0:0" +^ZZCOVERAGE("%RSEL","work",6)="467:4000:12000:16000" +^ZZCOVERAGE("%RSEL","work",6,"FOR_LOOP",1)=3421 +^ZZCOVERAGE("%RSEL","work",7)="467:0:0:0" +^ZZCOVERAGE("%RSEL","work",8)="467:4001:0:4001" +^ZZCOVERAGE("%RSEL","work",9)="467:0:0:0" +^ZZCOVERAGE("%RSEL","work",10)="467:0:0:0" +^ZZCOVERAGE("%RSEL","work",11)="467:0:0:0" +^ZZCOVERAGE("%RSEL","work",12)="467:4000:0:4000" +^ZZCOVERAGE("%RSEL","work",13)="467:0:4000:4000" +^ZZCOVERAGE("%RSEL","work",14)="467:0:0:0" +^ZZCOVERAGE("%RSEL","work",15)="467:4001:4001:8002" +^ZZCOVERAGE("%RSEL","work",15,"FOR_LOOP",1)=934 +^ZZCOVERAGE("%RSEL","work",16)="467:0:0:0" +^ZZCOVERAGE("%ZIS","%ZIS")="2:0:0:0" +^ZZCOVERAGE("%ZIS","%ZIS",3)="2:0:0:0" +^ZZCOVERAGE("%ZIS","%ZIS",4)="2:0:0:0" +^ZZCOVERAGE("%ZIS","A",0)="2:0:0:0" +^ZZCOVERAGE("%ZIS","A",1)="2:0:0:0" +^ZZCOVERAGE("%ZIS","CLEAN")="3:0:0:0" +^ZZCOVERAGE("%ZIS","CLEAN",1)="3:0:0:0" +^ZZCOVERAGE("%ZIS","CLEAN",2)="3:0:0:0" +^ZZCOVERAGE("%ZIS","CLEAN",3)="3:0:0:0" +^ZZCOVERAGE("%ZIS","CLEAN",4)="3:0:0:0" +^ZZCOVERAGE("%ZIS","GETHOME")="2:0:0:0" +^ZZCOVERAGE("%ZIS","GETHOME",0)="2:0:0:0" +^ZZCOVERAGE("%ZIS","GETHOME",1)="1:0:0:0" +^ZZCOVERAGE("%ZIS","GETHOME",3)="1:0:0:0" +^ZZCOVERAGE("%ZIS","GETHOME",4)="1:0:0:0" +^ZZCOVERAGE("%ZIS","GETHOME",5)="1:0:0:0" +^ZZCOVERAGE("%ZIS","GETHOME",6)="1:0:0:0" +^ZZCOVERAGE("%ZIS","GETHOME",7)="1:0:0:0" +^ZZCOVERAGE("%ZIS","HOME")="1:0:0:0" +^ZZCOVERAGE("%ZIS","HOME",1)="1:0:0:0" +^ZZCOVERAGE("%ZIS","HOME",2)="1:0:0:0" +^ZZCOVERAGE("%ZIS","INIT",1)="2:0:0:0" +^ZZCOVERAGE("%ZIS","INIT",3)="2:0:0:0" +^ZZCOVERAGE("%ZIS","INIT",4)="2:0:0:0" +^ZZCOVERAGE("%ZIS","INIT",5)="2:0:0:0" +^ZZCOVERAGE("%ZIS","INIT",6)="2:0:0:0" +^ZZCOVERAGE("%ZIS","INIT",8)="2:0:0:0" +^ZZCOVERAGE("%ZIS","INIT",10)="2:0:0:0" +^ZZCOVERAGE("%ZIS","INIT",11)="2:0:0:0" +^ZZCOVERAGE("%ZIS","INIT",12)="2:0:0:0" +^ZZCOVERAGE("%ZIS","INIT",13)="2:0:0:0" +^ZZCOVERAGE("%ZIS","INIT",15)="2:0:0:0" +^ZZCOVERAGE("%ZIS","K2",0)="2:0:0:0" +^ZZCOVERAGE("%ZIS","K2",1)="2:0:0:0" +^ZZCOVERAGE("%ZIS","K2",2)="2:0:0:0" +^ZZCOVERAGE("%ZIS","K2",4)="2:0:0:0" +^ZZCOVERAGE("%ZIS","VIRTUAL")="2:0:0:0" +^ZZCOVERAGE("%ZIS","VIRTUAL",4)="2:0:0:0" +^ZZCOVERAGE("%ZIS","VIRTUAL",4,"FOR_LOOP",1)=6 +^ZZCOVERAGE("%ZIS","VIRTUAL",5)="2:0:0:0" +^ZZCOVERAGE("%ZIS","VIRTUAL",7)="2:0:0:0" +^ZZCOVERAGE("%ZIS","VTLKUP")="4:0:0:0" +^ZZCOVERAGE("%ZIS","VTLKUP",0)="4:0:0:0" +^ZZCOVERAGE("%ZIS","VTLKUP",0,"FOR_LOOP",1)=8 +^ZZCOVERAGE("%ZIS","VTLKUP",1)="4:0:0:0" +^ZZCOVERAGE("%ZIS1","EX2",1)="2:0:0:0" +^ZZCOVERAGE("%ZIS1","EX2",2)="2:0:0:0" +^ZZCOVERAGE("%ZIS1","EXIT",1)="2:0:0:0" +^ZZCOVERAGE("%ZIS1","EXIT",3)="2:0:0:0" +^ZZCOVERAGE("%ZIS1","EXIT",5)="2:0:0:0" +^ZZCOVERAGE("%ZIS1","EXIT",6)="2:0:0:0" +^ZZCOVERAGE("%ZIS1","EXIT",7)="2:0:0:0" +^ZZCOVERAGE("%ZIS1","EXIT",8)="2:0:0:0" +^ZZCOVERAGE("%ZIS1","EXIT",9)="2:0:0:0" +^ZZCOVERAGE("%ZIS1","G",0)="2:0:0:0" +^ZZCOVERAGE("%ZIS1","IOP")="1:0:0:0" +^ZZCOVERAGE("%ZIS1","IOP",1)="1:0:0:0" +^ZZCOVERAGE("%ZIS1","K2")="2:0:0:0" +^ZZCOVERAGE("%ZIS1","K2",1)="4:0:0:0" +^ZZCOVERAGE("%ZIS1","K2",2)="4:0:0:0" +^ZZCOVERAGE("%ZIS1","K2",3)="4:0:0:0" +^ZZCOVERAGE("%ZIS1","K2",4)="4:0:0:0" +^ZZCOVERAGE("%ZIS1","KIL",1)="2:0:0:0" +^ZZCOVERAGE("%ZIS1","KIL",2)="2:0:0:0" +^ZZCOVERAGE("%ZIS1","KIL",3)="2:0:0:0" +^ZZCOVERAGE("%ZIS1","L1",1)="2:0:0:0" +^ZZCOVERAGE("%ZIS1","L1",2)="2:0:0:0" +^ZZCOVERAGE("%ZIS1","L1",3)="2:0:0:0" +^ZZCOVERAGE("%ZIS1","L1",4)="2:0:0:0" +^ZZCOVERAGE("%ZIS1","L1",5)="2:0:0:0" +^ZZCOVERAGE("%ZIS1","L1",6)="2:0:0:0" +^ZZCOVERAGE("%ZIS1","L1",7)="2:0:0:0" +^ZZCOVERAGE("%ZIS1","L1",8)="2:0:0:0" +^ZZCOVERAGE("%ZIS1","L1",9)="2:0:0:0" +^ZZCOVERAGE("%ZIS1","L1",10)="2:0:0:0" +^ZZCOVERAGE("%ZIS1","L1",11)="2:0:0:0" +^ZZCOVERAGE("%ZIS1","L1",12)="2:0:0:0" +^ZZCOVERAGE("%ZIS1","LKUP")="2:0:0:0" +^ZZCOVERAGE("%ZIS1","LKUP",1)="2:0:0:0" +^ZZCOVERAGE("%ZIS1","LKUP",2)="2:0:0:0" +^ZZCOVERAGE("%ZIS1","LKUP",3)="2:0:0:0" +^ZZCOVERAGE("%ZIS1","MAIN",2)="2:0:0:0" +^ZZCOVERAGE("%ZIS1","R")="1:0:0:0" +^ZZCOVERAGE("%ZIS1","R",0)="1:0:0:0" +^ZZCOVERAGE("%ZIS1","R",1)="1:0:0:0" +^ZZCOVERAGE("%ZIS1","R",2)="1:0:0:0" +^ZZCOVERAGE("%ZIS1","RD",0)="1:0:0:0" +^ZZCOVERAGE("%ZIS1","RD",1)="1:0:0:0" +^ZZCOVERAGE("%ZIS1","RD",2)="1:0:0:0" +^ZZCOVERAGE("%ZIS1","RD",3)="1:0:0:0" +^ZZCOVERAGE("%ZIS1","RD",4)="1:0:0:0" +^ZZCOVERAGE("%ZIS1","RD",5)="1:0:0:0" +^ZZCOVERAGE("%ZIS1","SBR")="1:0:0:0" +^ZZCOVERAGE("%ZIS1","SBR",1)="1:0:0:0" +^ZZCOVERAGE("%ZIS1","SBR",2)="1:0:0:0" +^ZZCOVERAGE("%ZIS1","SBR",3)="1:0:0:0" +^ZZCOVERAGE("%ZIS1","SETQ")="2:0:0:0" +^ZZCOVERAGE("%ZIS1","SETQ",1)="2:0:0:0" +^ZZCOVERAGE("%ZIS1","SETQ",2)="2:0:0:0" +^ZZCOVERAGE("%ZIS1","SETQ",3)="2:0:0:0" +^ZZCOVERAGE("%ZIS1","SETQ",4)="2:0:0:0" +^ZZCOVERAGE("%ZIS1","SETQ",5)="2:0:0:0" +^ZZCOVERAGE("%ZIS1","SETVAR",1)="2:0:0:0" +^ZZCOVERAGE("%ZIS1","SETVAR",2)="2:0:0:0" +^ZZCOVERAGE("%ZIS1","SETVAR",5)="2:0:0:0" +^ZZCOVERAGE("%ZIS1","SETVAR",7)="2:0:0:0" +^ZZCOVERAGE("%ZIS1","SETVAR",8)="2:0:0:0" +^ZZCOVERAGE("%ZIS1","SETVAR",9)="2:0:0:0" +^ZZCOVERAGE("%ZIS1","SETVAR",10)="2:0:0:0" +^ZZCOVERAGE("%ZIS1","SETVAR",11)="2:0:0:0" +^ZZCOVERAGE("%ZIS1","SETVAR",12)="2:0:0:0" +^ZZCOVERAGE("%ZIS1","SETVAR",13)="2:0:0:0" +^ZZCOVERAGE("%ZIS2","CHECK",1)="2:0:0:0" +^ZZCOVERAGE("%ZIS2","CHECK",2)="2:0:0:0" +^ZZCOVERAGE("%ZIS2","CHECK",3)="2:0:0:0" +^ZZCOVERAGE("%ZIS2","CHECK",4)="2:0:0:0" +^ZZCOVERAGE("%ZIS2","CHECK",5)="2:0:0:0" +^ZZCOVERAGE("%ZIS2","CHECK",6)="2:0:0:0" +^ZZCOVERAGE("%ZIS2","IOPAR")="4:0:0:0" +^ZZCOVERAGE("%ZIS2","IOPAR",0)="4:0:0:0" +^ZZCOVERAGE("%ZIS2","IOPAR",1)="4:0:0:0" +^ZZCOVERAGE("%ZIS2","L2")="2:0:0:0" +^ZZCOVERAGE("%ZIS2","L2",1)="2:0:0:0" +^ZZCOVERAGE("%ZIS2","OCPU",0)="2:0:0:0" +^ZZCOVERAGE("%ZIS2","OOS",0)="2:0:0:0" +^ZZCOVERAGE("%ZIS2","OOS",2)="2:0:0:0" +^ZZCOVERAGE("%ZIS2","OTHCPU")="2:0:0:0" +^ZZCOVERAGE("%ZIS2","OTHCPU",0)="2:0:0:0" +^ZZCOVERAGE("%ZIS2","OTHCPU",1)="2:0:0:0" +^ZZCOVERAGE("%ZIS2","OTHCPU",2)="2:0:0:0" +^ZZCOVERAGE("%ZIS2","OTHCPU",2,"FOR_LOOP",1)=4 +^ZZCOVERAGE("%ZIS2","OTHCPU",3)="4:0:0:0" +^ZZCOVERAGE("%ZIS2","OTHCPU",4)="4:0:0:0" +^ZZCOVERAGE("%ZIS2","OTHCPU",5)="4:0:0:0" +^ZZCOVERAGE("%ZIS2","OTHCPU",15)="2:0:0:0" +^ZZCOVERAGE("%ZIS2","PTIME",0)="2:0:0:0" +^ZZCOVERAGE("%ZIS2","QUECHK")="2:0:0:0" +^ZZCOVERAGE("%ZIS2","QUECHK",0)="2:0:0:0" +^ZZCOVERAGE("%ZIS2","QUECHK",1)="2:0:0:0" +^ZZCOVERAGE("%ZIS2","QUECHK",3)="2:0:0:0" +^ZZCOVERAGE("%ZIS2","QUECHK",4)="2:0:0:0" +^ZZCOVERAGE("%ZIS2","QUECHK",9)="2:0:0:0" +^ZZCOVERAGE("%ZIS2","QUECHK",13)="2:0:0:0" +^ZZCOVERAGE("%ZIS2","SLAVE",0)="2:0:0:0" +^ZZCOVERAGE("%ZIS2","T2",0)="2:0:0:0" +^ZZCOVERAGE("%ZIS2","T2",2)="2:0:0:0" +^ZZCOVERAGE("%ZIS2","TMPVAR",0)="2:0:0:0" +^ZZCOVERAGE("%ZIS2","TMPVAR",1)="2:0:0:0" +^ZZCOVERAGE("%ZIS2","TMPVAR",2)="2:0:0:0" +^ZZCOVERAGE("%ZIS2","TMPVAR",4)="2:0:0:0" +^ZZCOVERAGE("%ZIS2","TMPVAR",10)="2:0:0:0" +^ZZCOVERAGE("%ZIS2","TMPVAR",11)="2:0:0:0" +^ZZCOVERAGE("%ZIS2","TMPVAR",12)="2:0:0:0" +^ZZCOVERAGE("%ZIS2","TMPVAR",15)="2:0:0:0" +^ZZCOVERAGE("%ZIS2","TMPVAR",16)="2:0:0:0" +^ZZCOVERAGE("%ZIS2","TMPVAR",18)="2:0:0:0" +^ZZCOVERAGE("%ZIS2","VTRM",0)="2:0:0:0" +^ZZCOVERAGE("%ZIS2","VTRM",1)="2:0:0:0" +^ZZCOVERAGE("%ZIS3","%ZIS3",4)="2:0:0:0" +^ZZCOVERAGE("%ZIS3","%ZIS3",5)="2:0:0:0" +^ZZCOVERAGE("%ZIS3","%ZIS3",6)="2:0:0:0" +^ZZCOVERAGE("%ZIS3","%ZIS3",8)="2:0:0:0" +^ZZCOVERAGE("%ZIS3","%ZIS3",9)="2:0:0:0" +^ZZCOVERAGE("%ZIS3","%ZIS3",11)="2:0:0:0" +^ZZCOVERAGE("%ZIS3","ALTP",0)="2:0:0:0" +^ZZCOVERAGE("%ZIS3","ASKMAR",0)="2:0:0:0" +^ZZCOVERAGE("%ZIS3","ASKMAR",1)="2:0:0:0" +^ZZCOVERAGE("%ZIS3","MARGN")="2:0:0:0" +^ZZCOVERAGE("%ZIS3","MARGN",1)="2:0:0:0" +^ZZCOVERAGE("%ZIS3","MARGN",2)="2:0:0:0" +^ZZCOVERAGE("%ZIS3","MARGN",3)="2:0:0:0" +^ZZCOVERAGE("%ZIS3","MARGN",4)="2:0:0:0" +^ZZCOVERAGE("%ZIS3","Q",2)="2:0:0:0" +^ZZCOVERAGE("%ZIS3","Q",3)="2:0:0:0" +^ZZCOVERAGE("%ZIS3","Q",4)="2:0:0:0" +^ZZCOVERAGE("%ZIS3","SETPAR")="2:0:0:0" +^ZZCOVERAGE("%ZIS3","SETPAR",0)="2:0:0:0" +^ZZCOVERAGE("%ZIS3","SETPAR",1)="2:0:0:0" +^ZZCOVERAGE("%ZIS3","ST")="2:0:0:0" +^ZZCOVERAGE("%ZIS3","ST",0)="2:0:0:0" +^ZZCOVERAGE("%ZIS3","ST",1)="2:0:0:0" +^ZZCOVERAGE("%ZIS3","ST",2)="2:0:0:0" +^ZZCOVERAGE("%ZIS3","ST",3)="2:0:0:0" +^ZZCOVERAGE("%ZIS3","STP",0)="2:0:0:0" +^ZZCOVERAGE("%ZIS3","STP",1)="2:0:0:0" +^ZZCOVERAGE("%ZIS3","STP",2)="2:0:0:0" +^ZZCOVERAGE("%ZIS3","STP",3)="2:0:0:0" +^ZZCOVERAGE("%ZIS3","TRM",1)="2:0:0:0" +^ZZCOVERAGE("%ZIS3","TRM",2)="2:0:0:0" +^ZZCOVERAGE("%ZIS3","TRM",3)="2:0:0:0" +^ZZCOVERAGE("%ZIS3","TRM",4)="2:0:0:0" +^ZZCOVERAGE("%ZIS3","TRM",5)="2:0:0:0" +^ZZCOVERAGE("%ZIS3","W")="2:0:0:0" +^ZZCOVERAGE("%ZIS3","W",0)="2:0:0:0" +^ZZCOVERAGE("%ZIS3","W",1)="2:0:0:0" +^ZZCOVERAGE("%ZIS3","W",2)="1:0:0:0" +^ZZCOVERAGE("%ZIS3","W",3)="1:0:0:0" +^ZZCOVERAGE("%ZIS4","O")="2:0:0:0" +^ZZCOVERAGE("%ZIS4","O",1)="2:0:0:0" +^ZZCOVERAGE("%ZIS4","O",2)="2:0:0:0" +^ZZCOVERAGE("%ZIS4","O1")="2:0:0:0" +^ZZCOVERAGE("%ZIS4","O1",0)="2:0:0:0" +^ZZCOVERAGE("%ZIS4","O1",1)="2:0:0:0" +^ZZCOVERAGE("%ZIS4","O1",2)="2:0:0:0" +^ZZCOVERAGE("%ZIS4","O1",3)="2:0:0:0" +^ZZCOVERAGE("%ZIS4","OPAR",0)="2:0:0:0" +^ZZCOVERAGE("%ZIS4","OPAR",1)="2:0:0:0" +^ZZCOVERAGE("%ZIS4","OPAR",2)="2:0:0:0" +^ZZCOVERAGE("%ZIS4","OPAR",3)="2:0:0:0" +^ZZCOVERAGE("%ZIS4","OPAR",4)="2:0:0:0" +^ZZCOVERAGE("%ZIS4","OPAR",5)="2:0:0:0" +^ZZCOVERAGE("%ZIS4","OPAR",9)="2:0:0:0" +^ZZCOVERAGE("%ZIS4","OPAR",10)="2:0:0:0" +^ZZCOVERAGE("%ZIS4","OPAR",12)="2:0:0:0" +^ZZCOVERAGE("%ZIS6","ANSBAK",1)="2:0:0:0" +^ZZCOVERAGE("%ZIS6","ANSBAK",2)="2:0:0:0" +^ZZCOVERAGE("%ZIS6","ANSBAK",3)="2:0:0:0" +^ZZCOVERAGE("%ZIS6","OXECUTE",1)="2:0:0:0" +^ZZCOVERAGE("%ZIS6","QUIT",0)="2:0:0:0" +^ZZCOVERAGE("%ZIS6","QUIT",1)="2:0:0:0" +^ZZCOVERAGE("%ZISC","C0")="1:0:0:0" +^ZZCOVERAGE("%ZISC","C0",1)="1:0:0:0" +^ZZCOVERAGE("%ZISC","C0",3)="1:0:0:0" +^ZZCOVERAGE("%ZISC","C0",5)="1:0:0:0" +^ZZCOVERAGE("%ZISC","C0",6)="1:0:0:0" +^ZZCOVERAGE("%ZISC","C0",8)="1:0:0:0" +^ZZCOVERAGE("%ZISC","C0",9)="1:0:0:0" +^ZZCOVERAGE("%ZISC","C0",10)="1:0:0:0" +^ZZCOVERAGE("%ZISC","C0",13)="1:0:0:0" +^ZZCOVERAGE("%ZISC","C0",16)="1:0:0:0" +^ZZCOVERAGE("%ZISC","C0",17)="1:0:0:0" +^ZZCOVERAGE("%ZISC","C0",21)="1:0:0:0" +^ZZCOVERAGE("%ZISC","C0",26)="1:0:0:0" +^ZZCOVERAGE("%ZISC","C0",27)="1:0:0:0" +^ZZCOVERAGE("%ZISC","C0",29)="1:0:0:0" +^ZZCOVERAGE("%ZISC","C0",32)="1:0:0:0" +^ZZCOVERAGE("%ZISC","C0",33)="1:0:0:0" +^ZZCOVERAGE("%ZISC","C0",34)="1:0:0:0" +^ZZCOVERAGE("%ZISC","C0",37)="1:0:0:0" +^ZZCOVERAGE("%ZISC","C0",41)="1:0:0:0" +^ZZCOVERAGE("%ZISC","C0",43)="1:0:0:0" +^ZZCOVERAGE("%ZISC","CIOS")="1:0:0:0" +^ZZCOVERAGE("%ZISC","CIOS",0)="1:0:0:0" +^ZZCOVERAGE("%ZISC","CIOS",1)="1:0:0:0" +^ZZCOVERAGE("%ZISC","CIOS",2)="1:0:0:0" +^ZZCOVERAGE("%ZISC","CIOS",3)="1:0:0:0" +^ZZCOVERAGE("%ZISC","CIOS",4)="1:0:0:0" +^ZZCOVERAGE("%ZISC","CIOS",5)="1:0:0:0" +^ZZCOVERAGE("%ZISC","CIOS",6)="1:0:0:0" +^ZZCOVERAGE("%ZISC","CIOS",7)="1:0:0:0" +^ZZCOVERAGE("%ZISC","CIOS",8)="1:0:0:0" +^ZZCOVERAGE("%ZISC","CLOSPP")="1:0:0:0" +^ZZCOVERAGE("%ZISC","CLOSPP",0)="1:0:0:0" +^ZZCOVERAGE("%ZISC","CLOSPP",1)="1:0:0:0" +^ZZCOVERAGE("%ZISC","CLOSPP",2)="1:0:0:0" +^ZZCOVERAGE("%ZISC","END",0)="1:0:0:0" +^ZZCOVERAGE("%ZISC","END",2)="1:0:0:0" +^ZZCOVERAGE("%ZISC","END",4)="1:0:0:0" +^ZZCOVERAGE("%ZISC","FF")="1:0:0:0" +^ZZCOVERAGE("%ZISC","FF",0)="1:0:0:0" +^ZZCOVERAGE("%ZISC","FF",1)="1:0:0:0" +^ZZCOVERAGE("%ZISC","FF",2)="1:0:0:0" +^ZZCOVERAGE("%ZISC","RM")="1:0:0:0" +^ZZCOVERAGE("%ZISC","RM",0)="1:0:0:0" +^ZZCOVERAGE("%ZISC","RM",1)="1:0:0:0" +^ZZCOVERAGE("%ZISC","S1",0)="1:0:0:0" +^ZZCOVERAGE("%ZISC","S1",1)="1:0:0:0" +^ZZCOVERAGE("%ZISC","SETIO",2)="1:0:0:0" +^ZZCOVERAGE("%ZISC","SETIO",4)="1:0:0:0" +^ZZCOVERAGE("%ZISC","SETIO",5)="1:0:0:0" +^ZZCOVERAGE("%ZISC","SETIO",6)="1:0:0:0" +^ZZCOVERAGE("%ZISC","SETIO",7)="1:0:0:0" +^ZZCOVERAGE("%ZISC","SETIO",8)="1:0:0:0" +^ZZCOVERAGE("%ZISC","SETIO",9)="1:0:0:0" +^ZZCOVERAGE("%ZISC","SETIO",10)="1:0:0:0" +^ZZCOVERAGE("%ZISC","SETIO",12)="1:0:0:0" +^ZZCOVERAGE("%ZISC","SUBTYPE")="1:0:0:0" +^ZZCOVERAGE("%ZISC","SUBTYPE",1)="1:0:0:0" +^ZZCOVERAGE("%ZISC","SUBTYPE",2)="1:0:0:0" +^ZZCOVERAGE("%ZISC","SUBTYPE",3)="1:0:0:0" +^ZZCOVERAGE("%ZISUTL","LINEPORT")="1:0:0:0" +^ZZCOVERAGE("%ZISUTL","LINEPORT",0)="1:0:0:0" +^ZZCOVERAGE("%ZISUTL","LINEPORT",2)="1:0:0:0" +^ZZCOVERAGE("%ZISUTL","LINEPORT",3)="1:0:0:0" +^ZZCOVERAGE("%ZISUTL","LINEPORT",4)="1:0:0:0" +^ZZCOVERAGE("%ZISUTL","LINEPORT",5)="1:0:0:0" +^ZZCOVERAGE("%ZISUTL","LINEPORT",6)="1:0:0:0" +^ZZCOVERAGE("%ZISUTL","LNPRTIEN")="3:0:0:0" +^ZZCOVERAGE("%ZISUTL","LNPRTIEN",0)="3:0:0:0" +^ZZCOVERAGE("%ZISUTL","LNPRTIEN",1)="3:0:0:0" +^ZZCOVERAGE("%ZISUTL","LNPRTNAM")="3:0:0:0" +^ZZCOVERAGE("%ZISUTL","LNPRTNAM",0)="3:0:0:0" +^ZZCOVERAGE("%ZISUTL","LNPRTNAM",1)="3:0:0:0" +^ZZCOVERAGE("%ZISUTL","LNPRTNAM",2)="3:0:0:0" +^ZZCOVERAGE("%ZISUTL","LNPRTNAM",3)="3:0:0:0" +^ZZCOVERAGE("%ZISUTL","LNPRTNAM",5)="3:0:0:0" +^ZZCOVERAGE("%ZISUTL","LNPRTNAM",6)="3:0:0:0" +^ZZCOVERAGE("%ZISUTL","LNPRTSUB")="2:0:0:0" +^ZZCOVERAGE("%ZISUTL","LNPRTSUB",0)="2:0:0:0" +^ZZCOVERAGE("%ZISUTL","LNPRTSUB",1)="2:0:0:0" +^ZZCOVERAGE("%ZISUTL","LNPRTSUB",2)="2:0:0:0" +^ZZCOVERAGE("%ZISUTL","LNPRTSUB",3)="2:0:0:0" +^ZZCOVERAGE("%ZISUTL","SYMBOL")="2:0:0:0" +^ZZCOVERAGE("%ZISUTL","SYMBOL",0)="2:0:0:0" +^ZZCOVERAGE("%ZISUTL","SYMBOL",1)="2:0:0:0" +^ZZCOVERAGE("%ZISUTL","SYMBOL",3)="2:0:0:0" +^ZZCOVERAGE("%ZISUTL","SYMBOL",4)="2:0:0:0" +^ZZCOVERAGE("%ZISUTL","SYMBOL",5)="2:0:0:0" +^ZZCOVERAGE("%ZISUTL","SYMBOL",5,"FOR_LOOP",1)=40 +^ZZCOVERAGE("%ZISUTL","SYMBOL",6)="40:0:0:0" +^ZZCOVERAGE("%ZISUTL","SYMBOL",10)="2:0:0:0" +^ZZCOVERAGE("%ZOSV","GETENV")="2:0:0:0" +^ZZCOVERAGE("%ZOSV","GETENV",1)="2:0:0:0" +^ZZCOVERAGE("%ZOSV","GETENV",2)="2:0:0:0" +^ZZCOVERAGE("%ZOSV","GETENV",3)="2:0:0:0" +^ZZCOVERAGE("%ZOSV","LGR")="2:0:0:0" +^ZZCOVERAGE("%ZOSV","LGR",0)="2:0:0:0" +^ZZCOVERAGE("%ZOSV","LGR",1)="2:0:0:0" +^ZZCOVERAGE("%ZOSV","PRI")="1:0:0:0" +^ZZCOVERAGE("%ZOSV","PRI",0)="1:0:0:0" +^ZZCOVERAGE("%ZOSV","PRI",3)="1:0:0:0" +^ZZCOVERAGE("%ZOSV","RETURN")="2:0:4000:4000" +^ZZCOVERAGE("%ZOSV","RETURN",0)="2:0:0:0" +^ZZCOVERAGE("%ZOSV","RETURN",2)="2:0:0:0" +^ZZCOVERAGE("%ZOSV","RETURN",3)="2:0:0:0" +^ZZCOVERAGE("%ZOSV","RETURN",4)="2:0:4000:4000" +^ZZCOVERAGE("%ZOSV","RETURN",5)="2:0:0:0" +^ZZCOVERAGE("%ZOSV","RETURN",7)="2:0:0:0" +^ZZCOVERAGE("%ZOSV","TEMP")="2:0:0:0" +^ZZCOVERAGE("%ZOSV","TEMP",0)="2:0:0:0" +^ZZCOVERAGE("%ZOSV","TEMP",2)="2:0:0:0" +^ZZCOVERAGE("%ZOSV2","LOAD")="467:1000060:340019:1340079" +^ZZCOVERAGE("%ZOSV2","LOAD",0)="467:0:0:0" +^ZZCOVERAGE("%ZOSV2","LOAD",1)="467:0:8001:8001" +^ZZCOVERAGE("%ZOSV2","LOAD",2)="467:1000060:320018:1320078" +^ZZCOVERAGE("%ZOSV2","LOAD",2,"FOR_LOOP",1)=45087 +^ZZCOVERAGE("%ZOSV2","LOAD",3)="467:0:12000:12000" +^ZZCOVERAGE("DIALOG","EZBLD")="2:0:4000:4000" +^ZZCOVERAGE("DIALOG","EZBLD",0)="2:0:0:0" +^ZZCOVERAGE("DIALOG","EZBLD",2)="2:0:0:0" +^ZZCOVERAGE("DIALOG","EZBLD",3)="2:0:0:0" +^ZZCOVERAGE("DIALOG","EZBLD",4)="2:0:0:0" +^ZZCOVERAGE("DIALOG","EZBLD",5)="2:0:0:0" +^ZZCOVERAGE("DIALOG","EZBLD",6)="2:0:0:0" +^ZZCOVERAGE("DIALOG","EZBLD",7)="2:0:0:0" +^ZZCOVERAGE("DIALOG","EZBLD",8)="2:0:0:0" +^ZZCOVERAGE("DIALOG","EZBLD",9)="2:0:0:0" +^ZZCOVERAGE("DIALOG","PARAM")="2:0:0:0" +^ZZCOVERAGE("DIALOG","PARAM",0)="4:0:0:0" +^ZZCOVERAGE("DIALOG","PARAM",1)="2:0:0:0" +^ZZCOVERAGE("DIALOG","PARAM",2)="2:0:0:0" +^ZZCOVERAGE("DIALOG","PARAM",3)="2:0:0:0" +^ZZCOVERAGE("DIALOG","Q1",0)="2:0:0:0" +^ZZCOVERAGE("DIALOG","Q2")="2:0:0:0" +^ZZCOVERAGE("DIALOG","Q2",0)="2:0:0:0" +^ZZCOVERAGE("DIALOG","QEZ",0)="2:0:4000:4000" +^ZZCOVERAGE("DIALOG","QEZ",1)="2:0:0:0" +^ZZCOVERAGE("DIALOG","QP",0)="2:0:0:0" +^ZZCOVERAGE("DIC","A1",0)="2:0:0:0" +^ZZCOVERAGE("DIC","ASK",0)="2:0:0:0" +^ZZCOVERAGE("DIC","ASK",1)="2:0:0:0" +^ZZCOVERAGE("DIC","ASK",2)="2:0:0:0" +^ZZCOVERAGE("DIC","ASK",3)="2:0:0:0" +^ZZCOVERAGE("DIC","ASK",4)="2:0:0:0" +^ZZCOVERAGE("DIC","DIC")="2:0:0:0" +^ZZCOVERAGE("DIC","DIC",3)="2:0:0:0" +^ZZCOVERAGE("DIC","DIC",4)="2:0:0:0" +^ZZCOVERAGE("DIC","DIC",5)="2:0:0:0" +^ZZCOVERAGE("DIC","DIC",6)="2:0:0:0" +^ZZCOVERAGE("DIC","EN",0)="2:0:0:0" +^ZZCOVERAGE("DIC","EN",1)="2:0:0:0" +^ZZCOVERAGE("DIC","EN",2)="2:0:0:0" +^ZZCOVERAGE("DIC","EN",3)="2:0:0:0" +^ZZCOVERAGE("DIC","EN",4)="2:0:0:0" +^ZZCOVERAGE("DIC","EN",5)="2:0:0:0" +^ZZCOVERAGE("DIC","EN",6)="2:0:0:0" +^ZZCOVERAGE("DIC","EN",7)="2:0:0:0" +^ZZCOVERAGE("DIC","EN",8)="2:0:0:0" +^ZZCOVERAGE("DIC","EN",9)="2:0:0:0" +^ZZCOVERAGE("DIC","RTN",0)="2:0:0:0" +^ZZCOVERAGE("DIC","RTN",3)="2:0:0:0" +^ZZCOVERAGE("DIC","RTN",6)="2:0:0:0" +^ZZCOVERAGE("DIC","X",1)="2:0:0:0" +^ZZCOVERAGE("DIC","X",4)="2:0:0:0" +^ZZCOVERAGE("DIC","X",5)="2:0:0:0" +^ZZCOVERAGE("DIC","X",6)="2:0:0:0" +^ZZCOVERAGE("DIC0","GETFILE")="2:0:0:0" +^ZZCOVERAGE("DIC0","GETFILE",0)="2:0:0:0" +^ZZCOVERAGE("DIC0","GETFILE",1)="2:0:0:0" +^ZZCOVERAGE("DIC0","GETFILE",2)="2:0:0:0" +^ZZCOVERAGE("DIC0","GETFILE",3)="2:0:0:0" +^ZZCOVERAGE("DIC0","GETFILE",4)="2:0:0:0" +^ZZCOVERAGE("DIC0","GETFILE",7)="2:0:0:0" +^ZZCOVERAGE("DIC0","GETFILE",8)="2:0:0:0" +^ZZCOVERAGE("DIC0","GETFILE",11)="2:0:0:0" +^ZZCOVERAGE("DIC0","GETFILE",12)="2:0:0:0" +^ZZCOVERAGE("DIC0","GETFILE",13)="2:0:0:0" +^ZZCOVERAGE("DIC0","GETFILE",14)="2:0:0:0" +^ZZCOVERAGE("DIC0","GETFILE",15)="2:0:0:0" +^ZZCOVERAGE("DIC0","GETFILE",16)="2:0:0:0" +^ZZCOVERAGE("DIC0","INIT")="2:0:0:0" +^ZZCOVERAGE("DIC0","INIT",1)="2:0:0:0" +^ZZCOVERAGE("DIC0","INIT",2)="2:0:0:0" +^ZZCOVERAGE("DIC0","INIT",3)="2:0:0:0" +^ZZCOVERAGE("DIC0","INIT",4)="2:0:0:0" +^ZZCOVERAGE("DIC0","INIT",5)="2:0:0:0" +^ZZCOVERAGE("DIC0","INIT",6)="2:0:0:0" +^ZZCOVERAGE("DIC0","INIT",7)="2:0:0:0" +^ZZCOVERAGE("DIC0","INIT",8)="2:0:0:0" +^ZZCOVERAGE("DIC0","SETIEN")="2:0:0:0" +^ZZCOVERAGE("DIC0","SETIEN",0)="2:0:0:0" +^ZZCOVERAGE("DIC0","SETIEN",1)="2:0:0:0" +^ZZCOVERAGE("DIC0","SETIEN",2)="2:0:0:0" +^ZZCOVERAGE("DIC0","SETIEN",3)="2:0:0:0" +^ZZCOVERAGE("DIC0","SETIEN",4)="2:0:0:0" +^ZZCOVERAGE("DIC0","SETIEN",5)="2:0:0:0" +^ZZCOVERAGE("DIC0","SETIEN",5,"FOR_LOOP",1)=2 +^ZZCOVERAGE("DIC0","SETIEN",6)="2:0:0:0" +^ZZCOVERAGE("DIC0","SETIEN",7)="2:0:0:0" +^ZZCOVERAGE("DIC1","B",0)="2:0:0:0" +^ZZCOVERAGE("DIC1","DIC1")="2:0:0:0" +^ZZCOVERAGE("DIC1","DIC1",3)="2:0:0:0" +^ZZCOVERAGE("DIC1","DIC1",4)="2:0:0:0" +^ZZCOVERAGE("DIC1","DIC1",5)="2:0:0:0" +^ZZCOVERAGE("DIC1","DO")="4:0:0:0" +^ZZCOVERAGE("DIC1","DO",1)="4:0:0:0" +^ZZCOVERAGE("DIC1","DO",2)="2:0:0:0" +^ZZCOVERAGE("DIC1","DO2",0)="2:0:0:0" +^ZZCOVERAGE("DIC1","DO2",1)="2:0:0:0" +^ZZCOVERAGE("DIC1","DO2",2)="2:0:0:0" +^ZZCOVERAGE("DIC1","DO2",3)="2:0:0:0" +^ZZCOVERAGE("DIC1","GETFA")="4:0:0:0" +^ZZCOVERAGE("DIC1","GETFA",0)="4:0:0:0" +^ZZCOVERAGE("DIC1","GETFA",2)="4:0:0:0" +^ZZCOVERAGE("DIC1","P",1)="2:0:0:0" +^ZZCOVERAGE("DIC1","P",2)="2:0:0:0" +^ZZCOVERAGE("DIC1","PROMPT",1)="2:0:0:0" +^ZZCOVERAGE("DIC1","PROMPT",2)="2:0:0:0" +^ZZCOVERAGE("DIC1","W",0)="2:0:0:0" +^ZZCOVERAGE("DIC1","W",0,"FOR_LOOP",1)=4 +^ZZCOVERAGE("DIC1","W",1)="3:0:0:0" +^ZZCOVERAGE("DIC1","W",2)="3:0:0:0" +^ZZCOVERAGE("DIC1","W",3)="2:0:0:0" +^ZZCOVERAGE("DIC1","W",4)="2:0:0:0" +^ZZCOVERAGE("DIC1","W",5)="2:0:0:0" +^ZZCOVERAGE("DIC1","W",6)="2:0:0:0" +^ZZCOVERAGE("DIC1","WOV")="1:0:0:0" +^ZZCOVERAGE("DIC1","WOV",0)="1:0:0:0" +^ZZCOVERAGE("DIC1","WOV",1)="1:0:0:0" +^ZZCOVERAGE("DIC11","GETPRMT")="2:0:0:0" +^ZZCOVERAGE("DIC11","GETPRMT",0)="2:0:0:0" +^ZZCOVERAGE("DIC11","GETPRMT",1)="2:0:0:0" +^ZZCOVERAGE("DIC11","GETPRMT",2)="2:0:0:0" +^ZZCOVERAGE("DIC11","GETPRMT",3)="2:0:0:0" +^ZZCOVERAGE("DIC11","GETPRMT",3,"FOR_LOOP",1)=2 +^ZZCOVERAGE("DIC11","GETPRMT",4)="2:0:0:0" +^ZZCOVERAGE("DIC11","GETPRMT",8)="2:0:0:0" +^ZZCOVERAGE("DIC11","GETPRMT",9)="2:0:0:0" +^ZZCOVERAGE("DIC11","GETPRMT",10)="2:0:0:0" +^ZZCOVERAGE("DIC11","GETPRMT",11)="2:0:0:0" +^ZZCOVERAGE("DIC11","GETPRMT",12)="2:0:0:0" +^ZZCOVERAGE("DIC11","GETPRMT",13)="2:0:0:0" +^ZZCOVERAGE("DIC11","GETPRMT",14)="2:0:0:0" +^ZZCOVERAGE("DIC11","GETPRMT",15)="2:0:0:0" +^ZZCOVERAGE("DIC11","GETPRMT",16)="2:0:0:0" +^ZZCOVERAGE("DIC11","GETPRMT",17)="2:0:0:0" +^ZZCOVERAGE("DIC11","GETPRMT",18)="2:0:0:0" +^ZZCOVERAGE("DIC11","GETPRMT",19)="2:0:0:0" +^ZZCOVERAGE("DIC11","PR1",0)="2:0:0:0" +^ZZCOVERAGE("DIC11","PR1",1)="2:0:0:0" +^ZZCOVERAGE("DIC11","PR1",2)="2:0:0:0" +^ZZCOVERAGE("DIC11","PR1",3)="2:0:0:0" +^ZZCOVERAGE("DIC11","PR1",4)="2:0:0:0" +^ZZCOVERAGE("DIC11","PR1",6)="2:0:0:0" +^ZZCOVERAGE("DIC11","PR1",8)="2:0:0:0" +^ZZCOVERAGE("DIC11","PR1",9)="2:0:0:0" +^ZZCOVERAGE("DIC11","PR1",11)="2:0:0:0" +^ZZCOVERAGE("DIC11","PR1",12)="2:0:0:0" +^ZZCOVERAGE("DIC11","PR1",13)="2:0:0:0" +^ZZCOVERAGE("DIC11","PR1",14)="2:0:0:0" +^ZZCOVERAGE("DIC11","PR1",15)="2:0:0:0" +^ZZCOVERAGE("DIC11","PR1",16)="2:0:0:0" +^ZZCOVERAGE("DIC11","PROMPT")="2:0:0:0" +^ZZCOVERAGE("DIC11","PROMPT",0)="2:0:0:0" +^ZZCOVERAGE("DIC11","PROMPT",1)="2:0:0:0" +^ZZCOVERAGE("DIC11","PROMPT",1,"FOR_LOOP",1)=2 +^ZZCOVERAGE("DIC11","PROMPT",2)="2:0:0:0" +^ZZCOVERAGE("DIC11","PROMPT",3)="2:0:0:0" +^ZZCOVERAGE("DIC11","PROMPT",5)="2:0:0:0" +^ZZCOVERAGE("DIC2","PGM")="4:0:0:0" +^ZZCOVERAGE("DIC2","PGM",0)="4:0:0:0" +^ZZCOVERAGE("DIC2","PGM",1)="4:0:0:0" +^ZZCOVERAGE("DIC2","PGM",2)="4:0:0:0" +^ZZCOVERAGE("DIC2","Q")="2:0:0:0" +^ZZCOVERAGE("DIC2","Q",0)="2:0:0:0" +^ZZCOVERAGE("DIC2","Q",1)="2:0:0:0" +^ZZCOVERAGE("DIC2","Q",2)="2:0:0:0" +^ZZCOVERAGE("DICL","DINDEX")="2:0:0:0" +^ZZCOVERAGE("DICL","DINDEX",0)="2:0:0:0" +^ZZCOVERAGE("DICL","DINDEX",1)="2:0:0:0" +^ZZCOVERAGE("DICL","DINDEX",2)="2:0:0:0" +^ZZCOVERAGE("DICL","DINDEX",5)="2:0:0:0" +^ZZCOVERAGE("DICL","DINDEX",6)="2:0:0:0" +^ZZCOVERAGE("DICUIX","I1",2)="2:0:0:0" +^ZZCOVERAGE("DICUIX","I1",3)="2:0:0:0" +^ZZCOVERAGE("DICUIX","I1",4)="2:0:0:0" +^ZZCOVERAGE("DICUIX","I1",5)="2:0:0:0" +^ZZCOVERAGE("DICUIX","INDEX")="2:0:0:0" +^ZZCOVERAGE("DICUIX","INDEX",0)="2:0:0:0" +^ZZCOVERAGE("DICUIX","X1",2)="2:0:0:0" +^ZZCOVERAGE("DICUIX","X1",8)="2:0:0:0" +^ZZCOVERAGE("DICUIX","X1",9)="2:0:0:0" +^ZZCOVERAGE("DICUIX","X2",2)="2:0:0:0" +^ZZCOVERAGE("DICUIX","X2",3)="2:0:0:0" +^ZZCOVERAGE("DICUIX","X2",4)="2:0:0:0" +^ZZCOVERAGE("DICUIX","X2",5)="2:0:0:0" +^ZZCOVERAGE("DICUIX","X2",8)="2:0:0:0" +^ZZCOVERAGE("DICUIX","X2",11)="2:0:0:0" +^ZZCOVERAGE("DICUIX","X2",12)="2:0:0:0" +^ZZCOVERAGE("DICUIX","X2",13)="2:0:0:0" +^ZZCOVERAGE("DICUIX","X2",14)="2:0:0:0" +^ZZCOVERAGE("DICUIX","X2",15)="2:0:0:0" +^ZZCOVERAGE("DICUIX","X2",15,"FOR_LOOP",1)=2 +^ZZCOVERAGE("DICUIX","X2",16)="2:0:0:0" +^ZZCOVERAGE("DICUIX","X2",17)="2:0:0:0" +^ZZCOVERAGE("DICUIX","X2",18)="2:0:0:0" +^ZZCOVERAGE("DICUIX","X2",19)="2:0:0:0" +^ZZCOVERAGE("DICUIX","X2",20)="2:0:0:0" +^ZZCOVERAGE("DICUIX","X2",21)="2:0:0:0" +^ZZCOVERAGE("DICUIX","X2",22)="2:0:0:0" +^ZZCOVERAGE("DICUIX","X2",23)="2:0:0:0" +^ZZCOVERAGE("DICUIX","X2",24)="2:0:0:0" +^ZZCOVERAGE("DICUIX","X2",25)="2:0:0:0" +^ZZCOVERAGE("DICUIX","X2",26)="2:0:0:0" +^ZZCOVERAGE("DICUIX","X2",27)="2:0:0:0" +^ZZCOVERAGE("DICUIX","X2",28)="2:0:0:0" +^ZZCOVERAGE("DICUIX","X2",29)="2:0:0:0" +^ZZCOVERAGE("DICUIX","X2",30)="2:0:0:0" +^ZZCOVERAGE("DICUIX","X2",31)="2:0:0:0" +^ZZCOVERAGE("DICUIX","X2",32)="2:0:0:0" +^ZZCOVERAGE("DICUIX","X2",33)="2:0:0:0" +^ZZCOVERAGE("DICUIX","XREF")="2:0:0:0" +^ZZCOVERAGE("DICUIX","XREF",0)="2:0:0:0" +^ZZCOVERAGE("DICUIX1","G1",2)="2:0:0:0" +^ZZCOVERAGE("DICUIX1","G1",3)="2:0:0:0" +^ZZCOVERAGE("DICUIX1","G1",4)="2:0:0:0" +^ZZCOVERAGE("DICUIX1","G2",2)="2:0:0:0" +^ZZCOVERAGE("DICUIX1","G2",3)="2:0:0:0" +^ZZCOVERAGE("DICUIX1","G3",2)="2:0:0:0" +^ZZCOVERAGE("DICUIX1","G30",1)="2:0:0:0" +^ZZCOVERAGE("DICUIX1","G4",2)="2:0:0:0" +^ZZCOVERAGE("DICUIX1","G4",3)="2:0:0:0" +^ZZCOVERAGE("DICUIX1","G4",4)="2:0:0:0" +^ZZCOVERAGE("DICUIX1","G4",5)="2:0:0:0" +^ZZCOVERAGE("DICUIX1","G4",6)="2:0:0:0" +^ZZCOVERAGE("DICUIX1","G4",7)="2:0:0:0" +^ZZCOVERAGE("DICUIX1","G5",2)="2:0:0:0" +^ZZCOVERAGE("DICUIX1","G5",3)="2:0:0:0" +^ZZCOVERAGE("DICUIX1","G5",7)="2:0:0:0" +^ZZCOVERAGE("DICUIX1","GET")="2:0:0:0" +^ZZCOVERAGE("DICUIX1","GET",0)="2:0:0:0" +^ZZCOVERAGE("DICUIX2","C1",0)="2:0:0:0" +^ZZCOVERAGE("DICUIX2","C1",1)="2:0:0:0" +^ZZCOVERAGE("DICUIX2","C2",0)="2:0:0:0" +^ZZCOVERAGE("DICUIX2","C2",1)="2:0:0:0" +^ZZCOVERAGE("DICUIX2","C3",0)="2:0:0:0" +^ZZCOVERAGE("DICUIX2","C3",1)="2:0:0:0" +^ZZCOVERAGE("DICUIX2","C3",2)="2:0:0:0" +^ZZCOVERAGE("DICUIX2","C3",5)="2:0:0:0" +^ZZCOVERAGE("DICUIX2","C4",0)="2:0:0:0" +^ZZCOVERAGE("DICUIX2","C4",1)="2:0:0:0" +^ZZCOVERAGE("DICUIX2","C4",2)="2:0:0:0" +^ZZCOVERAGE("DICUIX2","C4",3)="2:0:0:0" +^ZZCOVERAGE("DICUIX2","C4",4)="2:0:0:0" +^ZZCOVERAGE("DICUIX2","C4",5)="2:0:0:0" +^ZZCOVERAGE("DICUIX2","C4",6)="2:0:0:0" +^ZZCOVERAGE("DICUIX2","C4",7)="2:0:0:0" +^ZZCOVERAGE("DICUIX2","C4",8)="2:0:0:0" +^ZZCOVERAGE("DICUIX2","C4",9)="2:0:0:0" +^ZZCOVERAGE("DICUIX2","C4",10)="2:0:0:0" +^ZZCOVERAGE("DICUIX2","C4",11)="2:0:0:0" +^ZZCOVERAGE("DICUIX2","C4",12)="2:0:0:0" +^ZZCOVERAGE("DICUIX2","C4",17)="2:0:0:0" +^ZZCOVERAGE("DICUIX2","C4",18)="2:0:0:0" +^ZZCOVERAGE("DICUIX2","C4",23)="2:0:0:0" +^ZZCOVERAGE("DICUIX2","C4",24)="2:0:0:0" +^ZZCOVERAGE("DICUIX2","C5",0)="2:0:0:0" +^ZZCOVERAGE("DICUIX2","C5",1)="2:0:0:0" +^ZZCOVERAGE("DICUIX2","C6",0)="2:0:0:0" +^ZZCOVERAGE("DICUIX2","C6",18)="2:0:0:0" +^ZZCOVERAGE("DICUIX2","C6",19)="2:0:0:0" +^ZZCOVERAGE("DICUIX2","C6",20)="2:0:0:0" +^ZZCOVERAGE("DICUIX2","C7",0)="2:0:0:0" +^ZZCOVERAGE("DICUIX2","C7",7)="2:0:0:0" +^ZZCOVERAGE("DICUIX2","COMMON1")="2:0:0:0" +^ZZCOVERAGE("DICUIX2","COMMON1",1)="2:0:0:0" +^ZZCOVERAGE("DICUIX2","COMMON1",2)="2:0:0:0" +^ZZCOVERAGE("DICUIX2","COMMON1",3)="2:0:0:0" +^ZZCOVERAGE("DICUIX2","COMMON1",4)="2:0:0:0" +^ZZCOVERAGE("DICUIX2","COMMON1",5)="2:0:0:0" +^ZZCOVERAGE("DICUIX2","COMMON1",6)="2:0:0:0" +^ZZCOVERAGE("DICUIX2","COMMON1",7)="2:0:0:0" +^ZZCOVERAGE("DICUIX2","COMMON2")="2:0:0:0" +^ZZCOVERAGE("DICUIX2","COMMON2",1)="2:0:0:0" +^ZZCOVERAGE("DICUIX2","COMMON2",2)="2:0:0:0" +^ZZCOVERAGE("DICUIX2","COMMON2",3)="2:0:0:0" +^ZZCOVERAGE("DICUIX2","COMMON2",4)="2:0:0:0" +^ZZCOVERAGE("DICUIX2","COMMON2",5)="2:0:0:0" +^ZZCOVERAGE("DICUIX2","COMMON2",6)="2:0:0:0" +^ZZCOVERAGE("DICUIX2","COMMON2",7)="2:0:0:0" +^ZZCOVERAGE("DICUIX2","COMMON2",8)="2:0:0:0" +^ZZCOVERAGE("DICUIX2","COMMON2",9)="2:0:0:0" +^ZZCOVERAGE("DIEFU","IENX",1)="2:0:0:0" +^ZZCOVERAGE("DIEFU","IENX",2)="2:0:0:0" +^ZZCOVERAGE("DIEFU","IENX",3)="2:0:0:0" +^ZZCOVERAGE("DIEFU","IENX",3,"FOR_LOOP",1)=4 +^ZZCOVERAGE("DIEFU","IENX",4)="2:0:0:0" +^ZZCOVERAGE("DIEFU","IENX",5)="2:0:0:0" +^ZZCOVERAGE("DILF","CREF")="4:0:0:0" +^ZZCOVERAGE("DILF","CREF",0)="4:0:0:0" +^ZZCOVERAGE("DILF","IENS")="2:0:0:0" +^ZZCOVERAGE("DILF","IENS",0)="2:0:0:0" +^ZZCOVERAGE("DILF","IENS",1)="2:0:0:0" +^ZZCOVERAGE("DILF","OREF")="2:0:0:0" +^ZZCOVERAGE("DILF","OREF",0)="2:0:0:0" +^ZZCOVERAGE("DILIBF","FNO")="2:0:0:0" +^ZZCOVERAGE("DILIBF","FNO",0)="2:0:0:0" +^ZZCOVERAGE("DILIBF","FNO",1)="2:0:0:0" +^ZZCOVERAGE("DILIBF","FNO",2)="2:0:0:0" +^ZZCOVERAGE("DIQGU","ENCREF",0)="4:0:0:0" +^ZZCOVERAGE("DIQGU","ENOREF",0)="2:0:0:0" +^ZZCOVERAGE("DIQGU","OR2")="2:0:0:0" +^ZZCOVERAGE("DIQGU","OR2",0)="2:0:0:0" +^ZZCOVERAGE("XINDEX","A2",0)="468:0:4000:4000" +^ZZCOVERAGE("XINDEX","A2",1)="467:0:0:0" +^ZZCOVERAGE("XINDEX","A2",2)="467:0:0:0" +^ZZCOVERAGE("XINDEX","A2",3)="467:4000:0:4000" +^ZZCOVERAGE("XINDEX","A2",4)="467:0:4000:4000" +^ZZCOVERAGE("XINDEX","A2",5)="467:0:0:0" +^ZZCOVERAGE("XINDEX","ALIVE",1)="1:0:0:0" +^ZZCOVERAGE("XINDEX","B5",0)="467:188012:220012:408024" +^ZZCOVERAGE("XINDEX","B5",0,"FOR_LOOP",1)=44620 +^ZZCOVERAGE("XINDEX","B5",1)="467:20000:8000:28000" +^ZZCOVERAGE("XINDEX","B5",2)="467:4000:0:4000" +^ZZCOVERAGE("XINDEX","B5",3)="467:0:0:0" +^ZZCOVERAGE("XINDEX","B5",4)="467:4000:0:4000" +^ZZCOVERAGE("XINDEX","B5",5)="467:0:0:0" +^ZZCOVERAGE("XINDEX","BEG")="467:2460149:2872194:5332343" +^ZZCOVERAGE("XINDEX","BEG",1)="467:8000:0:8000" +^ZZCOVERAGE("XINDEX","BEG",2)="467:4000:0:4000" +^ZZCOVERAGE("XINDEX","BEG",3)="467:0:4000:4000" +^ZZCOVERAGE("XINDEX","BEG",4)="467:0:4000:4000" +^ZZCOVERAGE("XINDEX","BEG",5)="467:4001:0:4001" +^ZZCOVERAGE("XINDEX","BEG",7)="467:0:0:0" +^ZZCOVERAGE("XINDEX","BEG",8)="467:0:0:0" +^ZZCOVERAGE("XINDEX","BEG",9)="467:0:0:0" +^ZZCOVERAGE("XINDEX","BEG",11)="467:4000:0:4000" +^ZZCOVERAGE("XINDEX","BEG",12)="467:0:4000:4000" +^ZZCOVERAGE("XINDEX","BEG",14)="467:0:0:0" +^ZZCOVERAGE("XINDEX","BEG",15)="467:0:0:0" +^ZZCOVERAGE("XINDEX","BEG",16)="467:0:0:0" +^ZZCOVERAGE("XINDEX","CD",0)="44620:32001:36002:68003" +^ZZCOVERAGE("XINDEX","CD",1)="44620:40002:60004:100006" +^ZZCOVERAGE("XINDEX","CD",2)="44620:40001:60002:100003" +^ZZCOVERAGE("XINDEX","CD",3)="44620:36002:44004:80006" +^ZZCOVERAGE("XINDEX","CD",4)="44620:28000:40002:68002" +^ZZCOVERAGE("XINDEX","CD",5)="44620:28002:52001:80003" +^ZZCOVERAGE("XINDEX","CD",6)="10770:28003:20000:48003" +^ZZCOVERAGE("XINDEX","CD",6,"FOR_LOOP",1)=57531 +^ZZCOVERAGE("XINDEX","CD",7)="10770:24004:16000:40004" +^ZZCOVERAGE("XINDEX","CD",9)="44620:60005:40004:100009" +^ZZCOVERAGE("XINDEX","CD",10)="44620:44003:48005:92008" +^ZZCOVERAGE("XINDEX","CD",12)="44620:52004:44002:96006" +^ZZCOVERAGE("XINDEX","EE",0)="116081:148007:200014:348021" +^ZZCOVERAGE("XINDEX","EE",1)="71461:44004:44002:88006" +^ZZCOVERAGE("XINDEX","EE",2)="71461:100007:80003:180010" +^ZZCOVERAGE("XINDEX","EE",3)="54870:44001:48001:92002" +^ZZCOVERAGE("XINDEX","EE",4)="53608:88008:100009:188017" +^ZZCOVERAGE("XINDEX","EE",5)="53608:72006:68004:140010" +^ZZCOVERAGE("XINDEX","EE",6)="53608:76005:72004:148009" +^ZZCOVERAGE("XINDEX","EE",8)="53608:60003:64005:124008" +^ZZCOVERAGE("XINDEX","EE",9)="53608:48003:72003:120006" +^ZZCOVERAGE("XINDEX","EE",10)="53608:52002:96008:148010" +^ZZCOVERAGE("XINDEX","EE",13)="53608:52003:44001:96004" +^ZZCOVERAGE("XINDEX","EE",14)="53608:96007:112006:208013" +^ZZCOVERAGE("XINDEX","EE",15)="53608:24001:52004:76005" +^ZZCOVERAGE("XINDEX","EE",16)="53608:52005:88007:140012" +^ZZCOVERAGE("XINDEX","EE",17)="53608:128008:208017:336025" +^ZZCOVERAGE("XINDEX","F")="1559:4000:4001:8001" +^ZZCOVERAGE("XINDEX","F",0)="1559:4000:0:4000" +^ZZCOVERAGE("XINDEX","G")="1932:56003:96009:152012" +^ZZCOVERAGE("XINDEX","G",0)="1932:4000:8002:12002" +^ZZCOVERAGE("XINDEX","H")="11:0:0:0" +^ZZCOVERAGE("XINDEX","H",0)="11:0:0:0" +^ZZCOVERAGE("XINDEX","K")="2218:40001:24002:64003" +^ZZCOVERAGE("XINDEX","K",0)="2218:4000:4000:8000" +^ZZCOVERAGE("XINDEX","K",1)="2218:0:4001:4001" +^ZZCOVERAGE("XINDEX","L")="259:4001:4000:8001" +^ZZCOVERAGE("XINDEX","L",0)="259:0:0:0" +^ZZCOVERAGE("XINDEX","LN",0)="44620:68005:104005:172010" +^ZZCOVERAGE("XINDEX","LN",1)="44620:40001:64004:104005" +^ZZCOVERAGE("XINDEX","LN",2)="5073:12000:4001:16001" +^ZZCOVERAGE("XINDEX","LN",3)="5073:4000:8000:12000" +^ZZCOVERAGE("XINDEX","LN",4)="5073:20001:0:20001" +^ZZCOVERAGE("XINDEX","LN",5)="5073:20003:12002:32005" +^ZZCOVERAGE("XINDEX","LN",6)="5073:12002:16000:28002" +^ZZCOVERAGE("XINDEX","LOAD")="467:88003:196019:284022" +^ZZCOVERAGE("XINDEX","LOAD",0)="467:88003:196019:284022" +^ZZCOVERAGE("XINDEX","LOAD",1)="467:0:0:0" +^ZZCOVERAGE("XINDEX","LOAD",2)="467:0:0:0" +^ZZCOVERAGE("XINDEX","M")="30:4000:0:4000" +^ZZCOVERAGE("XINDEX","M",0)="30:0:0:0" +^ZZCOVERAGE("XINDEX","N")="1721:88005:80004:168009" +^ZZCOVERAGE("XINDEX","N",0)="1721:4000:0:4000" +^ZZCOVERAGE("XINDEX","POSTRTN")="467:108009:96003:204012" +^ZZCOVERAGE("XINDEX","POSTRTN",1)="467:0:0:0" +^ZZCOVERAGE("XINDEX","POSTRTN",2)="467:0:0:0" +^ZZCOVERAGE("XINDEX","POSTRTN",3)="467:12000:8000:20000" +^ZZCOVERAGE("XINDEX","POSTRTN",3,"FOR_LOOP",1)=2558 +^ZZCOVERAGE("XINDEX","POSTRTN",4)="2091:0:0:0" +^ZZCOVERAGE("XINDEX","POSTRTN",5)="2044:4000:0:4000" +^ZZCOVERAGE("XINDEX","POSTRTN",6)="2044:4000:0:4000" +^ZZCOVERAGE("XINDEX","POSTRTN",9)="2044:0:0:0" +^ZZCOVERAGE("XINDEX","POSTRTN",10)="467:0:4000:4000" +^ZZCOVERAGE("XINDEX","POSTRTN",11)="467:12002:16001:28003" +^ZZCOVERAGE("XINDEX","POSTRTN",11,"FOR_LOOP",1)=5540 +^ZZCOVERAGE("XINDEX","POSTRTN",12)="5073:0:4000:4000" +^ZZCOVERAGE("XINDEX","POSTRTN",13)="5073:8000:4000:12000" +^ZZCOVERAGE("XINDEX","POSTRTN",14)="5073:0:0:0" +^ZZCOVERAGE("XINDEX","POSTRTN",15)="467:0:0:0" +^ZZCOVERAGE("XINDEX","POSTRTN",16)="467:28001:20001:48002" +^ZZCOVERAGE("XINDEX","POSTRTN",16,"FOR_LOOP",1)=16376 +^ZZCOVERAGE("XINDEX","POSTRTN",17)="15909:40006:40001:80007" +^ZZCOVERAGE("XINDEX","POSTRTN",18)="15909:0:0:0" +^ZZCOVERAGE("XINDEX","POSTRTN",19)="467:0:0:0" +^ZZCOVERAGE("XINDEX","Q")="7762:12000:20001:32001" +^ZZCOVERAGE("XINDEX","Q",0)="7762:4000:16001:20001" +^ZZCOVERAGE("XINDEX","QUOTE")="36371:188012:232009:420021" +^ZZCOVERAGE("XINDEX","QUOTE",0)="36371:156010:192008:348018" +^ZZCOVERAGE("XINDEX","QUOTE",0,"FOR_LOOP",1)=323268 +^ZZCOVERAGE("XINDEX","QUOTE",1)="36371:20002:20001:40003" +^ZZCOVERAGE("XINDEX","R")="85:0:8001:8001" +^ZZCOVERAGE("XINDEX","R",0)="85:0:0:0" +^ZZCOVERAGE("XINDEX","S")="17549:716055:988057:1704112" +^ZZCOVERAGE("XINDEX","S",0)="17549:28003:28003:56006" +^ZZCOVERAGE("XINDEX","SE2",0)="86891:176010:272017:448027" +^ZZCOVERAGE("XINDEX","SE2",1)="85079:264015:376016:640031" +^ZZCOVERAGE("XINDEX","SE2",2)="85079:72005:112010:184015" +^ZZCOVERAGE("XINDEX","SEP")="107216:736054:648038:1384092" +^ZZCOVERAGE("XINDEX","SEP",0)="107216:580045:440030:1020075" +^ZZCOVERAGE("XINDEX","SEP",0,"FOR_LOOP",1)=1019212 +^ZZCOVERAGE("XINDEX","SEP",1)="107216:120007:144005:264012" +^ZZCOVERAGE("XINDEX","SET")="85079:772044:1124063:1896107" +^ZZCOVERAGE("XINDEX","SET",0)="85079:176007:168008:344015" +^ZZCOVERAGE("XINDEX","SET",0,"FOR_LOOP",1)=74812 +^ZZCOVERAGE("XINDEX","SET",1)="85079:64005:144010:208015" +^ZZCOVERAGE("XINDEX","ST",0)="44620:68001:56004:124005" +^ZZCOVERAGE("XINDEX","ST",2)="44620:260012:376038:636050" +^ZZCOVERAGE("XINDEX","ST",2,"FOR_LOOP",1)=85813 +^ZZCOVERAGE("XINDEX","ST",2,"FOR_LOOP",2)=126272 +^ZZCOVERAGE("XINDEX","ST",3)="44620:224014:184014:408028" +^ZZCOVERAGE("XINDEX","ST",4)="44620:0:0:0" +^ZZCOVERAGE("XINDEX","U")="72:0:0:0" +^ZZCOVERAGE("XINDEX","U",0)="72:0:0:0" +^ZZCOVERAGE("XINDEX","W")="4584:156009:200014:356023" +^ZZCOVERAGE("XINDEX","W",0)="4584:0:16001:16001" +^ZZCOVERAGE("XINDEX","X")="220:0:0:0" +^ZZCOVERAGE("XINDEX","X",0)="220:0:0:0" +^ZZCOVERAGE("XINDEX","XINDEX")="1:32002:36000:68002" +^ZZCOVERAGE("XINDEX","XINDEX",3)="1:0:0:0" +^ZZCOVERAGE("XINDX1","A",0)="75:0:4000:4000" +^ZZCOVERAGE("XINDX1","A",1)="75:0:0:0" +^ZZCOVERAGE("XINDX1","A",2)="75:0:0:0" +^ZZCOVERAGE("XINDX1","B",0)="75:0:0:0" +^ZZCOVERAGE("XINDX1","B",4)="75:0:0:0" +^ZZCOVERAGE("XINDX1","B",6)="75:0:0:0" +^ZZCOVERAGE("XINDX1","B",7)="75:0:0:0" +^ZZCOVERAGE("XINDX1","E")="73:0:4000:4000" +^ZZCOVERAGE("XINDX1","E",0)="73:0:0:0" +^ZZCOVERAGE("XINDX1","XINDX1")="2:0:0:0" +^ZZCOVERAGE("XINDX1","XINDX1",3)="2:0:0:0" +^ZZCOVERAGE("XINDX10","ASK")="1:0:0:0" +^ZZCOVERAGE("XINDX10","ASK",1)="1:0:0:0" +^ZZCOVERAGE("XINDX10","ASK",2)="1:0:0:0" +^ZZCOVERAGE("XINDX10","ASK",3)="1:0:0:0" +^ZZCOVERAGE("XINDX10","ASK",8)="1:0:0:0" +^ZZCOVERAGE("XINDX2","%")="44620:132010:232014:364024" +^ZZCOVERAGE("XINDX2","%",0)="44620:96008:92005:188013" +^ZZCOVERAGE("XINDX2","%",0,"FOR_LOOP",1)=62810 +^ZZCOVERAGE("XINDX2","%",1)="44620:16001:68003:84004" +^ZZCOVERAGE("XINDX2","ARG")="329774:1516089:2124136:3640225" +^ZZCOVERAGE("XINDX2","ARG",1)="330498:328020:360021:688041" +^ZZCOVERAGE("XINDX2","ARG",2)="262221:228015:296022:524037" +^ZZCOVERAGE("XINDX2","ARG",3)="226556:260020:468034:728054" +^ZZCOVERAGE("XINDX2","ARG",4)="126854:104004:160011:264015" +^ZZCOVERAGE("XINDX2","ARG",5)="117750:136007:148011:284018" +^ZZCOVERAGE("XINDX2","ARG",6)="88629:60001:96003:156004" +^ZZCOVERAGE("XINDX2","ARG",7)="88424:80005:100006:180011" +^ZZCOVERAGE("XINDX2","ARG",8)="86550:72002:108007:180009" +^ZZCOVERAGE("XINDX2","ARGG")="18715:288018:352019:640037" +^ZZCOVERAGE("XINDX2","ARGG",0)="18715:76007:84005:160012" +^ZZCOVERAGE("XINDX2","ARGG",0,"FOR_LOOP",1)=49672 +^ZZCOVERAGE("XINDX2","ARGS")="44410:464031:676031:1140062" +^ZZCOVERAGE("XINDX2","ARGS",1)="63125:620038:844037:1464075" +^ZZCOVERAGE("XINDX2","ARGS",1,"FOR_LOOP",1)=291597 +^ZZCOVERAGE("XINDX2","ARGS",2)="63125:24001:60004:84005" +^ZZCOVERAGE("XINDX2","DN")="44410:208011:284017:492028" +^ZZCOVERAGE("XINDX2","DN",0)="44410:44003:108008:152011" +^ZZCOVERAGE("XINDX2","DN",1)="44410:152008:144006:296014" +^ZZCOVERAGE("XINDX2","EXT",1)="1970:4000:8001:12001" +^ZZCOVERAGE("XINDX2","EXT",2)="1970:0:0:0" +^ZZCOVERAGE("XINDX2","EXT",3)="1970:8001:12001:20002" +^ZZCOVERAGE("XINDX2","EXT",4)="1970:0:4000:4000" +^ZZCOVERAGE("XINDX2","FLUSH")="94:0:0:0" +^ZZCOVERAGE("XINDX2","FLUSH",0)="94:0:0:0" +^ZZCOVERAGE("XINDX2","FLUSH",1)="94:0:0:0" +^ZZCOVERAGE("XINDX2","FLUSH",1,"FOR_LOOP",1)=415 +^ZZCOVERAGE("XINDX2","FLUSH",2)="94:0:0:0" +^ZZCOVERAGE("XINDX2","FNC")="12:0:0:0" +^ZZCOVERAGE("XINDX2","FNC",0)="12:0:0:0" +^ZZCOVERAGE("XINDX2","FNC",1)="12:0:0:0" +^ZZCOVERAGE("XINDX2","FNC",2)="12:0:0:0" +^ZZCOVERAGE("XINDX2","FNC",3)="12:0:0:0" +^ZZCOVERAGE("XINDX2","FNC",4)="12:0:0:0" +^ZZCOVERAGE("XINDX2","FUN")="29121:340019:424027:764046" +^ZZCOVERAGE("XINDX2","FUN",0)="29121:36004:40002:76006" +^ZZCOVERAGE("XINDX2","FUN",1)="23452:48002:72003:120005" +^ZZCOVERAGE("XINDX2","FUN",2)="23452:20000:44003:64003" +^ZZCOVERAGE("XINDX2","FUN",3)="23393:96004:56005:152009" +^ZZCOVERAGE("XINDX2","FUN",3,"FOR_LOOP",1)=147754 +^ZZCOVERAGE("XINDX2","FUN",4)="23393:48003:56005:104008" +^ZZCOVERAGE("XINDX2","FUN",5)="23393:60004:92005:152009" +^ZZCOVERAGE("XINDX2","GLO",0)="9104:28002:28001:56003" +^ZZCOVERAGE("XINDX2","GLO",1)="9104:12001:20001:32002" +^ZZCOVERAGE("XINDX2","GLO",2)="9104:16000:28001:44001" +^ZZCOVERAGE("XINDX2","GLO",3)="9104:36002:80004:116006" +^ZZCOVERAGE("XINDX2","GLO",4)="9104:8000:4000:12000" +^ZZCOVERAGE("XINDX2","INC")="322910:416022:652029:1068051" +^ZZCOVERAGE("XINDX2","INC",0)="365505:320019:472020:792039" +^ZZCOVERAGE("XINDX2","INC2")="42595:104006:148008:252014" +^ZZCOVERAGE("XINDX2","INC2",0)="42595:48001:40003:88004" +^ZZCOVERAGE("XINDX2","LOC")="99702:576031:736052:1312083" +^ZZCOVERAGE("XINDX2","LOC",0)="99702:144010:156013:300023" +^ZZCOVERAGE("XINDX2","LOC",1)="99702:124004:148011:272015" +^ZZCOVERAGE("XINDX2","LOC",2)="99702:212011:272014:484025" +^ZZCOVERAGE("XINDX2","LOC",3)="99702:52005:96006:148011" +^ZZCOVERAGE("XINDX2","NAK",0)="996:0:0:0" +^ZZCOVERAGE("XINDX2","NAK",1)="996:0:0:0" +^ZZCOVERAGE("XINDX2","PAT")="205:4000:0:4000" +^ZZCOVERAGE("XINDX2","PAT",0)="205:0:0:0" +^ZZCOVERAGE("XINDX2","PAT",1)="205:4000:0:4000" +^ZZCOVERAGE("XINDX2","PAT",1,"FOR_LOOP",1)=457 +^ZZCOVERAGE("XINDX2","PAT",2)="205:0:0:0" +^ZZCOVERAGE("XINDX2","PATCODE")="457:4000:4000:8000" +^ZZCOVERAGE("XINDX2","PATCODE",0)="457:0:4000:4000" +^ZZCOVERAGE("XINDX2","PATCODE",1)="358:4000:0:4000" +^ZZCOVERAGE("XINDX2","PATCODE",1,"FOR_LOOP",1)=791 +^ZZCOVERAGE("XINDX2","PATCODE",2)="358:0:0:0" +^ZZCOVERAGE("XINDX2","PATCODE",3)="358:0:0:0" +^ZZCOVERAGE("XINDX2","PATCODE",4)="358:0:0:0" +^ZZCOVERAGE("XINDX2","PATQ")="99:4000:4000:8000" +^ZZCOVERAGE("XINDX2","PATQ",0)="99:0:4000:4000" +^ZZCOVERAGE("XINDX2","PATQ",0,"FOR_LOOP",1)=247 +^ZZCOVERAGE("XINDX2","PATQ",1)="99:4000:0:4000" +^ZZCOVERAGE("XINDX2","PATQ",2)="99:0:0:0" +^ZZCOVERAGE("XINDX2","PEEK")="112687:168013:248022:416035" +^ZZCOVERAGE("XINDX2","PEEK",0)="112687:120009:164010:284019" +^ZZCOVERAGE("XINDX2","PEEKDN")="17373:56002:40000:96002" +^ZZCOVERAGE("XINDX2","PEEKDN",0)="17373:48002:32000:80002" +^ZZCOVERAGE("XINDX2","REPCNT")="457:0:0:0" +^ZZCOVERAGE("XINDX2","REPCNT",0)="457:0:0:0" +^ZZCOVERAGE("XINDX2","REPCNT",0,"FOR_LOOP",1)=1004 +^ZZCOVERAGE("XINDX2","REPCNT",1)="457:0:0:0" +^ZZCOVERAGE("XINDX2","REPCNT",2)="457:0:0:0" +^ZZCOVERAGE("XINDX2","SPV",1)="3699:0:8001:8001" +^ZZCOVERAGE("XINDX2","SPV",2)="3699:0:0:0" +^ZZCOVERAGE("XINDX2","ST")="110835:464030:648049:1112079" +^ZZCOVERAGE("XINDX2","ST",0)="110835:192009:248021:440030" +^ZZCOVERAGE("XINDX2","ST",1)="110835:100008:156011:256019" +^ZZCOVERAGE("XINDX2","ST",2)="110835:76005:116005:192010" +^ZZCOVERAGE("XINDX2","TEXT",0)="59:0:0:0" +^ZZCOVERAGE("XINDX2","TEXT",1)="59:0:0:0" +^ZZCOVERAGE("XINDX2","TEXT",2)="59:0:0:0" +^ZZCOVERAGE("XINDX2","TEXT",3)="59:0:0:0" +^ZZCOVERAGE("XINDX2","UP")="44410:116012:180012:296024" +^ZZCOVERAGE("XINDX2","UP",1)="44410:112012:116006:228018" +^ZZCOVERAGE("XINDX2","VA")="5073:16001:20000:36001" +^ZZCOVERAGE("XINDX2","VA",0)="5073:4000:12000:16000" +^ZZCOVERAGE("XINDX2","VA",1)="5073:8000:4000:12000" +^ZZCOVERAGE("XINDX2","VT")="10205:4001:24002:28003" +^ZZCOVERAGE("XINDX2","VT",0)="10205:0:8000:8000" +^ZZCOVERAGE("XINDX2","VT",1)="10205:0:4000:4000" +^ZZCOVERAGE("XINDX3","A",0)="8136:36001:12001:48002" +^ZZCOVERAGE("XINDX3","ASM")="312:12001:0:12001" +^ZZCOVERAGE("XINDX3","ASM",0)="312:0:0:0" +^ZZCOVERAGE("XINDX3","ASM",1)="312:8001:0:8001" +^ZZCOVERAGE("XINDX3","ASM",1,"FOR_LOOP",1)=2110 +^ZZCOVERAGE("XINDX3","ASM",2)="312:0:0:0" +^ZZCOVERAGE("XINDX3","DN")="498:4000:4000:8000" +^ZZCOVERAGE("XINDX3","DN",0)="498:0:4000:4000" +^ZZCOVERAGE("XINDX3","DN",1)="498:4000:0:4000" +^ZZCOVERAGE("XINDX3","FL")="63250:152007:260014:412021" +^ZZCOVERAGE("XINDX3","FL",1)="63250:72000:144009:216009" +^ZZCOVERAGE("XINDX3","FL",2)="63250:64006:80004:144010" +^ZZCOVERAGE("XINDX3","INC")="145482:224018:308026:532044" +^ZZCOVERAGE("XINDX3","INC",0)="145482:188015:196015:384030" +^ZZCOVERAGE("XINDX3","KL",1)="2218:0:4000:4000" +^ZZCOVERAGE("XINDX3","KL1")="28:0:0:0" +^ZZCOVERAGE("XINDX3","KL1",0)="28:0:0:0" +^ZZCOVERAGE("XINDX3","KL2")="724:4000:28000:32000" +^ZZCOVERAGE("XINDX3","KL2",0)="724:0:0:0" +^ZZCOVERAGE("XINDX3","KL2",1)="724:0:4000:4000" +^ZZCOVERAGE("XINDX3","KL2",2)="724:0:0:0" +^ZZCOVERAGE("XINDX3","KL3")="3320:12002:36002:48004" +^ZZCOVERAGE("XINDX3","KL3",0)="3320:4000:8000:12000" +^ZZCOVERAGE("XINDX3","KL3",1)="3320:4001:4000:8001" +^ZZCOVERAGE("XINDX3","KL5",0)="3320:0:20002:20002" +^ZZCOVERAGE("XINDX3","MULT")="498:8001:4000:12001" +^ZZCOVERAGE("XINDX3","MULT",0)="498:4001:0:4001" +^ZZCOVERAGE("XINDX3","MULT",1)="498:4000:4000:8000" +^ZZCOVERAGE("XINDX3","MULT",1,"FOR_LOOP",1)=2401 +^ZZCOVERAGE("XINDX3","MULT",2)="498:0:0:0" +^ZZCOVERAGE("XINDX3","N2",0)="23604:68004:36003:104007" +^ZZCOVERAGE("XINDX3","N2",3)="11802:16002:4000:20002" +^ZZCOVERAGE("XINDX3","N2",4)="187:0:0:0" +^ZZCOVERAGE("XINDX3","N2",5)="187:0:0:0" +^ZZCOVERAGE("XINDX3","N2",6)="11628:12001:20002:32003" +^ZZCOVERAGE("XINDX3","N2",7)="11628:12000:8000:20000" +^ZZCOVERAGE("XINDX3","NE")="779:32002:16001:48003" +^ZZCOVERAGE("XINDX3","NE",1)="2500:4000:4000:8000" +^ZZCOVERAGE("XINDX3","NE",2)="2500:4000:20000:24000" +^ZZCOVERAGE("XINDX3","PEEK")="498:0:0:0" +^ZZCOVERAGE("XINDX3","PEEK",0)="498:0:0:0" +^ZZCOVERAGE("XINDX3","PEEKDN")="39:0:0:0" +^ZZCOVERAGE("XINDX3","PEEKDN",0)="39:0:0:0" +^ZZCOVERAGE("XINDX3","RD",0)="85:0:0:0" +^ZZCOVERAGE("XINDX3","RD1",0)="278:0:4001:4001" +^ZZCOVERAGE("XINDX3","RD1",3)="193:0:4000:4000" +^ZZCOVERAGE("XINDX3","RD1",4)="85:0:0:0" +^ZZCOVERAGE("XINDX3","RD1",5)="85:0:0:0" +^ZZCOVERAGE("XINDX3","RD2")="85:0:4000:4000" +^ZZCOVERAGE("XINDX3","RD2",0)="255:0:0:0" +^ZZCOVERAGE("XINDX3","RD2",1)="170:0:0:0" +^ZZCOVERAGE("XINDX3","RD2",2)="170:0:4000:4000" +^ZZCOVERAGE("XINDX3","RD2",3)="85:0:0:0" +^ZZCOVERAGE("XINDX3","RD3")="108:0:0:0" +^ZZCOVERAGE("XINDX3","RD3",0)="161:0:0:0" +^ZZCOVERAGE("XINDX3","RD3",1)="37:0:0:0" +^ZZCOVERAGE("XINDX3","RD3",2)="37:0:0:0" +^ZZCOVERAGE("XINDX3","S",1)="17579:48005:56003:104008" +^ZZCOVERAGE("XINDX3","S2",0)="110559:164008:220011:384019" +^ZZCOVERAGE("XINDX3","S2",1)="92980:64007:96005:160012" +^ZZCOVERAGE("XINDX3","S2",2)="92980:52004:100005:152009" +^ZZCOVERAGE("XINDX3","S2",3)="87238:60005:68003:128008" +^ZZCOVERAGE("XINDX3","S2",4)="63916:68007:68004:136011" +^ZZCOVERAGE("XINDX3","S2",5)="846:0:0:0" +^ZZCOVERAGE("XINDX3","S2",6)="846:0:4000:4000" +^ZZCOVERAGE("XINDX3","S2",10)="63916:56004:60003:116007" +^ZZCOVERAGE("XINDX3","S2",11)="62481:40002:60003:100005" +^ZZCOVERAGE("XINDX3","S2",12)="62313:56003:56005:112008" +^ZZCOVERAGE("XINDX3","S2",13)="61815:76007:152010:228017" +^ZZCOVERAGE("XINDX3","UP")="498:8000:4000:12000" +^ZZCOVERAGE("XINDX3","UP",1)="498:8000:4000:12000" +^ZZCOVERAGE("XINDX3","VLN",1)="15909:32002:16001:48003" +^ZZCOVERAGE("XINDX3","VLN",2)="15909:44002:28003:72005" +^ZZCOVERAGE("XINDX3","VLNF")="15909:120006:60005:180011" +^ZZCOVERAGE("XINDX3","VLNF",0)="15909:32002:12001:44003" +^ZZCOVERAGE("XINDX4","CNG")="2186:0:24001:24001" +^ZZCOVERAGE("XINDX4","CNG",0)="2186:0:0:0" +^ZZCOVERAGE("XINDX4","CNG",2)="2186:0:8001:8001" +^ZZCOVERAGE("XINDX4","CNG",2,"FOR_LOOP",1)=2202 +^ZZCOVERAGE("XINDX4","CNG",3)="2186:0:12000:12000" +^ZZCOVERAGE("XINDX4","DG",0)="8937:20003:16000:36003" +^ZZCOVERAGE("XINDX4","DG",1)="8937:12000:16001:28001" +^ZZCOVERAGE("XINDX4","DG",2)="8937:8001:20002:28003" +^ZZCOVERAGE("XINDX4","DG",3)="8937:16000:12000:28000" +^ZZCOVERAGE("XINDX4","DG",4)="8937:4000:12001:16001" +^ZZCOVERAGE("XINDX4","DG",5)="8937:0:12002:12002" +^ZZCOVERAGE("XINDX4","DG",6)="8937:12001:12000:24001" +^ZZCOVERAGE("XINDX4","DG",7)="8937:12000:20003:32003" +^ZZCOVERAGE("XINDX4","DG",8)="8937:24001:4001:28002" +^ZZCOVERAGE("XINDX4","DG",9)="8937:4000:12001:16001" +^ZZCOVERAGE("XINDX4","DG",10)="8937:16001:28001:44002" +^ZZCOVERAGE("XINDX4","DG",11)="8937:8000:12000:20000" +^ZZCOVERAGE("XINDX4","DG",12)="8937:4000:16002:20002" +^ZZCOVERAGE("XINDX4","DG",13)="8937:8000:12002:20002" +^ZZCOVERAGE("XINDX4","DG",14)="8937:0:4000:4000" +^ZZCOVERAGE("XINDX4","DG",15)="8937:36002:32002:68004" +^ZZCOVERAGE("XINDX4","DG",16)="8937:8001:4001:12002" +^ZZCOVERAGE("XINDX4","DG",17)="8387:12002:4000:16002" +^ZZCOVERAGE("XINDX4","DG1")="8449:168011:180013:348024" +^ZZCOVERAGE("XINDX4","DG1",0)="8449:12001:16001:28002" +^ZZCOVERAGE("XINDX4","FR",0)="525:0:4001:4001" +^ZZCOVERAGE("XINDX4","FR",1)="525:0:0:0" +^ZZCOVERAGE("XINDX4","FR",2)="525:0:0:0" +^ZZCOVERAGE("XINDX4","INSIDE")="2202:4001:32001:36002" +^ZZCOVERAGE("XINDX4","INSIDE",0)="2202:0:16000:16000" +^ZZCOVERAGE("XINDX4","INSIDE",1)="2202:0:4000:4000" +^ZZCOVERAGE("XINDX4","INSIDE",2)="2202:4001:4000:8001" +^ZZCOVERAGE("XINDX4","LO",1)="259:0:0:0" +^ZZCOVERAGE("XINDX4","LO",2)="259:0:0:0" +^ZZCOVERAGE("XINDX4","LO",3)="259:0:0:0" +^ZZCOVERAGE("XINDX4","LO",4)="259:0:4000:4000" +^ZZCOVERAGE("XINDX4","LO",4,"FOR_LOOP",1)=260 +^ZZCOVERAGE("XINDX4","LO",5)="260:0:0:0" +^ZZCOVERAGE("XINDX4","LO",6)="260:0:0:0" +^ZZCOVERAGE("XINDX4","LO",7)="260:0:0:0" +^ZZCOVERAGE("XINDX4","LO",8)="89:0:0:0" +^ZZCOVERAGE("XINDX4","LO",9)="89:0:0:0" +^ZZCOVERAGE("XINDX4","LO",10)="89:4001:0:4001" +^ZZCOVERAGE("XINDX4","LO",12)="259:0:0:0" +^ZZCOVERAGE("XINDX4","LO",13)="259:0:0:0" +^ZZCOVERAGE("XINDX4","LOOP")="14735:44003:108008:152011" +^ZZCOVERAGE("XINDX4","LOOP",0)="14735:28002:72005:100007" +^ZZCOVERAGE("XINDX4","LOOP",0,"FOR_LOOP",1)=68121 +^ZZCOVERAGE("XINDX4","LOOP",1)="14735:4000:32003:36003" +^ZZCOVERAGE("XINDX4","PAREN")="2638:24000:36004:60004" +^ZZCOVERAGE("XINDX4","PAREN",0)="2638:4000:8000:12000" +^ZZCOVERAGE("XINDX4","PAREN",1)="2638:20000:16001:36001" +^ZZCOVERAGE("XINDX4","PAREN",1,"FOR_LOOP",1)=50171 +^ZZCOVERAGE("XINDX4","PAREN",2)="2638:0:8002:8002" +^ZZCOVERAGE("XINDX4","PAREN",3)="2638:0:0:0" +^ZZCOVERAGE("XINDX4","PRUNE")="2186:8001:16001:24002" +^ZZCOVERAGE("XINDX4","PRUNE",0)="2186:8001:4000:12001" +^ZZCOVERAGE("XINDX4","PRUNE",1)="2186:0:8001:8001" +^ZZCOVERAGE("XINDX4","PRUNE",1,"FOR_LOOP",1)=2186 +^ZZCOVERAGE("XINDX4","PRUNE",2)="2186:0:4000:4000" +^ZZCOVERAGE("XINDX4","PRUNE",2,"FOR_LOOP",1)=2187 +^ZZCOVERAGE("XINDX4","PRUNE",3)="2186:0:0:0" +^ZZCOVERAGE("XINDX4","Q",1)="747:8000:0:8000" +^ZZCOVERAGE("XINDX4","Q",2)="747:0:0:0" +^ZZCOVERAGE("XINDX4","QUOTE")="2402:28002:28000:56002" +^ZZCOVERAGE("XINDX4","QUOTE",0)="2402:20002:20000:40002" +^ZZCOVERAGE("XINDX4","QUOTE",0,"FOR_LOOP",1)=23674 +^ZZCOVERAGE("XINDX4","QUOTE",1)="2402:0:0:0" +^ZZCOVERAGE("XINDX4","QUOTE",2)="2402:8000:4000:12000" +^ZZCOVERAGE("XINDX4","ST")="8937:24000:16002:40002" +^ZZCOVERAGE("XINDX4","ST",0)="8937:12000:8000:20000" +^ZZCOVERAGE("XINDX4","ST",1)="8937:8000:8002:16002" +^ZZCOVERAGE("XINDX4","WR",0)="4584:12001:12000:24001" +^ZZCOVERAGE("XINDX4","WR",1)="4584:0:8000:8000" +^ZZCOVERAGE("XINDX4","WR",2)="4584:72004:56006:128010" +^ZZCOVERAGE("XINDX4","WR",2,"FOR_LOOP",1)=27607 +^ZZCOVERAGE("XINDX4","WR",3)="23023:8002:32003:40005" +^ZZCOVERAGE("XINDX4","WR",4)="20835:12000:32001:44001" +^ZZCOVERAGE("XINDX4","WR",5)="20835:24002:8001:32003" +^ZZCOVERAGE("XINDX4","WR",6)="20835:24000:36002:60002" +^ZZCOVERAGE("XINDX4","WR",7)="20835:0:0:0" +^ZZCOVERAGE("XINDX4","WR",8)="4584:4000:0:4000" +^ZZCOVERAGE("XINDX4","XE",0)="220:0:0:0" +^ZZCOVERAGE("XINDX4","XE",1)="220:0:0:0" +^ZZCOVERAGE("XINDX5","A",0)="468:0:4000:4000" +^ZZCOVERAGE("XINDX5","A",1)="467:28002:24000:52002" +^ZZCOVERAGE("XINDX5","A",1,"FOR_LOOP",1)=4011 +^ZZCOVERAGE("XINDX5","A",2)="467:0:0:0" +^ZZCOVERAGE("XINDX5","AA")="3544:48004:68006:116010" +^ZZCOVERAGE("XINDX5","AA",0)="3544:8002:16003:24005" +^ZZCOVERAGE("XINDX5","AA",1)="1902:0:4000:4000" +^ZZCOVERAGE("XINDX5","AA",2)="1902:4001:0:4001" +^ZZCOVERAGE("XINDX5","AA",3)="1902:12001:4001:16002" +^ZZCOVERAGE("XINDX5","AA",4)="1902:12000:32002:44002" +^ZZCOVERAGE("XINDX5","AA",5)="1902:0:0:0" +^ZZCOVERAGE("XINDX5","AA",6)="1209:0:0:0" +^ZZCOVERAGE("XINDX5","AA",7)="1209:8000:4000:12000" +^ZZCOVERAGE("XINDX5","AA",8)="1209:0:0:0" +^ZZCOVERAGE("XINDX5","AA",9)="1642:0:4000:4000" +^ZZCOVERAGE("XINDX5","AA",10)="1594:0:0:0" +^ZZCOVERAGE("XINDX5","AA",11)="1594:4000:4000:8000" +^ZZCOVERAGE("XINDX5","AA",12)="1642:0:0:0" +^ZZCOVERAGE("XINDX5","B",0)="1:0:0:0" +^ZZCOVERAGE("XINDX5","CLEAN",1)="1:0:0:0" +^ZZCOVERAGE("XINDX5","CLEAN",2)="1:0:0:0" +^ZZCOVERAGE("XINDX5","CLEAN",3)="1:0:0:0" +^ZZCOVERAGE("XINDX5","END",0)="1:0:0:0" +^ZZCOVERAGE("XINDX5","END",1)="1:0:0:0" +^ZZCOVERAGE("XINDX5","END",2)="1:0:0:0" +^ZZCOVERAGE("XINDX5","END",3)="1:0:0:0" +^ZZCOVERAGE("XINDX5","VTAG")="4320:12000:16001:28001" +^ZZCOVERAGE("XINDX5","VTAG",0)="4320:12000:8001:20001" +^ZZCOVERAGE("XINDX5","VTAG",1)="4320:0:4000:4000" +^ZZCOVERAGE("XINDX5","XINDX5",3)="1:0:0:0" +^ZZCOVERAGE("XINDX5","XINDX5",4)="1:0:0:0" +^ZZCOVERAGE("XINDX5","XINDX5",5)="1:0:0:0" +^ZZCOVERAGE("XINDX5","XINDX5",7)="1:0:0:0" +^ZZCOVERAGE("XINDX51","B")="1:0:4001:4001" +^ZZCOVERAGE("XINDX51","B",0)="1:0:0:0" +^ZZCOVERAGE("XINDX51","B",1)="1:0:0:0" +^ZZCOVERAGE("XINDX51","B",3)="1:0:4001:4001" +^ZZCOVERAGE("XINDX51","B",3,"FOR_LOOP",1)=468 +^ZZCOVERAGE("XINDX51","B",4)="1:0:0:0" +^ZZCOVERAGE("XINDX51","B",6)="1:0:0:0" +^ZZCOVERAGE("XINDX51","BHDR")="60:0:4000:4000" +^ZZCOVERAGE("XINDX51","BHDR",0)="60:0:4000:4000" +^ZZCOVERAGE("XINDX51","BHDR",1)="60:0:0:0" +^ZZCOVERAGE("XINDX51","END",0)="1:0:0:0" +^ZZCOVERAGE("XINDX51","HD")="60:0:0:0" +^ZZCOVERAGE("XINDX51","HD",0)="60:0:0:0" +^ZZCOVERAGE("XINDX51","HD",1)="60:0:0:0" +^ZZCOVERAGE("XINDX51","HD1")="1:0:0:0" +^ZZCOVERAGE("XINDX51","HD1",0)="1:0:0:0" +^ZZCOVERAGE("XINDX51","HD1",1)="1:0:0:0" +^ZZCOVERAGE("XINDX51","HD2")="60:4000:0:4000" +^ZZCOVERAGE("XINDX51","HD2",0)="60:4000:0:4000" +^ZZCOVERAGE("XINDX51","HD2",1)="60:0:0:0" +^ZZCOVERAGE("XINDX51","WAIT")="1:0:0:0" +^ZZCOVERAGE("XINDX51","WAIT",0)="1:0:0:0" +^ZZCOVERAGE("XINDX51","WAIT",1)="1:0:0:0" +^ZZCOVERAGE("XINDX51","WAIT",2)="1:0:0:0" +^ZZCOVERAGE("XINDX51","WERR")="60:0:0:0" +^ZZCOVERAGE("XINDX51","WERR",0)="60:0:0:0" +^ZZCOVERAGE("XINDX51","WERR",1)="60:0:0:0" +^ZZCOVERAGE("XINDX51","WERR",2)="60:0:0:0" +^ZZCOVERAGE("XINDX51","WERR",2,"FOR_LOOP",1)=135 +^ZZCOVERAGE("XINDX51","WERR",3)="75:0:0:0" +^ZZCOVERAGE("XINDX51","WERR",4)="75:0:0:0" +^ZZCOVERAGE("XINDX51","WERR",5)="75:0:0:0" +^ZZCOVERAGE("XINDX51","WERR",6)="75:0:0:0" +^ZZCOVERAGE("XINDX51","WERR",7)="60:0:0:0" +^ZZCOVERAGE("XINDX51","WORL")="70:0:0:0" +^ZZCOVERAGE("XINDX51","WORL",0)="70:0:0:0" +^ZZCOVERAGE("XINDX51","WORL",1)="70:0:0:0" +^ZZCOVERAGE("XINDX51","WORL",2)="70:0:0:0" +^ZZCOVERAGE("XINDX51","WORL",3)="70:0:0:0" +^ZZCOVERAGE("XINDX51","WORL",3,"FOR_LOOP",1)=76 +^ZZCOVERAGE("XINDX51","WORL",4)="70:0:0:0" +^ZZCOVERAGE("XINDX52","CASE")="2:0:0:0" +^ZZCOVERAGE("XINDX52","CASE",0)="2:0:0:0" +^ZZCOVERAGE("XINDX52","CASE",1)="2:0:0:0" +^ZZCOVERAGE("XINDX6","ANS")="2:0:0:0" +^ZZCOVERAGE("XINDX6","ANS",0)="2:0:0:0" +^ZZCOVERAGE("XINDX6","ANS",1)="2:0:0:0" +^ZZCOVERAGE("XINDX6","ANS",1,"FOR_LOOP",1)=2 +^ZZCOVERAGE("XINDX6","ANS",2)="2:0:0:0" +^ZZCOVERAGE("XINDX6","ASKRTN")="1:4000:0:4000" +^ZZCOVERAGE("XINDX6","ASKRTN",1)="1:0:0:0" +^ZZCOVERAGE("XINDX6","ASKRTN",1,"FOR_LOOP",1)=468 +^ZZCOVERAGE("XINDX6","ASKRTN",2)="1:4000:0:4000" +^ZZCOVERAGE("XINDX6","ASKRTN",2,"FOR_LOOP",1)=468 +^ZZCOVERAGE("XINDX6","ASKRTN",3)="1:0:0:0" +^ZZCOVERAGE("XINDX6","DEVICE",0)="1:0:0:0" +^ZZCOVERAGE("XINDX6","DEVICE",2)="1:0:0:0" +^ZZCOVERAGE("XINDX6","DEVICE",3)="1:0:0:0" +^ZZCOVERAGE("XINDX6","L7",0)="1:0:0:0" +^ZZCOVERAGE("XINDX6","L7",1)="1:0:0:0" +^ZZCOVERAGE("XINDX6","NY")="1:0:0:0" +^ZZCOVERAGE("XINDX6","NY",0)="1:0:0:0" +^ZZCOVERAGE("XINDX6","PARAM")="1:0:0:0" +^ZZCOVERAGE("XINDX6","PARAM",1)="1:0:0:0" +^ZZCOVERAGE("XINDX6","PARAM",2)="1:0:0:0" +^ZZCOVERAGE("XINDX6","PARAM",2,"FOR_LOOP",1)=10 +^ZZCOVERAGE("XINDX6","PARAM",3)="1:0:0:0" +^ZZCOVERAGE("XINDX6","PARAM",4)="1:0:0:0" +^ZZCOVERAGE("XINDX6","PARAM",5)="1:0:0:0" +^ZZCOVERAGE("XINDX6","PARAM",6)="1:0:0:0" +^ZZCOVERAGE("XINDX6","PARAM",7)="1:0:0:0" +^ZZCOVERAGE("XINDX6","RD")="2:0:0:0" +^ZZCOVERAGE("XINDX6","RD",0)="2:0:0:0" +^ZZCOVERAGE("XINDX6","XINDX6",5)="1:0:0:0" +^ZZCOVERAGE("XINDX6","XINDX6",6)="1:0:0:0" +^ZZCOVERAGE("XINDX6","XINDX6",7)="1:0:0:0" +^ZZCOVERAGE("XINDX6","XINDX6",8)="1:0:0:0" +^ZZCOVERAGE("XINDX6","XINDX6",9)="1:0:0:0" +^ZZCOVERAGE("XINDX6","XINDX6",10)="1:0:0:0" +^ZZCOVERAGE("XINDX6","XINDX6",11)="1:0:0:0" +^ZZCOVERAGE("XINDX6","XINDX6",12)="1:0:0:0" +^ZZCOVERAGE("XINDX6","XINDX6",13)="1:0:0:0" +^ZZCOVERAGE("XINDX6","YN")="1:0:0:0" +^ZZCOVERAGE("XINDX6","YN",0)="1:0:0:0" +^ZZCOVERAGE("XINDX7","BUILD")="1:0:0:0" +^ZZCOVERAGE("XINDX7","BUILD",0)="1:0:0:0" +^ZZCOVERAGE("XINDX7","BUILD",1)="1:0:0:0" +^ZZCOVERAGE("XINDX7","BUILD",1,"FOR_LOOP",1)=10 +^ZZCOVERAGE("XINDX7","BUILD",2)="9:0:0:0" +^ZZCOVERAGE("XINDX7","BUILD",3)="6:0:0:0" +^ZZCOVERAGE("XINDX7","BUILD",3,"FOR_LOOP",1)=85 +^ZZCOVERAGE("XINDX7","BUILD",4)="79:0:0:0" +^ZZCOVERAGE("XINDX7","BUILD",5)="79:0:0:0" +^ZZCOVERAGE("XINDX7","BUILD",6)="6:0:0:0" +^ZZCOVERAGE("XINDX7","BUILD",7)="1:0:0:0" +^ZZCOVERAGE("XINDX7","HDR")="2:0:0:0" +^ZZCOVERAGE("XINDX7","HDR",0)="2:0:0:0" +^ZZCOVERAGE("XINDX7","HDR",1)="2:0:0:0" +^ZZCOVERAGE("XINDX7","HDR",2)="1:0:0:0" +^ZZCOVERAGE("XINDX7","HDR",3)="1:0:0:0" +^ZZCOVERAGE("XINDX7","HDR",4)="1:0:0:0" +^ZZCOVERAGE("XINDX7","HDR",5)="1:0:0:0" +^ZZCOVERAGE("XINDX7","HDR",6)="2:0:0:0" +^ZZCOVERAGE("XINDX7","HDR",7)="2:0:0:0" +^ZZCOVERAGE("XINDX7","SETUP")="1:0:0:0" +^ZZCOVERAGE("XINDX7","SETUP",1)="1:0:0:0" +^ZZCOVERAGE("XINDX7","SETUP",2)="1:0:0:0" +^ZZCOVERAGE("XINDX7","SETUP",3)="1:0:0:0" +^ZZCOVERAGE("XINDX7","SETUP",4)="1:0:0:0" +^ZZCOVERAGE("XINDX7","SETUP",6)="1:0:0:0" +^ZZCOVERAGE("XINDX7","SETUP",7)="1:0:0:0" +^ZZCOVERAGE("XINDX7","SETUP",7,"FOR_LOOP",1)=468 +^ZZCOVERAGE("XINDX7","SETUP",8)="1:0:0:0" +^ZZCOVERAGE("XINDX7","SETUP",9)="1:0:0:0" +^ZZCOVERAGE("XINDX7","SETUP",10)="1:0:0:0" +^ZZCOVERAGE("XINDX9","ADD")="406841:436032:684041:1120073" +^ZZCOVERAGE("XINDX9","ADD",0)="598820:552042:692040:1244082" +^ZZCOVERAGE("XINDX9","AR")="197699:748039:1052073:1800112" +^ZZCOVERAGE("XINDX9","AR",0)="197699:708036:936061:1644097" +^ZZCOVERAGE("XINDX9","CASE")="23461:28003:92005:120008" +^ZZCOVERAGE("XINDX9","CASE",0)="23461:12002:48003:60005" +^ZZCOVERAGE("XINDX9","CASE",1)="23461:12001:28000:40001" +^ZZCOVERAGE("XINDX9","DN")="45002:204010:248016:452026" +^ZZCOVERAGE("XINDX9","DN",0)="45002:176008:196011:372019" +^ZZCOVERAGE("XINDX9","DN",1)="45002:16001:24003:40004" +^ZZCOVERAGE("XINDX9","EXT",1)="1970:4000:12001:16001" +^ZZCOVERAGE("XINDX9","FNC")="29146:96005:104009:200014" +^ZZCOVERAGE("XINDX9","FNC",0)="29146:28001:20003:48004" +^ZZCOVERAGE("XINDX9","FNC",1)="29146:44002:72005:116007" +^ZZCOVERAGE("XINDX9","FNC",2)="12:0:0:0" +^ZZCOVERAGE("XINDX9","FNC",3)="12:0:0:0" +^ZZCOVERAGE("XINDX9","FUNC")="29134:284015:400024:684039" +^ZZCOVERAGE("XINDX9","FUNC",1)="29134:112005:120007:232012" +^ZZCOVERAGE("XINDX9","FUNC",2)="23461:48003:72004:120007" +^ZZCOVERAGE("XINDX9","FUNC",3)="23461:20000:32001:52001" +^ZZCOVERAGE("XINDX9","FX",0)="23461:68004:116009:184013" +^ZZCOVERAGE("XINDX9","GVAR")="29134:96004:180015:276019" +^ZZCOVERAGE("XINDX9","GVAR",0)="29134:28000:44003:72003" +^ZZCOVERAGE("XINDX9","GVAR",1)="29134:32001:72005:104006" +^ZZCOVERAGE("XINDX9","GVAR",2)="29134:16000:24002:40002" +^ZZCOVERAGE("XINDX9","INC")="29134:64003:64007:128010" +^ZZCOVERAGE("XINDX9","INC",0)="29134:20001:12001:32002" +^ZZCOVERAGE("XINDX9","INC",1)="29134:32002:40004:72006" +^ZZCOVERAGE("XINDX9","NEW")="287703:532032:660032:1192064" +^ZZCOVERAGE("XINDX9","NEW",0)="287703:200012:244014:444026" +^ZZCOVERAGE("XINDX9","NEW",1)="287703:220014:248008:468022" +^ZZCOVERAGE("XINDX9","NUM")="45379:292023:340026:632049" +^ZZCOVERAGE("XINDX9","NUM",0)="45379:92006:84006:176012" +^ZZCOVERAGE("XINDX9","NUM",0,"FOR_LOOP",1)=71145 +^ZZCOVERAGE("XINDX9","NUM",1)="45379:40005:48002:88007" +^ZZCOVERAGE("XINDX9","NUM",2)="45379:40004:56005:96009" +^ZZCOVERAGE("XINDX9","NUM",3)="45379:76003:88008:164011" +^ZZCOVERAGE("XINDX9","NUM",4)="45379:24003:40003:64006" +^ZZCOVERAGE("XINDX9","PA2",0)="518346:544028:668032:1212060" +^ZZCOVERAGE("XINDX9","PA2",1)="472665:532043:620035:1152078" +^ZZCOVERAGE("XINDX9","PA2",2)="317803:264019:292021:556040" +^ZZCOVERAGE("XINDX9","PA2",3)="317803:200013:324018:524031" +^ZZCOVERAGE("XINDX9","PA2",4)="307072:348020:492025:840045" +^ZZCOVERAGE("XINDX9","PA2",5)="197397:160015:296011:456026" +^ZZCOVERAGE("XINDX9","PA2",6)="152018:120016:132005:252021" +^ZZCOVERAGE("XINDX9","PA2",7)="152018:116009:112008:228017" +^ZZCOVERAGE("XINDX9","PA2",8)="151813:96008:168010:264018" +^ZZCOVERAGE("XINDX9","PA2",9)="151813:100008:172009:272017" +^ZZCOVERAGE("XINDX9","PA2",10)="151813:220008:324022:544030" +^ZZCOVERAGE("XINDX9","PA2",11)="151813:168011:152010:320021" +^ZZCOVERAGE("XINDX9","PA2",12)="151813:128009:148012:276021" +^ZZCOVERAGE("XINDX9","PA2",13)="151813:136005:104009:240014" +^ZZCOVERAGE("XINDX9","PARSE")="45681:3356226:4340257:7696483" +^ZZCOVERAGE("XINDX9","PARSE",0)="45681:104007:108007:212014" +^ZZCOVERAGE("XINDX9","PAT")="205:0:0:0" +^ZZCOVERAGE("XINDX9","PAT",0)="205:0:0:0" +^ZZCOVERAGE("XINDX9","PAT",1)="205:0:0:0" +^ZZCOVERAGE("XINDX9","PAT",1,"FOR_LOOP",1)=1185 +^ZZCOVERAGE("XINDX9","PAT",2)="205:0:0:0" +^ZZCOVERAGE("XINDX9","PAT",3)="205:0:0:0" +^ZZCOVERAGE("XINDX9","PAT",4)="205:0:0:0" +^ZZCOVERAGE("XINDX9","PATC")="28:0:0:0" +^ZZCOVERAGE("XINDX9","PATC",0)="28:0:0:0" +^ZZCOVERAGE("XINDX9","PATQ")="99:0:8000:8000" +^ZZCOVERAGE("XINDX9","PATQ",0)="99:0:0:0" +^ZZCOVERAGE("XINDX9","PATQ",0,"FOR_LOOP",1)=247 +^ZZCOVERAGE("XINDX9","PATQ",1)="99:0:0:0" +^ZZCOVERAGE("XINDX9","PATQ",2)="99:0:8000:8000" +^ZZCOVERAGE("XINDX9","PATU")="15:0:0:0" +^ZZCOVERAGE("XINDX9","PATU",0)="15:0:0:0" +^ZZCOVERAGE("XINDX9","PEND",0)="45681:68001:140014:208015" +^ZZCOVERAGE("XINDX9","PEND",1)="45681:36004:52005:88009" +^ZZCOVERAGE("XINDX9","QUOTE")="35724:244013:304019:548032" +^ZZCOVERAGE("XINDX9","QUOTE",0)="36272:172010:140009:312019" +^ZZCOVERAGE("XINDX9","QUOTE",0,"FOR_LOOP",1)=323021 +^ZZCOVERAGE("XINDX9","QUOTE",1)="36272:28001:72004:100005" +^ZZCOVERAGE("XINDX9","QUOTE",2)="35724:28001:24003:52004" +^ZZCOVERAGE("XINDX9","QUOTE",3)="35724:16001:52002:68003" +^ZZCOVERAGE("XINDX9","SPV",0)="3703:4000:12000:16000" +^ZZCOVERAGE("XINDX9","SPV",1)="3703:8001:4000:12001" +^ZZCOVERAGE("XINDX9","SPV",2)="3703:8001:4000:12001" +^ZZCOVERAGE("XINDX9","SPV",3)="3703:4000:8001:12001" +^ZZCOVERAGE("XINDX9","STR")="287703:560037:724043:1284080" +^ZZCOVERAGE("XINDX9","STR",0)="287703:300018:312020:612038" +^ZZCOVERAGE("XINDX9","SUM")="213322:612034:916052:1528086" +^ZZCOVERAGE("XINDX9","SUM",0)="213322:160009:208011:368020" +^ZZCOVERAGE("XINDX9","SUM",1)="213322:212007:280018:492025" +^ZZCOVERAGE("XINDX9","SUM",2)="213322:136012:268012:404024" +^ZZCOVERAGE("XINDX9","UP")="45002:396026:440029:836055" +^ZZCOVERAGE("XINDX9","UP",0)="45002:24003:44001:68004" +^ZZCOVERAGE("XINDX9","UP",1)="45002:180008:192016:372024" +^ZZCOVERAGE("XINDX9","UP",2)="45002:136010:128005:264015" +^ZZCOVERAGE("XINDX9","UP",3)="45002:40003:52003:92006" +^ZZCOVERAGE("XINDX9","VAR")="138809:828044:1004072:1832116" +^ZZCOVERAGE("XINDX9","VAR",0)="138809:376018:336017:712035" +^ZZCOVERAGE("XINDX9","VAR",0,"FOR_LOOP",1)=462128 +^ZZCOVERAGE("XINDX9","VAR",1)="138809:292018:376034:668052" +^ZZCOVERAGE("XINDX9","VAR",2)="138809:116003:144008:260011" +^ZZCOVERAGE("XINDX9","XINDX9")="45681:296016:320021:616037" +^ZZCOVERAGE("XINDX9","XINDX9",3)="45681:52003:128006:180009" +^ZZCOVERAGE("XINDX9","XINDX9",4)="45681:164006:112008:276014" +^ZZCOVERAGE("XINDX9","XINDX9",4,"FOR_LOOP",1)=128269 +^ZZCOVERAGE("XINDX9","XINDX9",5)="45681:48004:52005:100009" +^ZZCOVERAGE("XLFDT","DT")="1:0:0:0" +^ZZCOVERAGE("XLFDT","DT",0)="1:0:0:0" +^ZZCOVERAGE("XLFDT","DT",1)="1:0:0:0" +^ZZCOVERAGE("XLFDT","HR")="3:0:0:0" +^ZZCOVERAGE("XLFDT","HR",0)="3:0:0:0" +^ZZCOVERAGE("XLFDT","HR",1)="3:0:0:0" +^ZZCOVERAGE("XLFDT","HTE")="1:0:0:0" +^ZZCOVERAGE("XLFDT","HTE",0)="1:0:0:0" +^ZZCOVERAGE("XLFDT","HTE",1)="1:0:0:0" +^ZZCOVERAGE("XLFDT","HTE",2)="1:0:0:0" +^ZZCOVERAGE("XLFDT","HTE",3)="1:0:0:0" +^ZZCOVERAGE("XLFDT","HTFM")="2:0:0:0" +^ZZCOVERAGE("XLFDT","HTFM",0)="2:0:0:0" +^ZZCOVERAGE("XLFDT","HTFM",1)="2:0:0:0" +^ZZCOVERAGE("XLFDT","HTFM",2)="2:0:0:0" +^ZZCOVERAGE("XLFDT","HTFM",3)="2:0:0:0" +^ZZCOVERAGE("XLFDT","HTFM",4)="2:0:0:0" +^ZZCOVERAGE("XLFDT","HTFM",5)="2:0:0:0" +^ZZCOVERAGE("XLFDT","T2",0)="1:0:0:0" +^ZZCOVERAGE("XLFDT","T2",1)="1:0:0:0" +^ZZCOVERAGE("XLFDT","YMD")="2:0:0:0" +^ZZCOVERAGE("XLFDT","YMD",1)="2:0:0:0" +^ZZCOVERAGE("XLFDT","YMD",2)="2:0:0:0" +^ZZCOVERAGE("XLFDT","YMD",3)="2:0:0:0" +^ZZCOVERAGE("XLFDT","YMD",4)="2:0:0:0" +^ZZCOVERAGE("XLFDT","YMD",5)="2:0:0:0" +^ZZCOVERAGE("XLFDT1","F1",1)="1:0:0:0" +^ZZCOVERAGE("XLFDT1","FMT")="1:0:0:0" +^ZZCOVERAGE("XLFDT1","FMT",1)="1:0:0:0" +^ZZCOVERAGE("XLFDT1","FMT",2)="1:0:0:0" +^ZZCOVERAGE("XLFDT1","M")="1:0:0:0" +^ZZCOVERAGE("XLFDT1","M",0)="1:0:0:0" +^ZZCOVERAGE("XLFDT1","TM",1)="1:0:0:0" +^ZZCOVERAGE("XLFDT1","TM",2)="1:0:0:0" +^ZZCOVERAGE("XLFDT1","TM",3)="1:0:0:0" +^ZZCOVERAGE("XLFDT1","TM",7)="1:0:0:0" +^ZZCOVERAGE("XPDRSUM","SUMB")="467:1808124:180014:1988138" +^ZZCOVERAGE("XPDRSUM","SUMB",0)="467:8000:0:8000" +^ZZCOVERAGE("XPDRSUM","SUMB",2)="467:0:0:0" +^ZZCOVERAGE("XPDRSUM","SUMB",3)="467:1796124:180014:1976138" +^ZZCOVERAGE("XPDRSUM","SUMB",3,"FOR_LOOP",1)=44620 +^ZZCOVERAGE("XPDRSUM","SUMB",3,"FOR_LOOP",2)=1566704 +^ZZCOVERAGE("XPDRSUM","SUMB",4)="467:0:0:0" +^ZZCOVERAGE("XTRUTL1","BUILD")="1:0:0:0" +^ZZCOVERAGE("XTRUTL1","BUILD",0)="1:0:0:0" +^ZZCOVERAGE("XTRUTL1","BUILD",1)="1:0:0:0" +^ZZCOVERAGE("XTRUTL1","BUILD",2)="1:0:0:0" +^ZZCOVERAGE("XTRUTL1","BUILD",3)="1:0:0:0" From e5dc76894ae8fbc95126ebb54a838e0342686b96 Mon Sep 17 00:00:00 2001 From: Brad King Date: Tue, 8 May 2012 09:43:19 -0400 Subject: [PATCH 022/101] bootstrap: Port back to old shells (#13199) Since commit f39e82c9 (bootstrap: Re-implement command line option processing, 2011-12-16) bootstrap uses POSIX shell expressions of the form "${x#y}" to remove prefix pattern 'y' from the vaule of 'x'. Although this is allowed by POSIX old shells on some platforms do not support it. Revert to using 'sed' to work with old shells. --- bootstrap | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/bootstrap b/bootstrap index 3be3d1f68..7b044e72b 100755 --- a/bootstrap +++ b/bootstrap @@ -460,6 +460,12 @@ cmake_escape () echo $1 | sed "s/ /\\\\ /g" } +# Strip prefix from argument +cmake_arg () +{ + echo "$1" | sed "s/^${2-[^=]*=}//" +} + # Write message to the log cmake_log () { @@ -544,21 +550,24 @@ cmake_ccache_enabled= cmake_prefix_dir="${cmake_default_prefix}" while test $# != 0; do case "$1" in - --prefix=*) cmake_prefix_dir=`cmake_fix_slashes "${1#*=}"` ;; - --parallel=*) cmake_parallel_make="${1#*=}" ;; - --datadir=*) cmake_data_dir="${1#*=}" ;; - --docdir=*) cmake_doc_dir="${1#*=}" ;; - --mandir=*) cmake_man_dir="${1#*=}" ;; - --init=*) cmake_init_file="${1#*=}" ;; + --prefix=*) dir=`cmake_arg "$1"` + cmake_prefix_dir=`cmake_fix_slashes "$dir"` ;; + --parallel=*) cmake_parallel_make=`cmake_arg "$1"` ;; + --datadir=*) cmake_data_dir=`cmake_arg "$1"` ;; + --docdir=*) cmake_doc_dir=`cmake_arg "$1"` ;; + --mandir=*) cmake_man_dir=`cmake_arg "$1"` ;; + --init=*) cmake_init_file=`cmake_arg "$1"` ;; --system-libs) cmake_bootstrap_system_libs="${cmake_bootstrap_system_libs} -DCMAKE_USE_SYSTEM_LIBRARIES=1" ;; --no-system-libs) cmake_bootstrap_system_libs="${cmake_bootstrap_system_libs} -DCMAKE_USE_SYSTEM_LIBRARIES=0" ;; --system-bzip2|--system-curl|--system-expat|--system-libarchive|--system-zlib) - cmake_bootstrap_system_libs="${cmake_bootstrap_system_libs} -DCMAKE_USE_SYSTEM_LIBRARY_`cmake_toupper ${1#--system-}`=1" ;; + lib=`cmake_arg "$1" "--system-"` + cmake_bootstrap_system_libs="${cmake_bootstrap_system_libs} -DCMAKE_USE_SYSTEM_LIBRARY_`cmake_toupper $lib`=1" ;; --no-system-bzip2|--no-system-curl|--no-system-expat|--no-system-libarchive|--no-system-zlib) - cmake_bootstrap_system_libs="${cmake_bootstrap_system_libs} -DCMAKE_USE_SYSTEM_LIBRARY_`cmake_toupper ${1#--no-system-}`=0" ;; + lib=`cmake_arg "$1" "--no-system-"` + cmake_bootstrap_system_libs="${cmake_bootstrap_system_libs} -DCMAKE_USE_SYSTEM_LIBRARY_`cmake_toupper $lib`=0" ;; --qt-gui) cmake_bootstrap_qt_gui="1" ;; --no-qt-gui) cmake_bootstrap_qt_gui="0" ;; - --qt-qmake=*) cmake_bootstrap_qt_qmake="${1#*=}" ;; + --qt-qmake=*) cmake_bootstrap_qt_qmake=`cmake_arg "$1"` ;; --help) cmake_usage ;; --version) cmake_version_display ; exit 2 ;; --verbose) cmake_verbose=TRUE ;; From 761d93129fb72d0418facb785776533b33d24a01 Mon Sep 17 00:00:00 2001 From: Bill Hoffman Date: Tue, 8 May 2012 14:47:13 -0400 Subject: [PATCH 023/101] Do not try to run bullseye coverage if COVFILE env is empty. --- Source/CTest/cmCTestCoverageHandler.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/CTest/cmCTestCoverageHandler.cxx b/Source/CTest/cmCTestCoverageHandler.cxx index 48bea6433..593512e52 100644 --- a/Source/CTest/cmCTestCoverageHandler.cxx +++ b/Source/CTest/cmCTestCoverageHandler.cxx @@ -1825,7 +1825,7 @@ int cmCTestCoverageHandler::HandleBullseyeCoverage( cmCTestCoverageHandlerContainer* cont) { const char* covfile = cmSystemTools::GetEnv("COVFILE"); - if(!covfile) + if(!covfile || strlen(covfile) == 0) { cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, " COVFILE environment variable not found, not running " From ad5c9d06c48b566fa6b1bb885142003c8ac9de60 Mon Sep 17 00:00:00 2001 From: Kitware Robot Date: Wed, 9 May 2012 00:01:04 -0400 Subject: [PATCH 024/101] CMake Nightly Date Stamp --- Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 9a31b0784..29c30a494 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -2,5 +2,5 @@ SET(CMake_VERSION_MAJOR 2) SET(CMake_VERSION_MINOR 8) SET(CMake_VERSION_PATCH 8) -SET(CMake_VERSION_TWEAK 20120508) +SET(CMake_VERSION_TWEAK 20120509) #SET(CMake_VERSION_RC 1) From 0fa3d093693642a2b6535b93ea99344397f79267 Mon Sep 17 00:00:00 2001 From: Minmin Gong Date: Wed, 9 May 2012 04:08:00 -0400 Subject: [PATCH 025/101] VS11: Add ARM architecture generator (#13077) --- Modules/CMakeGenericSystem.cmake | 2 + Modules/CMakePlatformId.h.in | 3 ++ Source/CMakeLists.txt | 2 + Source/cmGlobalVisualStudio11ARMGenerator.cxx | 32 ++++++++++++++++ Source/cmGlobalVisualStudio11ARMGenerator.h | 37 +++++++++++++++++++ Source/cmake.cxx | 3 ++ 6 files changed, 79 insertions(+) create mode 100644 Source/cmGlobalVisualStudio11ARMGenerator.cxx create mode 100644 Source/cmGlobalVisualStudio11ARMGenerator.h diff --git a/Modules/CMakeGenericSystem.cmake b/Modules/CMakeGenericSystem.cmake index ee8040e3b..bc4096dcd 100644 --- a/Modules/CMakeGenericSystem.cmake +++ b/Modules/CMakeGenericSystem.cmake @@ -77,6 +77,8 @@ function(GetDefaultWindowsPrefixBase var) # if("${CMAKE_GENERATOR}" MATCHES "(Win64|IA64)") set(arch_hint "x64") + elif("${CMAKE_GENERATOR}" MATCHES "ARM") + set(arch_hint "ARM") elseif("${CMAKE_SIZEOF_VOID_P}" STREQUAL "8") set(arch_hint "x64") elseif("$ENV{LIB}" MATCHES "(amd64|ia64)") diff --git a/Modules/CMakePlatformId.h.in b/Modules/CMakePlatformId.h.in index b69bf6310..6341dca9a 100644 --- a/Modules/CMakePlatformId.h.in +++ b/Modules/CMakePlatformId.h.in @@ -97,6 +97,9 @@ # elif defined(_M_IX86) # define ARCHITECTURE_ID "X86" +# elif defined(_M_ARM) +# define ARCHITECTURE_ID "ARM" + # else /* unknown architecture */ # define ARCHITECTURE_ID "" # endif diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt index c01c490f6..b923136d7 100644 --- a/Source/CMakeLists.txt +++ b/Source/CMakeLists.txt @@ -337,6 +337,8 @@ IF (WIN32) cmGlobalVisualStudio11Generator.cxx cmGlobalVisualStudio11Win64Generator.h cmGlobalVisualStudio11Win64Generator.cxx + cmGlobalVisualStudio11ARMGenerator.h + cmGlobalVisualStudio11ARMGenerator.cxx cmGlobalVisualStudioGenerator.cxx cmGlobalVisualStudioGenerator.h cmGlobalWatcomWMakeGenerator.cxx diff --git a/Source/cmGlobalVisualStudio11ARMGenerator.cxx b/Source/cmGlobalVisualStudio11ARMGenerator.cxx new file mode 100644 index 000000000..fef1aba61 --- /dev/null +++ b/Source/cmGlobalVisualStudio11ARMGenerator.cxx @@ -0,0 +1,32 @@ +/*============================================================================ + CMake - Cross Platform Makefile Generator + Copyright 2000-2011 Kitware, Inc., Insight Software Consortium + + Distributed under the OSI-approved BSD License (the "License"); + see accompanying file Copyright.txt for details. + + This software is distributed WITHOUT ANY WARRANTY; without even the + implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + See the License for more information. +============================================================================*/ +#include "cmGlobalVisualStudio11ARMGenerator.h" +#include "cmMakefile.h" +#include "cmake.h" + +//---------------------------------------------------------------------------- +void cmGlobalVisualStudio11ARMGenerator +::GetDocumentation(cmDocumentationEntry& entry) const +{ + entry.Name = this->GetName(); + entry.Brief = "Generates Visual Studio 11 ARM project files."; + entry.Full = ""; +} + +//---------------------------------------------------------------------------- +void cmGlobalVisualStudio11ARMGenerator +::AddPlatformDefinitions(cmMakefile* mf) +{ + this->cmGlobalVisualStudio11Generator::AddPlatformDefinitions(mf); + mf->AddDefinition("MSVC_C_ARCHITECTURE_ID", "ARM"); + mf->AddDefinition("MSVC_CXX_ARCHITECTURE_ID", "ARM"); +} diff --git a/Source/cmGlobalVisualStudio11ARMGenerator.h b/Source/cmGlobalVisualStudio11ARMGenerator.h new file mode 100644 index 000000000..77e142994 --- /dev/null +++ b/Source/cmGlobalVisualStudio11ARMGenerator.h @@ -0,0 +1,37 @@ +/*============================================================================ + CMake - Cross Platform Makefile Generator + Copyright 2000-2011 Kitware, Inc., Insight Software Consortium + + Distributed under the OSI-approved BSD License (the "License"); + see accompanying file Copyright.txt for details. + + This software is distributed WITHOUT ANY WARRANTY; without even the + implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + See the License for more information. +============================================================================*/ +#ifndef cmGlobalVisualStudio11ARMGenerator_h +#define cmGlobalVisualStudio11ARMGenerator_h + +#include "cmGlobalVisualStudio11Generator.h" + +class cmGlobalVisualStudio11ARMGenerator : + public cmGlobalVisualStudio11Generator +{ +public: + cmGlobalVisualStudio11ARMGenerator() {} + static cmGlobalGenerator* New() { + return new cmGlobalVisualStudio11ARMGenerator; } + + ///! Get the name for the generator. + virtual const char* GetName() const { + return cmGlobalVisualStudio11ARMGenerator::GetActualName();} + static const char* GetActualName() {return "Visual Studio 11 ARM";} + + virtual const char* GetPlatformName() const {return "ARM";} + + /** Get the documentation entry for this generator. */ + virtual void GetDocumentation(cmDocumentationEntry& entry) const; + + virtual void AddPlatformDefinitions(cmMakefile* mf); +}; +#endif diff --git a/Source/cmake.cxx b/Source/cmake.cxx index 846aef57f..2ffff420d 100644 --- a/Source/cmake.cxx +++ b/Source/cmake.cxx @@ -70,6 +70,7 @@ # include "cmGlobalVisualStudio10Win64Generator.h" # include "cmGlobalVisualStudio11Generator.h" # include "cmGlobalVisualStudio11Win64Generator.h" +# include "cmGlobalVisualStudio11ARMGenerator.h" # include "cmGlobalVisualStudio8Win64Generator.h" # include "cmGlobalBorlandMakefileGenerator.h" # include "cmGlobalNMakeMakefileGenerator.h" @@ -2569,6 +2570,8 @@ void cmake::AddDefaultGenerators() &cmGlobalVisualStudio11Generator::New; this->Generators[cmGlobalVisualStudio11Win64Generator::GetActualName()] = &cmGlobalVisualStudio11Win64Generator::New; + this->Generators[cmGlobalVisualStudio11ARMGenerator::GetActualName()] = + &cmGlobalVisualStudio11ARMGenerator::New; this->Generators[cmGlobalVisualStudio71Generator::GetActualName()] = &cmGlobalVisualStudio71Generator::New; this->Generators[cmGlobalVisualStudio8Generator::GetActualName()] = From 3d10f65e39790863d8a939b9ea42c9680549a8ae Mon Sep 17 00:00:00 2001 From: Eric NOULARD Date: Wed, 9 May 2012 18:02:13 +0200 Subject: [PATCH 026/101] CPack - preserve timestamp for CPACK_INSTALLED_DIRECTORIES. fixes: #0013193 --- Source/CPack/cmCPackGenerator.cxx | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Source/CPack/cmCPackGenerator.cxx b/Source/CPack/cmCPackGenerator.cxx index 0f832b395..de8f1e0ae 100644 --- a/Source/CPack/cmCPackGenerator.cxx +++ b/Source/CPack/cmCPackGenerator.cxx @@ -388,8 +388,11 @@ int cmCPackGenerator::InstallProjectViaInstalledDirectories( std::string>(targetFile,inFileRelative)); } /* If it is not a symlink then do a plain copy */ - else if ( !cmSystemTools::CopyFileIfDifferent(inFile.c_str(), - filePath.c_str()) ) + else if (!( + cmSystemTools::CopyFileIfDifferent(inFile.c_str(),filePath.c_str()) + && + cmSystemTools::CopyFileTime(inFile.c_str(),filePath.c_str()) + ) ) { cmCPackLogger(cmCPackLog::LOG_ERROR, "Problem copying file: " << inFile.c_str() << " -> " << filePath.c_str() << std::endl); From 3bd41f2eb564d891c95e3ead5e72656b7daa3ff1 Mon Sep 17 00:00:00 2001 From: Nicolas Despres Date: Thu, 19 Apr 2012 16:47:48 +0200 Subject: [PATCH 027/101] Ninja: Add a convenient 'clean' target. It has been asked on the mailing list: http://public.kitware.com/pipermail/cmake-developers/2012-April/003805.html --- Source/cmGlobalNinjaGenerator.cxx | 21 +++++++++++++++++++++ Source/cmGlobalNinjaGenerator.h | 1 + 2 files changed, 22 insertions(+) diff --git a/Source/cmGlobalNinjaGenerator.cxx b/Source/cmGlobalNinjaGenerator.cxx index 9cbd50233..ee3842d0b 100644 --- a/Source/cmGlobalNinjaGenerator.cxx +++ b/Source/cmGlobalNinjaGenerator.cxx @@ -754,6 +754,7 @@ void cmGlobalNinjaGenerator::WriteBuiltinTargets(std::ostream& os) this->WriteTargetAll(os); this->WriteTargetRebuildManifest(os); + this->WriteTargetClean(os); } void cmGlobalNinjaGenerator::WriteTargetAll(std::ostream& os) @@ -820,3 +821,23 @@ void cmGlobalNinjaGenerator::WriteTargetRebuildManifest(std::ostream& os) implicitDeps, cmNinjaDeps()); } + +void cmGlobalNinjaGenerator::WriteTargetClean(std::ostream& os) +{ + WriteRule(*this->RulesFileStream, + "CLEAN", + "ninja -t clean", + "Cleaning all built files...", + "Rule for cleaning all built files.", + /*depfile=*/ "", + /*restat=*/ false, + /*generator=*/ false); + WriteBuild(os, + "Clean all the built files.", + "CLEAN", + /*outputs=*/ cmNinjaDeps(1, "clean"), + /*explicitDeps=*/ cmNinjaDeps(), + /*implicitDeps=*/ cmNinjaDeps(), + /*orderOnlyDeps=*/ cmNinjaDeps(), + /*variables=*/ cmNinjaVars()); +} diff --git a/Source/cmGlobalNinjaGenerator.h b/Source/cmGlobalNinjaGenerator.h index 321758185..32edfaabc 100644 --- a/Source/cmGlobalNinjaGenerator.h +++ b/Source/cmGlobalNinjaGenerator.h @@ -273,6 +273,7 @@ private: void WriteBuiltinTargets(std::ostream& os); void WriteTargetAll(std::ostream& os); void WriteTargetRebuildManifest(std::ostream& os); + void WriteTargetClean(std::ostream& os); /// Called when we have seen the given custom command. Returns true /// if we has seen it before. From 92cee7626c5066a4af4cf66f85b0cd2c06bd9439 Mon Sep 17 00:00:00 2001 From: Nicolas Despres Date: Thu, 19 Apr 2012 17:07:35 +0200 Subject: [PATCH 028/101] Ninja: Add a convenient 'help' target. --- Source/cmGlobalNinjaGenerator.cxx | 21 +++++++++++++++++++++ Source/cmGlobalNinjaGenerator.h | 1 + 2 files changed, 22 insertions(+) diff --git a/Source/cmGlobalNinjaGenerator.cxx b/Source/cmGlobalNinjaGenerator.cxx index ee3842d0b..67f809a9d 100644 --- a/Source/cmGlobalNinjaGenerator.cxx +++ b/Source/cmGlobalNinjaGenerator.cxx @@ -755,6 +755,7 @@ void cmGlobalNinjaGenerator::WriteBuiltinTargets(std::ostream& os) this->WriteTargetAll(os); this->WriteTargetRebuildManifest(os); this->WriteTargetClean(os); + this->WriteTargetHelp(os); } void cmGlobalNinjaGenerator::WriteTargetAll(std::ostream& os) @@ -841,3 +842,23 @@ void cmGlobalNinjaGenerator::WriteTargetClean(std::ostream& os) /*orderOnlyDeps=*/ cmNinjaDeps(), /*variables=*/ cmNinjaVars()); } + +void cmGlobalNinjaGenerator::WriteTargetHelp(std::ostream& os) +{ + WriteRule(*this->RulesFileStream, + "HELP", + "ninja -t targets", + "All primary targets available:", + "Rule for printing all primary targets available.", + /*depfile=*/ "", + /*restat=*/ false, + /*generator=*/ false); + WriteBuild(os, + "Print all primary targets available.", + "HELP", + /*outputs=*/ cmNinjaDeps(1, "help"), + /*explicitDeps=*/ cmNinjaDeps(), + /*implicitDeps=*/ cmNinjaDeps(), + /*orderOnlyDeps=*/ cmNinjaDeps(), + /*variables=*/ cmNinjaVars()); +} diff --git a/Source/cmGlobalNinjaGenerator.h b/Source/cmGlobalNinjaGenerator.h index 32edfaabc..e652972ee 100644 --- a/Source/cmGlobalNinjaGenerator.h +++ b/Source/cmGlobalNinjaGenerator.h @@ -274,6 +274,7 @@ private: void WriteTargetAll(std::ostream& os); void WriteTargetRebuildManifest(std::ostream& os); void WriteTargetClean(std::ostream& os); + void WriteTargetHelp(std::ostream& os); /// Called when we have seen the given custom command. Returns true /// if we has seen it before. From 9d9fc18ffa6bbacacde62020e6f97908f118f5dd Mon Sep 17 00:00:00 2001 From: Kitware Robot Date: Thu, 10 May 2012 00:01:03 -0400 Subject: [PATCH 029/101] CMake Nightly Date Stamp --- Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 29c30a494..60f70c22f 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -2,5 +2,5 @@ SET(CMake_VERSION_MAJOR 2) SET(CMake_VERSION_MINOR 8) SET(CMake_VERSION_PATCH 8) -SET(CMake_VERSION_TWEAK 20120509) +SET(CMake_VERSION_TWEAK 20120510) #SET(CMake_VERSION_RC 1) From 5af93bb9879b95364af792b59325c23698ecf55a Mon Sep 17 00:00:00 2001 From: Brad King Date: Thu, 10 May 2012 07:08:09 -0400 Subject: [PATCH 030/101] VS11: Fix ARM architecture hint typo (#13077) --- Modules/CMakeGenericSystem.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Modules/CMakeGenericSystem.cmake b/Modules/CMakeGenericSystem.cmake index bc4096dcd..127588fcf 100644 --- a/Modules/CMakeGenericSystem.cmake +++ b/Modules/CMakeGenericSystem.cmake @@ -77,7 +77,7 @@ function(GetDefaultWindowsPrefixBase var) # if("${CMAKE_GENERATOR}" MATCHES "(Win64|IA64)") set(arch_hint "x64") - elif("${CMAKE_GENERATOR}" MATCHES "ARM") + elseif("${CMAKE_GENERATOR}" MATCHES "ARM") set(arch_hint "ARM") elseif("${CMAKE_SIZEOF_VOID_P}" STREQUAL "8") set(arch_hint "x64") From a2f5d14c739d53184b09d353919948a6c7b21fff Mon Sep 17 00:00:00 2001 From: Kitware Robot Date: Fri, 11 May 2012 00:01:03 -0400 Subject: [PATCH 031/101] CMake Nightly Date Stamp --- Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 60f70c22f..fca546cf4 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -2,5 +2,5 @@ SET(CMake_VERSION_MAJOR 2) SET(CMake_VERSION_MINOR 8) SET(CMake_VERSION_PATCH 8) -SET(CMake_VERSION_TWEAK 20120510) +SET(CMake_VERSION_TWEAK 20120511) #SET(CMake_VERSION_RC 1) From c806b23cfe08259efed1ed310613f65c16a60680 Mon Sep 17 00:00:00 2001 From: Bill Hoffman Date: Fri, 11 May 2012 15:22:25 -0400 Subject: [PATCH 032/101] CDash now supports lots of files in coverage. So, show all files. Prior to this commit the mumps coverage only showed files that had at least one line of coverage. Now 0% covered files are shown as well. --- Source/CTest/cmCTestCoverageHandler.cxx | 3 +++ Source/CTest/cmParseCacheCoverage.cxx | 12 +----------- Source/CTest/cmParseGTMCoverage.cxx | 6 ------ Source/CTest/cmParseMumpsCoverage.cxx | 2 +- 4 files changed, 5 insertions(+), 18 deletions(-) diff --git a/Source/CTest/cmCTestCoverageHandler.cxx b/Source/CTest/cmCTestCoverageHandler.cxx index 593512e52..bb39e0d8f 100644 --- a/Source/CTest/cmCTestCoverageHandler.cxx +++ b/Source/CTest/cmCTestCoverageHandler.cxx @@ -771,6 +771,9 @@ int cmCTestCoverageHandler::HandleMumpsCoverage( "/gtm_coverage.mcov"; if(cmSystemTools::FileExists(coverageFile.c_str())) { + cmCTestLog(this->CTest, HANDLER_VERBOSE_OUTPUT, + "Parsing Cache Coverage: " << coverageFile + << std::endl); cov.ReadCoverageFile(coverageFile.c_str()); return static_cast(cont->TotalCoverage.size()); } diff --git a/Source/CTest/cmParseCacheCoverage.cxx b/Source/CTest/cmParseCacheCoverage.cxx index e4b0a8897..137f344df 100644 --- a/Source/CTest/cmParseCacheCoverage.cxx +++ b/Source/CTest/cmParseCacheCoverage.cxx @@ -44,11 +44,10 @@ bool cmParseCacheCoverage::LoadCoverageData(const char* d) } } } - // now remove files wht no actual coverage... - this->RemoveUnCoveredFiles(); return true; } +// not currently used, but leave it in case we want it in the future void cmParseCacheCoverage::RemoveUnCoveredFiles() { // loop over the coverage data computed and remove all files @@ -195,15 +194,6 @@ bool cmParseCacheCoverage::ReadCMCovFile(const char* file) { continue; } - // routine and filepath should be set at this point. - // see if we have visited this file before, and if not - // call InitializeMumpsFile - if( this->Coverage.TotalCoverage[filepath].size() == 0) - { - // hack, this should be done on every file, but for now - // just do it on the ones that have coverage at all - this->InitializeMumpsFile(filepath); - } // now we are ready to set the coverage from the line of data cmCTestCoverageHandlerContainer::SingleFileCoverageVector& coverageVector = this->Coverage.TotalCoverage[filepath]; diff --git a/Source/CTest/cmParseGTMCoverage.cxx b/Source/CTest/cmParseGTMCoverage.cxx index e1f02d636..5dfcfe50a 100644 --- a/Source/CTest/cmParseGTMCoverage.cxx +++ b/Source/CTest/cmParseGTMCoverage.cxx @@ -103,12 +103,6 @@ bool cmParseGTMCoverage::ReadMCovFile(const char* file) function, lineoffset)) { - // hack, this should be done on every file, but for now - // just do it on the ones that have coverage at all - if( this->Coverage.TotalCoverage[filepath].size() == 0) - { - this->InitializeMumpsFile(filepath); - } cmCTestCoverageHandlerContainer::SingleFileCoverageVector& coverageVector = this->Coverage.TotalCoverage[filepath]; coverageVector[lineoffset + linenumber] += count; diff --git a/Source/CTest/cmParseMumpsCoverage.cxx b/Source/CTest/cmParseMumpsCoverage.cxx index 7076315d0..37e8bd082 100644 --- a/Source/CTest/cmParseMumpsCoverage.cxx +++ b/Source/CTest/cmParseMumpsCoverage.cxx @@ -131,7 +131,7 @@ bool cmParseMumpsCoverage::LoadPackages(const char* d) this->RoutineToDirectory[name.substr(0, name.size()-2)] = *fileIt; // initialze each file, this is left out until CDash is fixed // to handle large numbers of files -// this->InitializeMumpsFile(*fileIt); + this->InitializeMumpsFile(*fileIt); } return true; } From b149d1ed05eb5bca8b3107de6a16f5fddbe8b7d5 Mon Sep 17 00:00:00 2001 From: Kitware Robot Date: Sat, 12 May 2012 00:01:03 -0400 Subject: [PATCH 033/101] CMake Nightly Date Stamp --- Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index fca546cf4..13e8a770e 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -2,5 +2,5 @@ SET(CMake_VERSION_MAJOR 2) SET(CMake_VERSION_MINOR 8) SET(CMake_VERSION_PATCH 8) -SET(CMake_VERSION_TWEAK 20120511) +SET(CMake_VERSION_TWEAK 20120512) #SET(CMake_VERSION_RC 1) From c7dab4b93668e44ce07b810a08f171f8eb847785 Mon Sep 17 00:00:00 2001 From: Kitware Robot Date: Sun, 13 May 2012 00:01:02 -0400 Subject: [PATCH 034/101] CMake Nightly Date Stamp --- Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 13e8a770e..e407e60bb 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -2,5 +2,5 @@ SET(CMake_VERSION_MAJOR 2) SET(CMake_VERSION_MINOR 8) SET(CMake_VERSION_PATCH 8) -SET(CMake_VERSION_TWEAK 20120512) +SET(CMake_VERSION_TWEAK 20120513) #SET(CMake_VERSION_RC 1) From b1d7c4b1d241445da31482ad893ec992bdccdabf Mon Sep 17 00:00:00 2001 From: Alex Neundorf Date: Sun, 13 May 2012 14:37:51 +0200 Subject: [PATCH 035/101] FeatureSummary.cmake: nicer formatting Alex --- Modules/FeatureSummary.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Modules/FeatureSummary.cmake b/Modules/FeatureSummary.cmake index cef647eb5..a5b94d199 100644 --- a/Modules/FeatureSummary.cmake +++ b/Modules/FeatureSummary.cmake @@ -318,7 +318,7 @@ FUNCTION(_FS_GET_FEATURE_SUMMARY _property _var _includeQuiet) GET_PROPERTY(_info GLOBAL PROPERTY _CMAKE_${_currentFeature}_PURPOSE) FOREACH(_purpose ${_info}) - SET(_currentFeatureText "${_currentFeatureText}\n * ${_purpose}") + SET(_currentFeatureText "${_currentFeatureText}\n ${_purpose}") ENDFOREACH() ENDIF(includeThisOne) @@ -399,7 +399,7 @@ FUNCTION(FEATURE_SUMMARY) SET(_tmp) _FS_GET_FEATURE_SUMMARY( ${part} _tmp ${_FS_INCLUDE_QUIET_PACKAGES}) IF(_tmp) - SET(_fullText "${_fullText}\n\n-- ${title_${part}}\n${_tmp}") + SET(_fullText "${_fullText}\n-- ${title_${part}}\n${_tmp}\n") IF("${part}" STREQUAL "REQUIRED_PACKAGES_NOT_FOUND") SET(requiredPackagesNotFound TRUE) ENDIF() From b6fba35411053e334072a1203493140c67f3d30a Mon Sep 17 00:00:00 2001 From: Alex Neundorf Date: Sun, 13 May 2012 15:34:30 +0200 Subject: [PATCH 036/101] -strip trailing whitespace Alex --- Modules/CMakeGenericSystem.cmake | 4 +-- Source/cmInstallCommand.cxx | 44 ++++++++++++++-------------- Source/cmInstallCommand.h | 2 +- Source/cmInstallCommandArguments.cxx | 12 ++++---- Source/cmInstallCommandArguments.h | 8 ++--- Source/cmInstallFilesCommand.cxx | 24 +++++++-------- Source/cmInstallProgramsCommand.cxx | 18 ++++++------ 7 files changed, 56 insertions(+), 56 deletions(-) diff --git a/Modules/CMakeGenericSystem.cmake b/Modules/CMakeGenericSystem.cmake index ee8040e3b..45d1fbff1 100644 --- a/Modules/CMakeGenericSystem.cmake +++ b/Modules/CMakeGenericSystem.cmake @@ -12,7 +12,7 @@ # (To distribute this file outside of CMake, substitute the full # License text for the above reference.) -SET(CMAKE_SHARED_LIBRARY_C_FLAGS "") # -pic +SET(CMAKE_SHARED_LIBRARY_C_FLAGS "") # -pic SET(CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-shared") # -shared SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "") # +s, flag for exe link to use shared lib SET(CMAKE_SHARED_LIBRARY_RUNTIME_C_FLAG "") # -rpath @@ -42,7 +42,7 @@ SET (CMAKE_SKIP_RPATH "NO" CACHE BOOL SET (CMAKE_SKIP_INSTALL_RPATH "NO" CACHE BOOL "If set, runtime paths are not added when installing shared libraries, but are added when building.") -SET(CMAKE_VERBOSE_MAKEFILE FALSE CACHE BOOL "If this value is on, makefiles will be generated without the .SILENT directive, and all commands will be echoed to the console during the make. This is useful for debugging only. With Visual Studio IDE projects all commands are done without /nologo.") +SET(CMAKE_VERBOSE_MAKEFILE FALSE CACHE BOOL "If this value is on, makefiles will be generated without the .SILENT directive, and all commands will be echoed to the console during the make. This is useful for debugging only. With Visual Studio IDE projects all commands are done without /nologo.") IF(CMAKE_GENERATOR MATCHES "Makefiles") SET(CMAKE_COLOR_MAKEFILE ON CACHE BOOL diff --git a/Source/cmInstallCommand.cxx b/Source/cmInstallCommand.cxx index c65648737..d8522ee1e 100644 --- a/Source/cmInstallCommand.cxx +++ b/Source/cmInstallCommand.cxx @@ -23,25 +23,25 @@ static cmInstallTargetGenerator* CreateInstallTargetGenerator(cmTarget& target, const cmInstallCommandArguments& args, bool impLib, bool forceOpt = false) { - return new cmInstallTargetGenerator(target, args.GetDestination().c_str(), - impLib, args.GetPermissions().c_str(), + return new cmInstallTargetGenerator(target, args.GetDestination().c_str(), + impLib, args.GetPermissions().c_str(), args.GetConfigurations(), args.GetComponent().c_str(), args.GetOptional() || forceOpt); } static cmInstallFilesGenerator* CreateInstallFilesGenerator( - const std::vector& absFiles, + const std::vector& absFiles, const cmInstallCommandArguments& args, bool programs) { - return new cmInstallFilesGenerator(absFiles, args.GetDestination().c_str(), - programs, args.GetPermissions().c_str(), + return new cmInstallFilesGenerator(absFiles, args.GetDestination().c_str(), + programs, args.GetPermissions().c_str(), args.GetConfigurations(), args.GetComponent().c_str(), args.GetRename().c_str(), args.GetOptional()); } // cmInstallCommand -bool cmInstallCommand::InitialPass(std::vector const& args, +bool cmInstallCommand::InitialPass(std::vector const& args, cmExecutionStatus &) { // Allow calling with no arguments so that arguments may be built up @@ -190,7 +190,7 @@ bool cmInstallCommand::HandleScriptMode(std::vector const& args) /*struct InstallPart { - InstallPart(cmCommandArgumentsHelper* helper, const char* key, + InstallPart(cmCommandArgumentsHelper* helper, const char* key, cmCommandArgumentGroup* group); cmCAStringVector argVector; cmInstallCommandArguments args; @@ -239,7 +239,7 @@ bool cmInstallCommand::HandleTargetsMode(std::vector const& args) cmInstallCommandArguments publicHeaderArgs; cmInstallCommandArguments resourceArgs; - // now parse the args for specific parts of the target (e.g. LIBRARY, + // now parse the args for specific parts of the target (e.g. LIBRARY, // RUNTIME, ARCHIVE etc. archiveArgs.Parse (&archiveArgVector.GetVector(), &unknownArgs); libraryArgs.Parse (&libraryArgVector.GetVector(), &unknownArgs); @@ -345,7 +345,7 @@ bool cmInstallCommand::HandleTargetsMode(std::vector const& args) this->Makefile->IsOn("CYGWIN") || this->Makefile->IsOn("MINGW")); - for(std::vector::const_iterator + for(std::vector::const_iterator targetIt=targetList.GetVector().begin(); targetIt!=targetList.GetVector().end(); ++targetIt) @@ -422,7 +422,7 @@ bool cmInstallCommand::HandleTargetsMode(std::vector const& args) case cmTarget::SHARED_LIBRARY: { // Shared libraries are handled differently on DLL and non-DLL - // platforms. All windows platforms are DLL platforms including + // platforms. All windows platforms are DLL platforms including // cygwin. Currently no other platform is a DLL platform. if(dll_platform) { @@ -436,13 +436,13 @@ bool cmInstallCommand::HandleTargetsMode(std::vector const& args) if(!archiveArgs.GetDestination().empty()) { // The import library uses the ARCHIVE properties. - archiveGenerator = CreateInstallTargetGenerator(target, + archiveGenerator = CreateInstallTargetGenerator(target, archiveArgs, true); } if(!runtimeArgs.GetDestination().empty()) { // The DLL uses the RUNTIME properties. - runtimeGenerator = CreateInstallTargetGenerator(target, + runtimeGenerator = CreateInstallTargetGenerator(target, runtimeArgs, false); } if ((archiveGenerator==0) && (runtimeGenerator==0)) @@ -467,7 +467,7 @@ bool cmInstallCommand::HandleTargetsMode(std::vector const& args) // Use the FRAMEWORK properties. if (!frameworkArgs.GetDestination().empty()) { - frameworkGenerator = CreateInstallTargetGenerator(target, + frameworkGenerator = CreateInstallTargetGenerator(target, frameworkArgs, false); } else @@ -484,7 +484,7 @@ bool cmInstallCommand::HandleTargetsMode(std::vector const& args) // The shared library uses the LIBRARY properties. if (!libraryArgs.GetDestination().empty()) { - libraryGenerator = CreateInstallTargetGenerator(target, + libraryGenerator = CreateInstallTargetGenerator(target, libraryArgs, false); libraryGenerator->SetNamelinkMode(namelinkMode); namelinkOnly = @@ -507,7 +507,7 @@ bool cmInstallCommand::HandleTargetsMode(std::vector const& args) // Static libraries use ARCHIVE properties. if (!archiveArgs.GetDestination().empty()) { - archiveGenerator = CreateInstallTargetGenerator(target, archiveArgs, + archiveGenerator = CreateInstallTargetGenerator(target, archiveArgs, false); } else @@ -525,7 +525,7 @@ bool cmInstallCommand::HandleTargetsMode(std::vector const& args) // Modules use LIBRARY properties. if (!libraryArgs.GetDestination().empty()) { - libraryGenerator = CreateInstallTargetGenerator(target, libraryArgs, + libraryGenerator = CreateInstallTargetGenerator(target, libraryArgs, false); libraryGenerator->SetNamelinkMode(namelinkMode); namelinkOnly = @@ -548,7 +548,7 @@ bool cmInstallCommand::HandleTargetsMode(std::vector const& args) // Application bundles use the BUNDLE properties. if (!bundleArgs.GetDestination().empty()) { - bundleGenerator = CreateInstallTargetGenerator(target, bundleArgs, + bundleGenerator = CreateInstallTargetGenerator(target, bundleArgs, false); } else if(!runtimeArgs.GetDestination().empty()) @@ -580,7 +580,7 @@ bool cmInstallCommand::HandleTargetsMode(std::vector const& args) // Executables use the RUNTIME properties. if (!runtimeArgs.GetDestination().empty()) { - runtimeGenerator = CreateInstallTargetGenerator(target, + runtimeGenerator = CreateInstallTargetGenerator(target, runtimeArgs, false); } else @@ -600,7 +600,7 @@ bool cmInstallCommand::HandleTargetsMode(std::vector const& args) target.IsExecutableWithExports()) { // The import library uses the ARCHIVE properties. - archiveGenerator = CreateInstallTargetGenerator(target, + archiveGenerator = CreateInstallTargetGenerator(target, archiveArgs, true, true); } } @@ -710,7 +710,7 @@ bool cmInstallCommand::HandleTargetsMode(std::vector const& args) installsRuntime = installsRuntime || runtimeGenerator != 0; installsFramework = installsFramework || frameworkGenerator != 0; installsBundle = installsBundle || bundleGenerator != 0; - installsPrivateHeader = installsPrivateHeader + installsPrivateHeader = installsPrivateHeader || privateHeaderGenerator != 0; installsPublicHeader = installsPublicHeader || publicHeaderGenerator != 0; installsResource = installsResource || resourceGenerator; @@ -729,7 +729,7 @@ bool cmInstallCommand::HandleTargetsMode(std::vector const& args) if(!exports.GetString().empty() && !namelinkOnly) { this->Makefile->GetLocalGenerator()->GetGlobalGenerator() - ->AddTargetToExports(exports.GetCString(), &target, + ->AddTargetToExports(exports.GetCString(), &target, archiveGenerator, runtimeGenerator, libraryGenerator, frameworkGenerator, bundleGenerator, publicHeaderGenerator); @@ -803,7 +803,7 @@ bool cmInstallCommand::HandleFilesMode(std::vector const& args) this->SetError(e.str().c_str()); return false; } - + // Check if there is something to do. if(files.GetVector().empty()) { diff --git a/Source/cmInstallCommand.h b/Source/cmInstallCommand.h index 3403c386f..ee2252380 100644 --- a/Source/cmInstallCommand.h +++ b/Source/cmInstallCommand.h @@ -337,7 +337,7 @@ private: bool HandleFilesMode(std::vector const& args); bool HandleDirectoryMode(std::vector const& args); bool HandleExportMode(std::vector const& args); - bool MakeFilesFullPath(const char* modeName, + bool MakeFilesFullPath(const char* modeName, const std::vector& relFiles, std::vector& absFiles); bool CheckCMP0006(bool& failure); diff --git a/Source/cmInstallCommandArguments.cxx b/Source/cmInstallCommandArguments.cxx index 13ef8ed91..f50859431 100644 --- a/Source/cmInstallCommandArguments.cxx +++ b/Source/cmInstallCommandArguments.cxx @@ -130,7 +130,7 @@ bool cmInstallCommandArguments::GetNamelinkSkip() const return false; } -const std::vector& +const std::vector& cmInstallCommandArguments::GetConfigurations() const { if (!this->Configurations.GetVector().empty()) @@ -156,7 +156,7 @@ bool cmInstallCommandArguments::Finalize() return true; } -void cmInstallCommandArguments::Parse(const std::vector* args, +void cmInstallCommandArguments::Parse(const std::vector* args, std::vector* unconsumedArgs) { this->Parser.Parse(args, unconsumedArgs); @@ -166,9 +166,9 @@ void cmInstallCommandArguments::Parse(const std::vector* args, bool cmInstallCommandArguments::CheckPermissions() { this->PermissionsString = ""; - for(std::vector::const_iterator - permIt = this->Permissions.GetVector().begin(); - permIt != this->Permissions.GetVector().end(); + for(std::vector::const_iterator + permIt = this->Permissions.GetVector().begin(); + permIt != this->Permissions.GetVector().end(); ++permIt) { if (!this->CheckPermissions(*permIt, this->PermissionsString)) @@ -183,7 +183,7 @@ bool cmInstallCommandArguments::CheckPermissions( const std::string& onePermission, std::string& permissions) { // Check the permission against the table. - for(const char** valid = cmInstallCommandArguments::PermissionsTable; + for(const char** valid = cmInstallCommandArguments::PermissionsTable; *valid; ++valid) { if(onePermission == *valid) diff --git a/Source/cmInstallCommandArguments.h b/Source/cmInstallCommandArguments.h index 16033ce37..53f13c0cd 100644 --- a/Source/cmInstallCommandArguments.h +++ b/Source/cmInstallCommandArguments.h @@ -20,9 +20,9 @@ class cmInstallCommandArguments { public: cmInstallCommandArguments(); - void SetGenericArguments(cmInstallCommandArguments* args) + void SetGenericArguments(cmInstallCommandArguments* args) {this->GenericArguments = args;} - void Parse(const std::vector* args, + void Parse(const std::vector* args, std::vector* unconsumedArgs); // Compute destination path.and check permissions @@ -37,10 +37,10 @@ class cmInstallCommandArguments bool GetNamelinkOnly() const; bool GetNamelinkSkip() const; - // once HandleDirectoryMode() is also switched to using + // once HandleDirectoryMode() is also switched to using // cmInstallCommandArguments then these two functions can become non-static // private member functions without arguments - static bool CheckPermissions(const std::string& onePerm, + static bool CheckPermissions(const std::string& onePerm, std::string& perm); cmCommandArgumentsHelper Parser; cmCommandArgumentGroup ArgumentGroup; diff --git a/Source/cmInstallFilesCommand.cxx b/Source/cmInstallFilesCommand.cxx index 0ec303017..85400a1a0 100644 --- a/Source/cmInstallFilesCommand.cxx +++ b/Source/cmInstallFilesCommand.cxx @@ -34,7 +34,7 @@ bool cmInstallFilesCommand if((args.size() > 1) && (args[1] == "FILES")) { - this->IsFilesForm = true; + this->IsFilesForm = true; for(std::vector::const_iterator s = args.begin()+2; s != args.end(); ++s) { @@ -53,45 +53,45 @@ bool cmInstallFilesCommand this->FinalArgs.push_back(*s); } } - + this->Makefile->GetLocalGenerator()->GetGlobalGenerator() ->AddInstallComponent("Unspecified"); return true; } -void cmInstallFilesCommand::FinalPass() +void cmInstallFilesCommand::FinalPass() { // No final pass for "FILES" form of arguments. if(this->IsFilesForm) { return; } - + std::string testf; std::string ext = this->FinalArgs[0]; - + // two different options if (this->FinalArgs.size() > 1) { // now put the files into the list std::vector::iterator s = this->FinalArgs.begin(); ++s; - // for each argument, get the files + // for each argument, get the files for (;s != this->FinalArgs.end(); ++s) { // replace any variables std::string temps = *s; if (cmSystemTools::GetFilenamePath(temps).size() > 0) { - testf = cmSystemTools::GetFilenamePath(temps) + "/" + + testf = cmSystemTools::GetFilenamePath(temps) + "/" + cmSystemTools::GetFilenameWithoutLastExtension(temps) + ext; } else { testf = cmSystemTools::GetFilenameWithoutLastExtension(temps) + ext; } - + // add to the result this->Files.push_back(this->FindInstallSource(testf.c_str())); } @@ -102,9 +102,9 @@ void cmInstallFilesCommand::FinalPass() std::string regex = this->FinalArgs[0].c_str(); cmSystemTools::Glob(this->Makefile->GetCurrentDirectory(), regex.c_str(), files); - + std::vector::iterator s = files.begin(); - // for each argument, get the files + // for each argument, get the files for (;s != files.end(); ++s) { this->Files.push_back(this->FindInstallSource(s->c_str())); @@ -151,7 +151,7 @@ std::string cmInstallFilesCommand::FindInstallSource(const char* name) const // This is a full path. return name; } - + // This is a relative path. std::string tb = this->Makefile->GetCurrentOutputDirectory(); tb += "/"; @@ -159,7 +159,7 @@ std::string cmInstallFilesCommand::FindInstallSource(const char* name) const std::string ts = this->Makefile->GetCurrentDirectory(); ts += "/"; ts += name; - + if(cmSystemTools::FileExists(tb.c_str())) { // The file exists in the binary tree. Use it. diff --git a/Source/cmInstallProgramsCommand.cxx b/Source/cmInstallProgramsCommand.cxx index 7e6c9ce56..61ac74117 100644 --- a/Source/cmInstallProgramsCommand.cxx +++ b/Source/cmInstallProgramsCommand.cxx @@ -31,26 +31,26 @@ bool cmInstallProgramsCommand for (++s;s != args.end(); ++s) { this->FinalArgs.push_back(*s); - } - + } + this->Makefile->GetLocalGenerator()->GetGlobalGenerator() ->AddInstallComponent("Unspecified"); return true; } -void cmInstallProgramsCommand::FinalPass() +void cmInstallProgramsCommand::FinalPass() { bool files_mode = false; if(!this->FinalArgs.empty() && this->FinalArgs[0] == "FILES") { files_mode = true; } - + // two different options if (this->FinalArgs.size() > 1 || files_mode) { - // for each argument, get the programs + // for each argument, get the programs std::vector::iterator s = this->FinalArgs.begin(); if(files_mode) { @@ -68,9 +68,9 @@ void cmInstallProgramsCommand::FinalPass() std::vector programs; cmSystemTools::Glob(this->Makefile->GetCurrentDirectory(), this->FinalArgs[0].c_str(), programs); - + std::vector::iterator s = programs.begin(); - // for each argument, get the programs + // for each argument, get the programs for (;s != programs.end(); ++s) { this->Files.push_back(this->FindInstallSource(s->c_str())); @@ -112,7 +112,7 @@ std::string cmInstallProgramsCommand // This is a full path. return name; } - + // This is a relative path. std::string tb = this->Makefile->GetCurrentOutputDirectory(); tb += "/"; @@ -120,7 +120,7 @@ std::string cmInstallProgramsCommand std::string ts = this->Makefile->GetCurrentDirectory(); ts += "/"; ts += name; - + if(cmSystemTools::FileExists(tb.c_str())) { // The file exists in the binary tree. Use it. From 75c0304a9ee646c8a408f713477fa3522ab1e8a8 Mon Sep 17 00:00:00 2001 From: Kitware Robot Date: Mon, 14 May 2012 00:01:03 -0400 Subject: [PATCH 037/101] CMake Nightly Date Stamp --- Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index e407e60bb..d47696b62 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -2,5 +2,5 @@ SET(CMake_VERSION_MAJOR 2) SET(CMake_VERSION_MINOR 8) SET(CMake_VERSION_PATCH 8) -SET(CMake_VERSION_TWEAK 20120513) +SET(CMake_VERSION_TWEAK 20120514) #SET(CMake_VERSION_RC 1) From 6ba055bacdce1cdf7a74008b980440027f275d94 Mon Sep 17 00:00:00 2001 From: Eric NOULARD Date: Mon, 14 May 2012 20:26:15 +0200 Subject: [PATCH 038/101] CPack add easy possibility to warn about CPACK_SET_DESTDIR CPackNSIS will only warn but sooner or later it should error out --- Source/CPack/cmCPackGenerator.cxx | 32 ++++++++++++++++++++++++++- Source/CPack/cmCPackGenerator.h | 23 +++++++++++++++++++ Source/CPack/cmCPackNSISGenerator.cxx | 8 +++++++ Source/CPack/cmCPackNSISGenerator.h | 1 + 4 files changed, 63 insertions(+), 1 deletion(-) diff --git a/Source/CPack/cmCPackGenerator.cxx b/Source/CPack/cmCPackGenerator.cxx index 0f832b395..bf652718e 100644 --- a/Source/CPack/cmCPackGenerator.cxx +++ b/Source/CPack/cmCPackGenerator.cxx @@ -62,10 +62,31 @@ void cmCPackGenerator::DisplayVerboseOutput(const char* msg, //---------------------------------------------------------------------- int cmCPackGenerator::PrepareNames() -{ +{ cmCPackLogger(cmCPackLog::LOG_DEBUG, "Create temp directory." << std::endl); + // checks CPACK_SET_DESTDIR support + if (IsOn("CPACK_SET_DESTDIR")) + { + if (SETDESTDIR_UNSUPPORTED==SupportsSetDestdir()) + { + cmCPackLogger(cmCPackLog::LOG_ERROR, + "CPACK_SET_DESTDIR is set to ON but the '" + << Name << "' generator does NOT support it." + << std::endl); + return 0; + } + else if (SETDESTDIR_SHOULD_NOT_BE_USED==SupportsSetDestdir()) + { + cmCPackLogger(cmCPackLog::LOG_WARNING, + "CPACK_SET_DESTDIR is set to ON but it is " + << "usually a bad idea to do that with '" + << Name << "' generator. Use at your own risk." + << std::endl); + } + } + std::string tempDirectory = this->GetOption("CPACK_PACKAGE_DIRECTORY"); tempDirectory += "/_CPack_Packages/"; const char* toplevelTag = this->GetOption("CPACK_TOPLEVEL_TAG"); @@ -953,6 +974,8 @@ int cmCPackGenerator::DoPackage() cmCPackLogger(cmCPackLog::LOG_OUTPUT, "Create package using " << this->Name.c_str() << std::endl); + // Prepare CPack internal name and check + // values for many CPACK_xxx vars if ( !this->PrepareNames() ) { return 0; @@ -1430,6 +1453,13 @@ std::string cmCPackGenerator::GetComponentPackageFileName( return initialPackageFileName + suffix; } +//---------------------------------------------------------------------- +enum cmCPackGenerator::CPackSetDestdirSupport +cmCPackGenerator::SupportsSetDestdir() const +{ + return cmCPackGenerator::SETDESTDIR_SUPPORTED; +} + //---------------------------------------------------------------------- bool cmCPackGenerator::SupportsComponentInstallation() const { diff --git a/Source/CPack/cmCPackGenerator.h b/Source/CPack/cmCPackGenerator.h index 55afb4489..68ee3f2e0 100644 --- a/Source/CPack/cmCPackGenerator.h +++ b/Source/CPack/cmCPackGenerator.h @@ -189,6 +189,29 @@ protected: virtual int InstallProjectViaInstallCMakeProjects( bool setDestDir, const char* tempInstallDirectory); + /** + * The various level of support of + * CPACK_SET_DESTDIR used by the generator. + */ + enum CPackSetDestdirSupport { + /* the generator works with or without it */ + SETDESTDIR_SUPPORTED, + /* the generator works best if automatically handled */ + SETDESTDIR_INTERNALLY_SUPPORTED, + /* no official support, use at your own risk */ + SETDESTDIR_SHOULD_NOT_BE_USED, + /* officially NOT supported */ + SETDESTDIR_UNSUPPORTED + }; + + /** + * Does the CPack generator support CPACK_SET_DESTDIR? + * The default legacy value is 'true' generator + * have to override it in order change this. + * @return CPackSetDestdirSupport + */ + virtual enum CPackSetDestdirSupport SupportsSetDestdir() const; + /** * Does the CPack generator support component installation?. * Some Generators requires the user to set diff --git a/Source/CPack/cmCPackNSISGenerator.cxx b/Source/CPack/cmCPackNSISGenerator.cxx index 0787ef901..63189de2e 100644 --- a/Source/CPack/cmCPackNSISGenerator.cxx +++ b/Source/CPack/cmCPackNSISGenerator.cxx @@ -64,6 +64,7 @@ int cmCPackNSISGenerator::PackageFiles() << std::endl); return false; } + std::string nsisFileName = this->GetOption("CPACK_TOPLEVEL_DIRECTORY"); std::string tmpFile = nsisFileName; tmpFile += "/NSISOutput.log"; @@ -630,6 +631,13 @@ bool cmCPackNSISGenerator::GetListOfSubdirectories(const char* topdir, return true; } +//---------------------------------------------------------------------- +enum cmCPackGenerator::CPackSetDestdirSupport +cmCPackNSISGenerator::SupportsSetDestdir() const +{ + return cmCPackGenerator::SETDESTDIR_SHOULD_NOT_BE_USED; +} + //---------------------------------------------------------------------- bool cmCPackNSISGenerator::SupportsComponentInstallation() const { diff --git a/Source/CPack/cmCPackNSISGenerator.h b/Source/CPack/cmCPackNSISGenerator.h index 7bccb89fb..c2987d0ba 100644 --- a/Source/CPack/cmCPackNSISGenerator.h +++ b/Source/CPack/cmCPackNSISGenerator.h @@ -44,6 +44,7 @@ protected: bool GetListOfSubdirectories(const char* dir, std::vector& dirs); + enum cmCPackGenerator::CPackSetDestdirSupport SupportsSetDestdir() const; virtual bool SupportsComponentInstallation() const; /// Produce a string that contains the NSIS code to describe a From d59ba0c591c58f0fe11aa72635680ec72ab12c6c Mon Sep 17 00:00:00 2001 From: Jan Schaffmeister Date: Fri, 11 May 2012 10:32:00 -0400 Subject: [PATCH 039/101] Xcode: Recognize storyboard source files (#13214) --- Source/cmGlobalXCodeGenerator.cxx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx index 998843f45..522f3daef 100644 --- a/Source/cmGlobalXCodeGenerator.cxx +++ b/Source/cmGlobalXCodeGenerator.cxx @@ -723,6 +723,10 @@ GetSourcecodeValueFromFileExtension(const std::string& _ext, { sourcecode = "file.xib"; } + else if(ext == "storyboard") + { + sourcecode = "file.storyboard"; + } else if(ext == "mm") { sourcecode += ".cpp.objcpp"; From 16ee19731e13abcd7d36d18822f61b7679322631 Mon Sep 17 00:00:00 2001 From: "Anthony J. Bentley" Date: Mon, 14 May 2012 15:42:00 -0400 Subject: [PATCH 040/101] FindwxWidgets: Do not use -isystem on OpenBSD (#13219) Set wxWidgets_INCLUDE_DIRS_NO_SYSTEM on OpenBSD in addition to Apple to prevent UsewxWidgets.cmake from using the include_directories SYSTEM option. --- Modules/FindwxWidgets.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Modules/FindwxWidgets.cmake b/Modules/FindwxWidgets.cmake index 0bc617237..865a6c5d1 100644 --- a/Modules/FindwxWidgets.cmake +++ b/Modules/FindwxWidgets.cmake @@ -167,9 +167,9 @@ SET(wxWidgets_CXX_FLAGS "") # http://www.cmake.org/pipermail/cmake/2008-April/021115.html # http://www.cmake.org/pipermail/cmake/2008-April/021146.html # -IF(APPLE) +IF(APPLE OR CMAKE_CXX_PLATFORM_ID MATCHES "OpenBSD") SET(wxWidgets_INCLUDE_DIRS_NO_SYSTEM 1) -ENDIF(APPLE) +ENDIF() # DEPRECATED: This is a patch to support the DEPRECATED use of # wxWidgets_USE_LIBS. From 7ced0732e875ab7cf4797ef33bd4b897bc41eb53 Mon Sep 17 00:00:00 2001 From: Alex Neundorf Date: Sun, 13 May 2012 15:44:37 +0200 Subject: [PATCH 041/101] make default install component name configurable Until now an unnamed component was always named "Unspecified". Now this name is taken from the new cmake variable CMAKE_INSTALL_DEFAULT_COMPONENT_NAME, which is initialized to "Unspecified". But it can now be set to something project-specific, per directory Alex --- Modules/CMakeGenericSystem.cmake | 4 ++++ Source/cmInstallCommand.cxx | 33 +++++++++++++++++----------- Source/cmInstallCommand.h | 2 ++ Source/cmInstallCommandArguments.cxx | 7 ++++-- Source/cmInstallCommandArguments.h | 3 ++- Source/cmInstallFilesCommand.cxx | 8 ++++--- Source/cmInstallProgramsCommand.cxx | 8 ++++--- Source/cmInstallTargetsCommand.cxx | 3 ++- 8 files changed, 45 insertions(+), 23 deletions(-) diff --git a/Modules/CMakeGenericSystem.cmake b/Modules/CMakeGenericSystem.cmake index 45d1fbff1..6c61d3d78 100644 --- a/Modules/CMakeGenericSystem.cmake +++ b/Modules/CMakeGenericSystem.cmake @@ -168,6 +168,10 @@ ELSE(CMAKE_HOST_UNIX) SET(CMAKE_GENERIC_PROGRAM_FILES) ENDIF(CMAKE_HOST_UNIX) +# Set a variable which will be used as component name in install() commands +# where no COMPONENT has been given: +SET(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "Unspecified") + MARK_AS_ADVANCED( CMAKE_SKIP_RPATH CMAKE_SKIP_INSTALL_RPATH diff --git a/Source/cmInstallCommand.cxx b/Source/cmInstallCommand.cxx index d8522ee1e..401673460 100644 --- a/Source/cmInstallCommand.cxx +++ b/Source/cmInstallCommand.cxx @@ -55,6 +55,13 @@ bool cmInstallCommand::InitialPass(std::vector const& args, this->Makefile->GetLocalGenerator() ->GetGlobalGenerator()->EnableInstallTarget(); + this->DefaultComponentName = this->Makefile->GetSafeDefinition( + "CMAKE_INSTALL_DEFAULT_COMPONENT_NAME"); + if (this->DefaultComponentName.empty()) + { + this->DefaultComponentName = "Unspecified"; + } + // Switch among the command modes. if(args[0] == "SCRIPT") { @@ -95,7 +102,7 @@ bool cmInstallCommand::InitialPass(std::vector const& args, //---------------------------------------------------------------------------- bool cmInstallCommand::HandleScriptMode(std::vector const& args) { - std::string component("Unspecified"); + std::string component = this->DefaultComponentName; int componentCount = 0; bool doing_script = false; bool doing_code = false; @@ -222,7 +229,7 @@ bool cmInstallCommand::HandleTargetsMode(std::vector const& args) // ARCHIVE, RUNTIME etc. (see above) // These generic args also contain the targets and the export stuff std::vector unknownArgs; - cmInstallCommandArguments genericArgs; + cmInstallCommandArguments genericArgs(this->DefaultComponentName); cmCAStringVector targetList(&genericArgs.Parser, "TARGETS"); cmCAString exports(&genericArgs.Parser,"EXPORT", &genericArgs.ArgumentGroup); targetList.Follows(0); @@ -230,14 +237,14 @@ bool cmInstallCommand::HandleTargetsMode(std::vector const& args) genericArgs.Parse(&genericArgVector.GetVector(), &unknownArgs); bool success = genericArgs.Finalize(); - cmInstallCommandArguments archiveArgs; - cmInstallCommandArguments libraryArgs; - cmInstallCommandArguments runtimeArgs; - cmInstallCommandArguments frameworkArgs; - cmInstallCommandArguments bundleArgs; - cmInstallCommandArguments privateHeaderArgs; - cmInstallCommandArguments publicHeaderArgs; - cmInstallCommandArguments resourceArgs; + cmInstallCommandArguments archiveArgs(this->DefaultComponentName); + cmInstallCommandArguments libraryArgs(this->DefaultComponentName); + cmInstallCommandArguments runtimeArgs(this->DefaultComponentName); + cmInstallCommandArguments frameworkArgs(this->DefaultComponentName); + cmInstallCommandArguments bundleArgs(this->DefaultComponentName); + cmInstallCommandArguments privateHeaderArgs(this->DefaultComponentName); + cmInstallCommandArguments publicHeaderArgs(this->DefaultComponentName); + cmInstallCommandArguments resourceArgs(this->DefaultComponentName); // now parse the args for specific parts of the target (e.g. LIBRARY, // RUNTIME, ARCHIVE etc. @@ -788,7 +795,7 @@ bool cmInstallCommand::HandleFilesMode(std::vector const& args) { // This is the FILES mode. bool programs = (args[0] == "PROGRAMS"); - cmInstallCommandArguments ica; + cmInstallCommandArguments ica(this->DefaultComponentName); cmCAStringVector files(&ica.Parser, programs ? "PROGRAMS" : "FILES"); files.Follows(0); ica.ArgumentGroup.Follows(&files); @@ -865,7 +872,7 @@ cmInstallCommand::HandleDirectoryMode(std::vector const& args) std::string permissions_file; std::string permissions_dir; std::vector configurations; - std::string component = "Unspecified"; + std::string component = this->DefaultComponentName; std::string literal_args; for(unsigned int i=1; i < args.size(); ++i) { @@ -1179,7 +1186,7 @@ cmInstallCommand::HandleDirectoryMode(std::vector const& args) bool cmInstallCommand::HandleExportMode(std::vector const& args) { // This is the EXPORT mode. - cmInstallCommandArguments ica; + cmInstallCommandArguments ica(this->DefaultComponentName); cmCAString exp(&ica.Parser, "EXPORT"); cmCAString name_space(&ica.Parser, "NAMESPACE", &ica.ArgumentGroup); cmCAString filename(&ica.Parser, "FILE", &ica.ArgumentGroup); diff --git a/Source/cmInstallCommand.h b/Source/cmInstallCommand.h index ee2252380..bf9fd9ed3 100644 --- a/Source/cmInstallCommand.h +++ b/Source/cmInstallCommand.h @@ -341,6 +341,8 @@ private: const std::vector& relFiles, std::vector& absFiles); bool CheckCMP0006(bool& failure); + + std::string DefaultComponentName; }; diff --git a/Source/cmInstallCommandArguments.cxx b/Source/cmInstallCommandArguments.cxx index f50859431..0ba21c7ad 100644 --- a/Source/cmInstallCommandArguments.cxx +++ b/Source/cmInstallCommandArguments.cxx @@ -23,7 +23,8 @@ const char* cmInstallCommandArguments::PermissionsTable[] = const std::string cmInstallCommandArguments::EmptyString; -cmInstallCommandArguments::cmInstallCommandArguments() +cmInstallCommandArguments::cmInstallCommandArguments( + const std::string& defaultComponent) :Parser() ,ArgumentGroup() ,Destination (&Parser, "DESTINATION" , &ArgumentGroup) @@ -35,7 +36,9 @@ cmInstallCommandArguments::cmInstallCommandArguments() ,NamelinkOnly (&Parser, "NAMELINK_ONLY" , &ArgumentGroup) ,NamelinkSkip (&Parser, "NAMELINK_SKIP" , &ArgumentGroup) ,GenericArguments(0) -{} +{ + this->Component.SetDefaultString(defaultComponent.c_str()); +} const std::string& cmInstallCommandArguments::GetDestination() const { diff --git a/Source/cmInstallCommandArguments.h b/Source/cmInstallCommandArguments.h index 53f13c0cd..321454a59 100644 --- a/Source/cmInstallCommandArguments.h +++ b/Source/cmInstallCommandArguments.h @@ -19,7 +19,7 @@ class cmInstallCommandArguments { public: - cmInstallCommandArguments(); + cmInstallCommandArguments(const std::string& defaultComponent); void SetGenericArguments(cmInstallCommandArguments* args) {this->GenericArguments = args;} void Parse(const std::vector* args, @@ -45,6 +45,7 @@ class cmInstallCommandArguments cmCommandArgumentsHelper Parser; cmCommandArgumentGroup ArgumentGroup; private: + cmInstallCommandArguments(); // disabled cmCAString Destination; cmCAString Component; cmCAString Rename; diff --git a/Source/cmInstallFilesCommand.cxx b/Source/cmInstallFilesCommand.cxx index 85400a1a0..cc62c4bac 100644 --- a/Source/cmInstallFilesCommand.cxx +++ b/Source/cmInstallFilesCommand.cxx @@ -55,7 +55,8 @@ bool cmInstallFilesCommand } this->Makefile->GetLocalGenerator()->GetGlobalGenerator() - ->AddInstallComponent("Unspecified"); + ->AddInstallComponent(this->Makefile->GetSafeDefinition( + "CMAKE_INSTALL_DEFAULT_COMPONENT_NAME")); return true; } @@ -128,13 +129,14 @@ void cmInstallFilesCommand::CreateInstallGenerator() const // Use a file install generator. const char* no_permissions = ""; const char* no_rename = ""; - const char* no_component = "Unspecified"; + std::string no_component = this->Makefile->GetSafeDefinition( + "CMAKE_INSTALL_DEFAULT_COMPONENT_NAME"); std::vector no_configurations; this->Makefile->AddInstallGenerator( new cmInstallFilesGenerator(this->Files, destination.c_str(), false, no_permissions, no_configurations, - no_component, no_rename)); + no_component.c_str(), no_rename)); } diff --git a/Source/cmInstallProgramsCommand.cxx b/Source/cmInstallProgramsCommand.cxx index 61ac74117..3a0a3223b 100644 --- a/Source/cmInstallProgramsCommand.cxx +++ b/Source/cmInstallProgramsCommand.cxx @@ -34,7 +34,8 @@ bool cmInstallProgramsCommand } this->Makefile->GetLocalGenerator()->GetGlobalGenerator() - ->AddInstallComponent("Unspecified"); + ->AddInstallComponent(this->Makefile->GetSafeDefinition( + "CMAKE_INSTALL_DEFAULT_COMPONENT_NAME")); return true; } @@ -89,13 +90,14 @@ void cmInstallProgramsCommand::FinalPass() // Use a file install generator. const char* no_permissions = ""; const char* no_rename = ""; - const char* no_component = "Unspecified"; + std::string no_component = this->Makefile->GetSafeDefinition( + "CMAKE_INSTALL_DEFAULT_COMPONENT_NAME"); std::vector no_configurations; this->Makefile->AddInstallGenerator( new cmInstallFilesGenerator(this->Files, destination.c_str(), true, no_permissions, no_configurations, - no_component, no_rename)); + no_component.c_str(), no_rename)); } /** diff --git a/Source/cmInstallTargetsCommand.cxx b/Source/cmInstallTargetsCommand.cxx index 27fc175de..277ccea43 100644 --- a/Source/cmInstallTargetsCommand.cxx +++ b/Source/cmInstallTargetsCommand.cxx @@ -58,7 +58,8 @@ bool cmInstallTargetsCommand } this->Makefile->GetLocalGenerator()->GetGlobalGenerator() - ->AddInstallComponent("Unspecified"); + ->AddInstallComponent(this->Makefile->GetSafeDefinition( + "CMAKE_INSTALL_DEFAULT_COMPONENT_NAME")); return true; } From b71e731b9b91f9f79ab49838baae5bb5ab42c30e Mon Sep 17 00:00:00 2001 From: Alex Neundorf Date: Sun, 13 May 2012 17:48:13 +0200 Subject: [PATCH 042/101] -add docs for ${CMAKE_INSTALL_DEFAULT_COMPONENT_NAME} Alex --- Source/cmDocumentVariables.cxx | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Source/cmDocumentVariables.cxx b/Source/cmDocumentVariables.cxx index 897e516b9..688123606 100644 --- a/Source/cmDocumentVariables.cxx +++ b/Source/cmDocumentVariables.cxx @@ -522,6 +522,16 @@ void cmDocumentVariables::DefineVariables(cmake* cm) false, "Variables That Change Behavior"); + cm->DefineProperty + ("CMAKE_INSTALL_DEFAULT_COMPONENT_NAME", cmProperty::VARIABLE, + "Default component used in install() commands.", + "If an install() command is used without the COMPONENT argument, " + "these files will be grouped into a default component. The name of this " + "default install component will be taken from this variable. " + "It defaults to \"Unspecified\". ", + false, + "Variables That Change Behavior"); + cm->DefineProperty ("CMAKE_FIND_LIBRARY_PREFIXES", cmProperty::VARIABLE, "Prefixes to prepend when looking for libraries.", From 47f0dbd70b83ccb5e314abee5feded2ed50a23fb Mon Sep 17 00:00:00 2001 From: Eric NOULARD Date: Mon, 14 May 2012 23:29:42 +0200 Subject: [PATCH 043/101] CPack add necessary check to detect/warns/error on ABSOLUTE DESTINATION The [usually] wrong usage of absolute DESTINATION in INSTALL rules keeps popping-up on the ML. We shall have some way to: 1) easily detect it. 2) forbids this for some CPack generator like NSIS In fact it should certainly be forbidden for *any* generators when used on Windows but we may implements that on top of the current patch. The patch ask the task to the generated cmake_install.cmake scripts. Those scripts are a little bit more complicated with that but iff there are absolute DESTINATION. This cost nothing if relative DESTINATION are used. Two new vars are introduced (and documented to handle that): CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION and CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION --- Source/CPack/cmCPackDocumentVariables.cxx | 16 +++++++++++++++ Source/CPack/cmCPackGenerator.cxx | 25 +++++++++++++++++++++++ Source/CPack/cmCPackGenerator.h | 11 +++++++++- Source/CPack/cmCPackNSISGenerator.cxx | 6 ++++++ Source/CPack/cmCPackNSISGenerator.h | 1 + Source/cmInstallGenerator.cxx | 9 ++++++++ 6 files changed, 67 insertions(+), 1 deletion(-) diff --git a/Source/CPack/cmCPackDocumentVariables.cxx b/Source/CPack/cmCPackDocumentVariables.cxx index d2e3802c6..b5294805d 100644 --- a/Source/CPack/cmCPackDocumentVariables.cxx +++ b/Source/CPack/cmCPackDocumentVariables.cxx @@ -77,4 +77,20 @@ void cmCPackDocumentVariables::DefineVariables(cmake* cm) "which is done right before packaging the files." " The script is not called by e.g.: make install.", false, "Variables common to all CPack generators"); + + cm->DefineProperty + ("CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION", cmProperty::VARIABLE, + "Ask CPack to warn each time a file with absolute INSTALL" + " DESTINATION is encountered.", + "", false, + "Variables common to all CPack generators"); + + cm->DefineProperty + ("CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION", cmProperty::VARIABLE, + "Ask CPack to error out as soon as a file with absolute INSTALL" + " DESTINATION is encountered", + "The fatal error is emitted before the installation of " + "the offending file takes place. Some CPack generators, like NSIS," + "enforce this internally.", false, + "Variables common to all CPack generators"); } diff --git a/Source/CPack/cmCPackGenerator.cxx b/Source/CPack/cmCPackGenerator.cxx index bf652718e..ca790c02c 100644 --- a/Source/CPack/cmCPackGenerator.cxx +++ b/Source/CPack/cmCPackGenerator.cxx @@ -849,8 +849,27 @@ int cmCPackGenerator::InstallProjectViaInstallCMakeProjects( filesBefore = glB.GetFiles(); std::sort(filesBefore.begin(),filesBefore.end()); } + + // If CPack was asked to warn on ABSOLUTE INSTALL DESTINATION + // then forward request to cmake_install.cmake script + if (this->GetOption("CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION")) + { + mf->AddDefinition("CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION", + "1"); + } + // If current CPack generator does support + // ABSOLUTE INSTALL DESTINATION or CPack has been asked for + // then ask cmake_install.cmake script to error out + // as soon as it occurs (before installing file) + if (!SupportsAbsoluteDestination() || + this->GetOption("CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION")) + { + mf->AddDefinition("CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION", + "1"); + } // do installation int res = mf->ReadListFile(0, installFile.c_str()); + // Now rebuild the list of files after installation // of the current component (if we are in component install) if (componentInstall) @@ -1460,6 +1479,12 @@ cmCPackGenerator::SupportsSetDestdir() const return cmCPackGenerator::SETDESTDIR_SUPPORTED; } +//---------------------------------------------------------------------- +bool cmCPackGenerator::SupportsAbsoluteDestination() const +{ + return true; +} + //---------------------------------------------------------------------- bool cmCPackGenerator::SupportsComponentInstallation() const { diff --git a/Source/CPack/cmCPackGenerator.h b/Source/CPack/cmCPackGenerator.h index 68ee3f2e0..ddde8b5d8 100644 --- a/Source/CPack/cmCPackGenerator.h +++ b/Source/CPack/cmCPackGenerator.h @@ -206,12 +206,21 @@ protected: /** * Does the CPack generator support CPACK_SET_DESTDIR? - * The default legacy value is 'true' generator + * The default legacy value is 'SETDESTDIR_SUPPORTED' generator * have to override it in order change this. * @return CPackSetDestdirSupport */ virtual enum CPackSetDestdirSupport SupportsSetDestdir() const; + /** + * Does the CPack generator support absolute path + * in INSTALL DESTINATION? + * The default legacy value is 'true' generator + * have to override it in order change this. + * @return true if supported false otherwise + */ + virtual bool SupportsAbsoluteDestination() const; + /** * Does the CPack generator support component installation?. * Some Generators requires the user to set diff --git a/Source/CPack/cmCPackNSISGenerator.cxx b/Source/CPack/cmCPackNSISGenerator.cxx index 63189de2e..481fd2b6e 100644 --- a/Source/CPack/cmCPackNSISGenerator.cxx +++ b/Source/CPack/cmCPackNSISGenerator.cxx @@ -638,6 +638,12 @@ cmCPackNSISGenerator::SupportsSetDestdir() const return cmCPackGenerator::SETDESTDIR_SHOULD_NOT_BE_USED; } +//---------------------------------------------------------------------- +bool cmCPackNSISGenerator::SupportsAbsoluteDestination() const +{ + return false; +} + //---------------------------------------------------------------------- bool cmCPackNSISGenerator::SupportsComponentInstallation() const { diff --git a/Source/CPack/cmCPackNSISGenerator.h b/Source/CPack/cmCPackNSISGenerator.h index c2987d0ba..82248546f 100644 --- a/Source/CPack/cmCPackNSISGenerator.h +++ b/Source/CPack/cmCPackNSISGenerator.h @@ -45,6 +45,7 @@ protected: std::vector& dirs); enum cmCPackGenerator::CPackSetDestdirSupport SupportsSetDestdir() const; + virtual bool SupportsAbsoluteDestination() const; virtual bool SupportsComponentInstallation() const; /// Produce a string that contains the NSIS code to describe a diff --git a/Source/cmInstallGenerator.cxx b/Source/cmInstallGenerator.cxx index 807168e0d..2150ec1b8 100644 --- a/Source/cmInstallGenerator.cxx +++ b/Source/cmInstallGenerator.cxx @@ -80,6 +80,15 @@ void cmInstallGenerator } } os << "\")\n"; + os << indent << "IF (CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION)\n"; + os << indent << indent << "message(WARNING \"ABSOLUTE path INSTALL " + << "DESTINATION : ${CPACK_ABSOLUTE_DESTINATION_FILES}\")\n"; + os << indent << "ENDIF (CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION)\n"; + + os << indent << "IF (CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION)\n"; + os << indent << indent << "message(FATAL_ERROR \"ABSOLUTE path INSTALL " + << "DESTINATION forbidden (by CPack): ${CPACK_ABSOLUTE_DESTINATION_FILES}\")\n"; + os << indent << "ENDIF (CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION)\n"; } os << "FILE(INSTALL DESTINATION \"" << dest << "\" TYPE " << stype.c_str(); if(optional) From 0977250ba0dabbefc6eab5a7bf18bd6b4a04258f Mon Sep 17 00:00:00 2001 From: Kitware Robot Date: Tue, 15 May 2012 00:01:04 -0400 Subject: [PATCH 044/101] CMake Nightly Date Stamp --- Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index d47696b62..6bc7631d1 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -2,5 +2,5 @@ SET(CMake_VERSION_MAJOR 2) SET(CMake_VERSION_MINOR 8) SET(CMake_VERSION_PATCH 8) -SET(CMake_VERSION_TWEAK 20120514) +SET(CMake_VERSION_TWEAK 20120515) #SET(CMake_VERSION_RC 1) From f90223cafc4be83a1556e2d238e2af596afbd616 Mon Sep 17 00:00:00 2001 From: Eric NOULARD Date: Tue, 15 May 2012 07:54:42 +0200 Subject: [PATCH 045/101] Fix KWStyle warning --- Source/cmInstallGenerator.cxx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Source/cmInstallGenerator.cxx b/Source/cmInstallGenerator.cxx index 2150ec1b8..2b1db7940 100644 --- a/Source/cmInstallGenerator.cxx +++ b/Source/cmInstallGenerator.cxx @@ -87,7 +87,8 @@ void cmInstallGenerator os << indent << "IF (CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION)\n"; os << indent << indent << "message(FATAL_ERROR \"ABSOLUTE path INSTALL " - << "DESTINATION forbidden (by CPack): ${CPACK_ABSOLUTE_DESTINATION_FILES}\")\n"; + << "DESTINATION forbidden (by CPack): " + << "${CPACK_ABSOLUTE_DESTINATION_FILES}\")\n"; os << indent << "ENDIF (CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION)\n"; } os << "FILE(INSTALL DESTINATION \"" << dest << "\" TYPE " << stype.c_str(); From e78483c08e1f7753509afa4d4aab94274cd6b861 Mon Sep 17 00:00:00 2001 From: Kitware Robot Date: Wed, 16 May 2012 00:01:03 -0400 Subject: [PATCH 046/101] CMake Nightly Date Stamp --- Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 6bc7631d1..a8c6e0491 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -2,5 +2,5 @@ SET(CMake_VERSION_MAJOR 2) SET(CMake_VERSION_MINOR 8) SET(CMake_VERSION_PATCH 8) -SET(CMake_VERSION_TWEAK 20120515) +SET(CMake_VERSION_TWEAK 20120516) #SET(CMake_VERSION_RC 1) From b3b095a933d7f355fcdd57c041c771b7618c9717 Mon Sep 17 00:00:00 2001 From: Brian Helba Date: Mon, 14 May 2012 18:50:30 -0400 Subject: [PATCH 047/101] Print any evaluated 'elseif'/'else' commands in trace mode (#13220) In trace mode ('--trace'), any 'elseif' or 'else' commands that are evaluated as part of a conditional block will be printed. Previously, only the opening 'if' command of a conditional block was printed. --- Source/cmIfCommand.cxx | 13 +++++++++++++ Source/cmMakefile.cxx | 30 ++++++++++++++++++------------ Source/cmMakefile.h | 5 +++++ 3 files changed, 36 insertions(+), 12 deletions(-) diff --git a/Source/cmIfCommand.cxx b/Source/cmIfCommand.cxx index 4eed47728..ffc0f35b8 100644 --- a/Source/cmIfCommand.cxx +++ b/Source/cmIfCommand.cxx @@ -74,6 +74,13 @@ IsFunctionBlocked(const cmListFileFunction& lff, { this->IsBlocking = this->HasRun; this->HasRun = true; + + // if trace is enabled, print a (trivially) evaluated "else" + // statement + if(!this->IsBlocking && mf.GetCMakeInstance()->GetTrace()) + { + mf.PrintCommandTrace(this->Functions[c]); + } } else if (scopeDepth == 0 && !cmSystemTools::Strucmp (this->Functions[c].Name.c_str(),"elseif")) @@ -88,6 +95,12 @@ IsFunctionBlocked(const cmListFileFunction& lff, cmMakefileCall stack_manager(&mf, this->Functions[c], status); static_cast(stack_manager); + // if trace is enabled, print the evaluated "elseif" statement + if(mf.GetCMakeInstance()->GetTrace()) + { + mf.PrintCommandTrace(this->Functions[c]); + } + std::string errorString; std::vector expandedArguments; diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx index 0a709ae90..a60896fbc 100644 --- a/Source/cmMakefile.cxx +++ b/Source/cmMakefile.cxx @@ -353,6 +353,22 @@ bool cmMakefile::GetBacktrace(cmListFileBacktrace& backtrace) const return true; } +//---------------------------------------------------------------------------- +void cmMakefile::PrintCommandTrace(const cmListFileFunction& lff) +{ + cmOStringStream msg; + msg << lff.FilePath << "(" << lff.Line << "): "; + msg << lff.Name << "("; + for(std::vector::const_iterator i = + lff.Arguments.begin(); i != lff.Arguments.end(); ++i) + { + msg << i->Value; + msg << " "; + } + msg << ")"; + cmSystemTools::Message(msg.str().c_str()); +} + //---------------------------------------------------------------------------- bool cmMakefile::ExecuteCommand(const cmListFileFunction& lff, cmExecutionStatus &status) @@ -385,20 +401,10 @@ bool cmMakefile::ExecuteCommand(const cmListFileFunction& lff, || pcmd->IsScriptable())) { - // if trace is one, print out invoke information + // if trace is enabled, print out invoke information if(this->GetCMakeInstance()->GetTrace()) { - cmOStringStream msg; - msg << lff.FilePath << "(" << lff.Line << "): "; - msg << lff.Name << "("; - for(std::vector::const_iterator i = - lff.Arguments.begin(); i != lff.Arguments.end(); ++i) - { - msg << i->Value; - msg << " "; - } - msg << ")"; - cmSystemTools::Message(msg.str().c_str()); + this->PrintCommandTrace(lff); } // Try invoking the command. if(!pcmd->InvokeInitialPass(lff.Arguments,status) || diff --git a/Source/cmMakefile.h b/Source/cmMakefile.h index 9fc64d6f0..8a0088b1a 100644 --- a/Source/cmMakefile.h +++ b/Source/cmMakefile.h @@ -700,6 +700,11 @@ public: std::vector &groups); #endif + /** + * Print a command's invocation + */ + void PrintCommandTrace(const cmListFileFunction& lff); + /** * Execute a single CMake command. Returns true if the command * succeeded or false if it failed. From d807aab28fd86586e8ecb5e4f4d35b43bc68d5f8 Mon Sep 17 00:00:00 2001 From: Peter Collingbourne Date: Mon, 30 Apr 2012 04:25:37 +0100 Subject: [PATCH 048/101] Ninja: apply CMAKE__FLAGS_ to executable targets (#13069) Based on a patch by Zaheer Chothia! --- Source/cmLocalGenerator.cxx | 5 +---- Source/cmNinjaNormalTargetGenerator.cxx | 11 ++++++----- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx index 6362d8025..8265d72b4 100644 --- a/Source/cmLocalGenerator.cxx +++ b/Source/cmLocalGenerator.cxx @@ -1548,13 +1548,10 @@ void cmLocalGenerator::GetTargetFlags(std::string& linkLibs, target.GetName()); return; } - std::string langVar = "CMAKE_"; - langVar += linkLanguage; - std::string flagsVar = langVar + "_FLAGS"; + this->AddLanguageFlags(flags, linkLanguage, buildType.c_str()); std::string sharedFlagsVar = "CMAKE_SHARED_LIBRARY_"; sharedFlagsVar += linkLanguage; sharedFlagsVar += "_FLAGS"; - flags += this->Makefile->GetSafeDefinition(flagsVar.c_str()); flags += " "; flags += this->Makefile->GetSafeDefinition(sharedFlagsVar.c_str()); flags += " "; diff --git a/Source/cmNinjaNormalTargetGenerator.cxx b/Source/cmNinjaNormalTargetGenerator.cxx index 63ba58df5..8b86a98d2 100644 --- a/Source/cmNinjaNormalTargetGenerator.cxx +++ b/Source/cmNinjaNormalTargetGenerator.cxx @@ -193,12 +193,13 @@ cmNinjaNormalTargetGenerator vars.LinkFlags = "$LINK_FLAGS"; std::string langFlags; - this->GetLocalGenerator()->AddLanguageFlags(langFlags, - this->TargetLinkLanguage, - this->GetConfigName()); - if (targetType != cmTarget::EXECUTABLE) + if (targetType != cmTarget::EXECUTABLE) { + this->GetLocalGenerator()->AddLanguageFlags(langFlags, + this->TargetLinkLanguage, + this->GetConfigName()); langFlags += " $ARCH_FLAGS"; - vars.LanguageCompileFlags = langFlags.c_str(); + vars.LanguageCompileFlags = langFlags.c_str(); + } // Rule for linking library. std::vector linkCmds = this->ComputeLinkCmd(); From b94514f02018d566abc0156d5a729ebe9ee49105 Mon Sep 17 00:00:00 2001 From: Peter Collingbourne Date: Wed, 16 May 2012 23:57:09 +0100 Subject: [PATCH 049/101] Ninja: mark rules/build file streams failed if error occurred (#13067, #13105) This causes cmGeneratedFileStream to delete the temporary files, rather than overwriting the (working) existing files. --- Source/cmGlobalNinjaGenerator.cxx | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Source/cmGlobalNinjaGenerator.cxx b/Source/cmGlobalNinjaGenerator.cxx index 9cbd50233..5f52e1d2e 100644 --- a/Source/cmGlobalNinjaGenerator.cxx +++ b/Source/cmGlobalNinjaGenerator.cxx @@ -385,6 +385,11 @@ void cmGlobalNinjaGenerator::Generate() this->WriteTargetAliases(*this->BuildFileStream); this->WriteBuiltinTargets(*this->BuildFileStream); + if (cmSystemTools::GetErrorOccuredFlag()) { + this->RulesFileStream->setstate(std::ios_base::failbit); + this->BuildFileStream->setstate(std::ios_base::failbit); + } + this->CloseRulesFileStream(); this->CloseBuildFileStream(); } From 3e0580ba6536186772203f09091ef960a9704c19 Mon Sep 17 00:00:00 2001 From: Kitware Robot Date: Thu, 17 May 2012 00:01:03 -0400 Subject: [PATCH 050/101] CMake Nightly Date Stamp --- Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index a8c6e0491..bb1005c4d 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -2,5 +2,5 @@ SET(CMake_VERSION_MAJOR 2) SET(CMake_VERSION_MINOR 8) SET(CMake_VERSION_PATCH 8) -SET(CMake_VERSION_TWEAK 20120516) +SET(CMake_VERSION_TWEAK 20120517) #SET(CMake_VERSION_RC 1) From cb37cae6918782d5bef6d30c30bee033de000372 Mon Sep 17 00:00:00 2001 From: Kitware Robot Date: Fri, 18 May 2012 00:01:04 -0400 Subject: [PATCH 051/101] CMake Nightly Date Stamp --- Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index bb1005c4d..451803281 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -2,5 +2,5 @@ SET(CMake_VERSION_MAJOR 2) SET(CMake_VERSION_MINOR 8) SET(CMake_VERSION_PATCH 8) -SET(CMake_VERSION_TWEAK 20120517) +SET(CMake_VERSION_TWEAK 20120518) #SET(CMake_VERSION_RC 1) From e2d71bb69354facbdd1df4d487ee897cecb9f30e Mon Sep 17 00:00:00 2001 From: Kitware Robot Date: Sat, 19 May 2012 00:01:02 -0400 Subject: [PATCH 052/101] CMake Nightly Date Stamp --- Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 451803281..120f2b317 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -2,5 +2,5 @@ SET(CMake_VERSION_MAJOR 2) SET(CMake_VERSION_MINOR 8) SET(CMake_VERSION_PATCH 8) -SET(CMake_VERSION_TWEAK 20120518) +SET(CMake_VERSION_TWEAK 20120519) #SET(CMake_VERSION_RC 1) From 4742eec96a115641033662fd1594a96cea15cef7 Mon Sep 17 00:00:00 2001 From: Kitware Robot Date: Sun, 20 May 2012 00:01:02 -0400 Subject: [PATCH 053/101] CMake Nightly Date Stamp --- Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 120f2b317..6f45c4fc3 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -2,5 +2,5 @@ SET(CMake_VERSION_MAJOR 2) SET(CMake_VERSION_MINOR 8) SET(CMake_VERSION_PATCH 8) -SET(CMake_VERSION_TWEAK 20120519) +SET(CMake_VERSION_TWEAK 20120520) #SET(CMake_VERSION_RC 1) From 4986d525afcddcad6f8610c85cc7d2cf46701ad5 Mon Sep 17 00:00:00 2001 From: Eric NOULARD Date: Sun, 20 May 2012 17:28:54 +0200 Subject: [PATCH 054/101] Use CPACK_xxx and CMAKE_xxx in a consistent way. CMAKE_xxx vars are now used in the CMake-generated cmake_install.cmake script while CPACK_xxx equivalent vars are used from within CPack. CPack is responsible for getting/forwarding definitions of CPACK_xxxx var corresponding to CMAKE_xxxx when invoking CMake-generated install scripts. As a consequence: CMAKE_ABSOLUTE_DESTINATION_FILES CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION may be used from outside CPack as well. e.g. cmake -DCMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION=1 -P cmake_install.cmake works as expected. --- Source/CPack/cmCPackDocumentVariables.cxx | 21 +++++++++++++--- Source/CPack/cmCPackGenerator.cxx | 12 +++++++-- Source/cmDocumentVariables.cxx | 30 +++++++++++++++++++++++ Source/cmInstallGenerator.cxx | 16 ++++++------ 4 files changed, 66 insertions(+), 13 deletions(-) diff --git a/Source/CPack/cmCPackDocumentVariables.cxx b/Source/CPack/cmCPackDocumentVariables.cxx index b5294805d..edbef45ef 100644 --- a/Source/CPack/cmCPackDocumentVariables.cxx +++ b/Source/CPack/cmCPackDocumentVariables.cxx @@ -78,19 +78,34 @@ void cmCPackDocumentVariables::DefineVariables(cmake* cm) " The script is not called by e.g.: make install.", false, "Variables common to all CPack generators"); + cm->DefineProperty + ("CPACK_ABSOLUTE_DESTINATION_FILES", cmProperty::VARIABLE, + "List of files which have been installed using " + " an ABSOLUTE DESTINATION path.", + "This variable is a Read-Only variable which is set internally" + " by CPack during installation and before packaging using" + " CMAKE_ABSOLUTE_DESTINATION_FILES defined in cmake_install.cmake " + "scripts. The value can be used within CPack project configuration" + " file and/or CPack.cmake file of generator.", false, + "Variables common to all CPack generators"); + cm->DefineProperty ("CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION", cmProperty::VARIABLE, "Ask CPack to warn each time a file with absolute INSTALL" " DESTINATION is encountered.", - "", false, + "This variable triggers the definition of " + "CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION when CPack runs" + " cmake_install.cmake scripts.", false, "Variables common to all CPack generators"); cm->DefineProperty ("CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION", cmProperty::VARIABLE, "Ask CPack to error out as soon as a file with absolute INSTALL" - " DESTINATION is encountered", + " DESTINATION is encountered.", "The fatal error is emitted before the installation of " "the offending file takes place. Some CPack generators, like NSIS," - "enforce this internally.", false, + "enforce this internally. " + "This variable triggers the definition of" + "CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION when CPack runs" "Variables common to all CPack generators"); } diff --git a/Source/CPack/cmCPackGenerator.cxx b/Source/CPack/cmCPackGenerator.cxx index ca790c02c..87a3b9e4c 100644 --- a/Source/CPack/cmCPackGenerator.cxx +++ b/Source/CPack/cmCPackGenerator.cxx @@ -854,7 +854,7 @@ int cmCPackGenerator::InstallProjectViaInstallCMakeProjects( // then forward request to cmake_install.cmake script if (this->GetOption("CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION")) { - mf->AddDefinition("CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION", + mf->AddDefinition("CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION", "1"); } // If current CPack generator does support @@ -864,11 +864,19 @@ int cmCPackGenerator::InstallProjectViaInstallCMakeProjects( if (!SupportsAbsoluteDestination() || this->GetOption("CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION")) { - mf->AddDefinition("CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION", + mf->AddDefinition("CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION", "1"); } // do installation int res = mf->ReadListFile(0, installFile.c_str()); + // forward definition of CMAKE_ABSOLUTE_DESTINATION_FILES + // to CPack (may be used by generators like CPack RPM or DEB) + // in order to transparently handle ABSOLUTE PATH + if (mf->GetDefinition("CMAKE_ABSOLUTE_DESTINATION_FILES")) + { + mf->AddDefinition("CPACK_ABSOLUTE_DESTINATION_FILES", + mf->GetDefinition("CMAKE_ABSOLUTE_DESTINATION_FILES")); + } // Now rebuild the list of files after installation // of the current component (if we are in component install) diff --git a/Source/cmDocumentVariables.cxx b/Source/cmDocumentVariables.cxx index 897e516b9..fb40024ef 100644 --- a/Source/cmDocumentVariables.cxx +++ b/Source/cmDocumentVariables.cxx @@ -833,6 +833,36 @@ void cmDocumentVariables::DefineVariables(cmake* cm) "Default is ON.",false, "Variables That Change Behavior"); + cm->DefineProperty + ("CMAKE_ABSOLUTE_DESTINATION_FILES", cmProperty::VARIABLE, + "List of files which have been installed using " + " an ABSOLUTE DESTINATION path.", + "This variable is defined by CMake-generated cmake_install.cmake " + "scripts." + " It can be used (read-only) by program or script that source those" + " install scripts. This is used by some CPack generators (e.g. RPM).", + false, + "Variables That Change Behavior"); + + cm->DefineProperty + ("CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION", cmProperty::VARIABLE, + "Ask cmake_install.cmake script to warn each time a file with " + "absolute INSTALL DESTINATION is encountered.", + "This variable is used by CMake-generated cmake_install.cmake" + " scripts. If ones set this variable to ON while running the" + " script, it may get warning messages from the script.", false, + "Variables That Change Behavior"); + + cm->DefineProperty + ("CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION", cmProperty::VARIABLE, + "Ask cmake_install.cmake script to error out as soon as " + "a file with absolute INSTALL DESTINATION is encountered.", + "The fatal error is emitted before the installation of " + "the offending file takes place." + " This variable is used by CMake-generated cmake_install.cmake" + " scripts. If ones set this variable to ON while running the" + " script, it may get fatal error messages from the script.",false, + "Variables That Change Behavior"); // Variables defined by CMake that describe the system diff --git a/Source/cmInstallGenerator.cxx b/Source/cmInstallGenerator.cxx index 2b1db7940..3be2c2b14 100644 --- a/Source/cmInstallGenerator.cxx +++ b/Source/cmInstallGenerator.cxx @@ -60,7 +60,7 @@ void cmInstallGenerator std::string dest = this->GetInstallDestination(); if (cmSystemTools::FileIsFullPath(dest.c_str())) { - os << "list(APPEND CPACK_ABSOLUTE_DESTINATION_FILES\n"; + os << "list(APPEND CMAKE_ABSOLUTE_DESTINATION_FILES\n"; os << indent << " \""; for(std::vector::const_iterator fi = files.begin(); fi != files.end(); ++fi) @@ -80,16 +80,16 @@ void cmInstallGenerator } } os << "\")\n"; - os << indent << "IF (CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION)\n"; + os << indent << "IF (CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION)\n"; os << indent << indent << "message(WARNING \"ABSOLUTE path INSTALL " - << "DESTINATION : ${CPACK_ABSOLUTE_DESTINATION_FILES}\")\n"; - os << indent << "ENDIF (CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION)\n"; + << "DESTINATION : ${CMAKE_ABSOLUTE_DESTINATION_FILES}\")\n"; + os << indent << "ENDIF (CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION)\n"; - os << indent << "IF (CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION)\n"; + os << indent << "IF (CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION)\n"; os << indent << indent << "message(FATAL_ERROR \"ABSOLUTE path INSTALL " - << "DESTINATION forbidden (by CPack): " - << "${CPACK_ABSOLUTE_DESTINATION_FILES}\")\n"; - os << indent << "ENDIF (CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION)\n"; + << "DESTINATION forbidden (by caller): " + << "${CMAKE_ABSOLUTE_DESTINATION_FILES}\")\n"; + os << indent << "ENDIF (CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION)\n"; } os << "FILE(INSTALL DESTINATION \"" << dest << "\" TYPE " << stype.c_str(); if(optional) From 2a34b579381cd73a18553c331d91b99a42292367 Mon Sep 17 00:00:00 2001 From: Eric NOULARD Date: Fri, 30 Mar 2012 17:07:06 +0200 Subject: [PATCH 055/101] CPack allow RPM and DEB generator to be used on OSX. More generally add the check for possible generator "activation" at runtime depending on a generator specific check. The dynamic behavior is currently implemented only for MacOS and should be fully backward compatible for other system. Inspired-By Tom Hughes --- Source/CPack/cmCPackDebGenerator.h | 11 +++ Source/CPack/cmCPackGenerator.h | 10 +++ Source/CPack/cmCPackGeneratorFactory.cxx | 102 ++++++++++++++++------- Source/CPack/cmCPackRPMGenerator.h | 11 +++ Tests/CMakeLists.txt | 48 ++++++++--- 5 files changed, 140 insertions(+), 42 deletions(-) diff --git a/Source/CPack/cmCPackDebGenerator.h b/Source/CPack/cmCPackDebGenerator.h index f536c474e..7f2352f15 100644 --- a/Source/CPack/cmCPackDebGenerator.h +++ b/Source/CPack/cmCPackDebGenerator.h @@ -31,6 +31,17 @@ public: cmCPackDebGenerator(); virtual ~cmCPackDebGenerator(); + static bool CanGenerate() + { +#ifdef __APPLE__ + // on MacOS enable CPackDeb iff dpkg is found + return cmSystemTools::FindProgram("dpkg") != "" ? true : false; +#else + // legacy behavior on other systems + return true; +#endif + } + protected: virtual int InitializeInternal(); /** diff --git a/Source/CPack/cmCPackGenerator.h b/Source/CPack/cmCPackGenerator.h index 55afb4489..78d2e24de 100644 --- a/Source/CPack/cmCPackGenerator.h +++ b/Source/CPack/cmCPackGenerator.h @@ -62,6 +62,16 @@ public: { this->GeneratorVerbose = val ? cmSystemTools::OUTPUT_MERGE : cmSystemTools::OUTPUT_NONE; } + /** + * Returns true if the generator may work on this system. + * Rational: + * Some CPack generator may run on some host and may not on others + * (with the same system) because some tools are missing. If the tool + * is missing then CPack won't activate (in the CPackGeneratorFactory) + * this particular generator. + */ + static bool CanGenerate() { return true; } + /** * Do the actual whole package processing. * Subclass may redefine it but its usually enough diff --git a/Source/CPack/cmCPackGeneratorFactory.cxx b/Source/CPack/cmCPackGeneratorFactory.cxx index a04b40394..dbfdbbc2c 100644 --- a/Source/CPack/cmCPackGeneratorFactory.cxx +++ b/Source/CPack/cmCPackGeneratorFactory.cxx @@ -31,7 +31,7 @@ # include "cmCPackCygwinSourceGenerator.h" #endif -#if !defined(_WIN32) && !defined(__APPLE__) \ +#if !defined(_WIN32) \ && !defined(__QNXNTO__) && !defined(__BEOS__) # include "cmCPackDebGenerator.h" # include "cmCPackRPMGenerator.h" @@ -43,41 +43,83 @@ //---------------------------------------------------------------------- cmCPackGeneratorFactory::cmCPackGeneratorFactory() { - this->RegisterGenerator("TGZ", "Tar GZip compression", - cmCPackTGZGenerator::CreateGenerator); - this->RegisterGenerator("STGZ", "Self extracting Tar GZip compression", - cmCPackSTGZGenerator::CreateGenerator); - this->RegisterGenerator("NSIS", "Null Soft Installer", - cmCPackNSISGenerator::CreateGenerator); + if (cmCPackTGZGenerator::CanGenerate()) + { + this->RegisterGenerator("TGZ", "Tar GZip compression", + cmCPackTGZGenerator::CreateGenerator); + } + if (cmCPackSTGZGenerator::CanGenerate()) + { + this->RegisterGenerator("STGZ", "Self extracting Tar GZip compression", + cmCPackSTGZGenerator::CreateGenerator); + } + if (cmCPackNSISGenerator::CanGenerate()) + { + this->RegisterGenerator("NSIS", "Null Soft Installer", + cmCPackNSISGenerator::CreateGenerator); + } #ifdef __CYGWIN__ - this->RegisterGenerator("CygwinBinary", "Cygwin Binary Installer", - cmCPackCygwinBinaryGenerator::CreateGenerator); - this->RegisterGenerator("CygwinSource", "Cygwin Source Installer", - cmCPackCygwinSourceGenerator::CreateGenerator); + if (cmCPackCygwinBinaryGenerator::CanGenerate()) + { + this->RegisterGenerator("CygwinBinary", "Cygwin Binary Installer", + cmCPackCygwinBinaryGenerator::CreateGenerator); + } + if (cmCPackCygwinSourceGenerator::CanGenerate()) + { + this->RegisterGenerator("CygwinSource", "Cygwin Source Installer", + cmCPackCygwinSourceGenerator::CreateGenerator); + } #endif - this->RegisterGenerator("ZIP", "ZIP file format", - cmCPackZIPGenerator::CreateGenerator); - this->RegisterGenerator("TBZ2", "Tar BZip2 compression", - cmCPackTarBZip2Generator::CreateGenerator); - this->RegisterGenerator("TZ", "Tar Compress compression", - cmCPackTarCompressGenerator::CreateGenerator); + if (cmCPackZIPGenerator::CanGenerate()) + { + this->RegisterGenerator("ZIP", "ZIP file format", + cmCPackZIPGenerator::CreateGenerator); + } + if (cmCPackTarBZip2Generator::CanGenerate()) + { + this->RegisterGenerator("TBZ2", "Tar BZip2 compression", + cmCPackTarBZip2Generator::CreateGenerator); + } + if (cmCPackTarCompressGenerator::CanGenerate()) + { + this->RegisterGenerator("TZ", "Tar Compress compression", + cmCPackTarCompressGenerator::CreateGenerator); + } #ifdef __APPLE__ - this->RegisterGenerator("DragNDrop", "Mac OSX Drag And Drop", - cmCPackDragNDropGenerator::CreateGenerator); - this->RegisterGenerator("Bundle", "Mac OSX bundle", - cmCPackBundleGenerator::CreateGenerator); - this->RegisterGenerator("PackageMaker", "Mac OSX Package Maker installer", - cmCPackPackageMakerGenerator::CreateGenerator); - this->RegisterGenerator("OSXX11", "Mac OSX X11 bundle", - cmCPackOSXX11Generator::CreateGenerator); + if (cmCPackDragNDropGenerator::CanGenerate()) + { + this->RegisterGenerator("DragNDrop", "Mac OSX Drag And Drop", + cmCPackDragNDropGenerator::CreateGenerator); + } + if (cmCPackBundleGenerator::CanGenerate()) + { + this->RegisterGenerator("Bundle", "Mac OSX bundle", + cmCPackBundleGenerator::CreateGenerator); + } + if (cmCPackPackageMakerGenerator::CanGenerate()) + { + this->RegisterGenerator("PackageMaker", "Mac OSX Package Maker installer", + cmCPackPackageMakerGenerator::CreateGenerator); + } + if (cmCPackOSXX11Generator::CanGenerate()) + { + this->RegisterGenerator("OSXX11", "Mac OSX X11 bundle", + cmCPackOSXX11Generator::CreateGenerator); + } #endif -#if !defined(_WIN32) && !defined(__APPLE__) \ +#if !defined(_WIN32) \ && !defined(__QNXNTO__) && !defined(__BEOS__) - this->RegisterGenerator("DEB", "Debian packages", - cmCPackDebGenerator::CreateGenerator); - this->RegisterGenerator("RPM", "RPM packages", - cmCPackRPMGenerator::CreateGenerator); + if (cmCPackDebGenerator::CanGenerate()) + { + this->RegisterGenerator("DEB", "Debian packages", + cmCPackDebGenerator::CreateGenerator); + } + if (cmCPackRPMGenerator::CanGenerate()) + { + this->RegisterGenerator("RPM", "RPM packages", + cmCPackRPMGenerator::CreateGenerator); + } #endif } diff --git a/Source/CPack/cmCPackRPMGenerator.h b/Source/CPack/cmCPackRPMGenerator.h index 4883a0d60..eec8204da 100644 --- a/Source/CPack/cmCPackRPMGenerator.h +++ b/Source/CPack/cmCPackRPMGenerator.h @@ -35,6 +35,17 @@ public: cmCPackRPMGenerator(); virtual ~cmCPackRPMGenerator(); + static bool CanGenerate() + { +#ifdef __APPLE__ + // on MacOS enable CPackRPM iff rpmbuild is found + return cmSystemTools::FindProgram("rpmbuild") != "" ? true : false; +#else + // legacy behavior on other systems + return true; +#endif + } + protected: virtual int InitializeInternal(); virtual int PackageFiles(); diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index c0b7cd617..7ce4c2e78 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -699,6 +699,31 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/ ENDIF(CTEST_RUN_CPackComponents) IF(CTEST_RUN_CPackComponentsForAll) + # Analyze 'cpack --help' output for list of available generators: + execute_process(COMMAND ${CMAKE_CPACK_COMMAND} --help + RESULT_VARIABLE result + OUTPUT_VARIABLE stdout + ERROR_VARIABLE stderr) + + string(REPLACE ";" "\\;" stdout "${stdout}") + string(REPLACE "\n" "E;" stdout "${stdout}") + + set(collecting 0) + set(ACTIVE_CPACK_GENERATORS) + foreach(eline ${stdout}) + string(REGEX REPLACE "^(.*)E$" "\\1" line "${eline}") + if(collecting AND NOT line STREQUAL "") + string(REGEX REPLACE "^ ([^ ]+) += (.*)$" "\\1" gen "${line}") + string(REGEX REPLACE "^ ([^ ]+) += (.*)$" "\\2" doc "${line}") + list(APPEND ACTIVE_CPACK_GENERATORS ${gen}) + endif() + if(line STREQUAL "Generators") + set(collecting 1) + endif() + endforeach() + # ACTIVE_CPACK_GENERATORS variable + # now contains the list of 'active generators' + set(CPackComponentsForAll_EXTRA_OPTIONS) set(CPackRun_CPackCommand "-DCPackCommand=${CMAKE_CPACK_COMMAND}") # set up list of CPack generators @@ -706,18 +731,17 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/ if(APPLE) list(APPEND GENLST "DragNDrop") endif(APPLE) - if (CMAKE_SYSTEM_NAME MATCHES "Linux" AND NOT CMAKE_CURRENT_BINARY_DIR MATCHES ".* .*") - find_program(RPMBUILD NAMES rpmbuild) - endif(CMAKE_SYSTEM_NAME MATCHES "Linux" AND NOT CMAKE_CURRENT_BINARY_DIR MATCHES ".* .*") - if (RPMBUILD) - list(APPEND GENLST "RPM") - endif(RPMBUILD) - if (CMAKE_SYSTEM_NAME MATCHES "Linux") - find_program(DPKG NAMES dpkg) - if (DPKG) - list(APPEND GENLST "DEB") - endif(DPKG) - endif(CMAKE_SYSTEM_NAME MATCHES "Linux") + if (NOT CMAKE_CURRENT_BINARY_DIR MATCHES ".* .*") + list(FIND ACTIVE_CPACK_GENERATORS "RPM" RPM_ACTIVE) + if (NOT ${RPM_ACTIVE} EQUAL -1) + list(APPEND GENLST "RPM") + endif(NOT ${RPM_ACTIVE} EQUAL -1) + endif(NOT CMAKE_CURRENT_BINARY_DIR MATCHES ".* .*") + list(FIND ACTIVE_CPACK_GENERATORS "DEB" DEB_ACTIVE) + if (NOT ${DEB_ACTIVE} EQUAL -1) + list(APPEND GENLST "DEB") + endif(NOT ${DEB_ACTIVE} EQUAL -1) + # set up list of component packaging ways list(APPEND CWAYLST "default") list(APPEND CWAYLST "OnePackPerGroup") From 4af648041dd1f5589bd117145b091fc088aee56e Mon Sep 17 00:00:00 2001 From: Kitware Robot Date: Mon, 21 May 2012 00:01:04 -0400 Subject: [PATCH 056/101] CMake Nightly Date Stamp --- Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 6f45c4fc3..3f5edf48c 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -2,5 +2,5 @@ SET(CMake_VERSION_MAJOR 2) SET(CMake_VERSION_MINOR 8) SET(CMake_VERSION_PATCH 8) -SET(CMake_VERSION_TWEAK 20120520) +SET(CMake_VERSION_TWEAK 20120521) #SET(CMake_VERSION_RC 1) From 801ea70c08a15071a22149c8f8f829a34e628c6a Mon Sep 17 00:00:00 2001 From: Eric NOULARD Date: Mon, 21 May 2012 14:39:18 +0200 Subject: [PATCH 057/101] Calm down Borland compiler warning about "always true" --- Source/CPack/cmCPackGeneratorFactory.cxx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Source/CPack/cmCPackGeneratorFactory.cxx b/Source/CPack/cmCPackGeneratorFactory.cxx index dbfdbbc2c..37ff46041 100644 --- a/Source/CPack/cmCPackGeneratorFactory.cxx +++ b/Source/CPack/cmCPackGeneratorFactory.cxx @@ -40,6 +40,10 @@ #include "cmCPackLog.h" +#if defined(__BORLANDC__) +# pragma warn -8008 /* condition is always true */ +#endif + //---------------------------------------------------------------------- cmCPackGeneratorFactory::cmCPackGeneratorFactory() { From c9097c74b6fdf6b457a0d1fb1c034c3e9d5fd8fe Mon Sep 17 00:00:00 2001 From: Matt McCormick Date: Mon, 21 May 2012 14:49:00 -0400 Subject: [PATCH 058/101] ExternalProject: Fix 'make' builds with Ninja (#13159) Fix the build command when Ninja is the CMake Generator, but the external project is created for a project that does not use CMake but does use "make". --- Modules/ExternalProject.cmake | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Modules/ExternalProject.cmake b/Modules/ExternalProject.cmake index 0353e4562..a0a9aead5 100644 --- a/Modules/ExternalProject.cmake +++ b/Modules/ExternalProject.cmake @@ -712,8 +712,12 @@ function(_ep_get_build_command name step cmd_var) endif() else() # if(cfg_cmd_id STREQUAL "configure") # Non-CMake project. Guess "make" and "make install" and "make test". - # But use "$(MAKE)" to get recursive parallel make. - set(cmd "$(MAKE)") + if("${CMAKE_GENERATOR}" MATCHES "Makefiles") + # Try to get the parallel arguments + set(cmd "$(MAKE)") + else() + set(cmd "make") + endif() if(step STREQUAL "INSTALL") set(args install) endif() From f2656e4ccb7b05cb1bef17ccf61dc9af7ed3f5fc Mon Sep 17 00:00:00 2001 From: Kitware Robot Date: Tue, 22 May 2012 00:01:04 -0400 Subject: [PATCH 059/101] CMake Nightly Date Stamp --- Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 3f5edf48c..c2c577ef5 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -2,5 +2,5 @@ SET(CMake_VERSION_MAJOR 2) SET(CMake_VERSION_MINOR 8) SET(CMake_VERSION_PATCH 8) -SET(CMake_VERSION_TWEAK 20120521) +SET(CMake_VERSION_TWEAK 20120522) #SET(CMake_VERSION_RC 1) From ad2107903a28e8e41b3170ee6089f7c080c49614 Mon Sep 17 00:00:00 2001 From: Brad King Date: Tue, 22 May 2012 14:07:24 -0400 Subject: [PATCH 060/101] Fortran: Follow <>-style includes (#13239) Fortran sources that pass through the C preprocessor may use #include "header" syntax or #include
syntax. CMake already follows the former. Teach it to follow the latter. --- Source/cmDependsFortranLexer.cxx | 528 +++++++++-------- Source/cmDependsFortranLexer.h | 25 +- Source/cmDependsFortranLexer.in.l | 5 + Source/cmDependsFortranParser.cxx | 822 ++++++++++++++------------ Source/cmDependsFortranParser.y | 8 + Source/cmDependsFortranParserTokens.h | 20 +- 6 files changed, 761 insertions(+), 647 deletions(-) diff --git a/Source/cmDependsFortranLexer.cxx b/Source/cmDependsFortranLexer.cxx index 438af2df5..b0d9a742d 100644 --- a/Source/cmDependsFortranLexer.cxx +++ b/Source/cmDependsFortranLexer.cxx @@ -20,7 +20,7 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 34 +#define YY_FLEX_SUBMINOR_VERSION 35 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -65,7 +65,6 @@ typedef int flex_int32_t; typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; -#endif /* ! C99 */ /* Limits of integral types. */ #ifndef INT8_MIN @@ -96,6 +95,8 @@ typedef unsigned int flex_uint32_t; #define UINT32_MAX (4294967295U) #endif +#endif /* ! C99 */ + #endif /* ! FLEXINT_H */ #ifdef __cplusplus @@ -169,7 +170,15 @@ typedef void* yyscan_t; /* Size of default input buffer. */ #ifndef YY_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k. + * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. + * Ditto for the __ia64__ case accordingly. + */ +#define YY_BUF_SIZE 32768 +#else #define YY_BUF_SIZE 16384 +#endif /* __ia64__ */ #endif /* The state buf must be large enough to hold one state per character in the main buffer. @@ -203,13 +212,6 @@ typedef struct yy_buffer_state *YY_BUFFER_STATE; #define unput(c) yyunput( c, yyg->yytext_ptr , yyscanner ) -/* The following is because we cannot portably get our hands on size_t - * (without autoconf's help, which isn't available because we want - * flex-generated scanners to compile on their own). - * Given that the standard has decreed that size_t exists since 1989, - * I guess we can afford to depend on it. Manoj. - */ - #ifndef YY_TYPEDEF_YY_SIZE_T #define YY_TYPEDEF_YY_SIZE_T typedef size_t yy_size_t; @@ -367,8 +369,8 @@ static void yy_fatal_error (yyconst char msg[] ,yyscan_t yyscanner ); *yy_cp = '\0'; \ yyg->yy_c_buf_p = yy_cp; -#define YY_NUM_RULES 43 -#define YY_END_OF_BUFFER 44 +#define YY_NUM_RULES 44 +#define YY_END_OF_BUFFER 45 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -376,25 +378,26 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[161] = +static yyconst flex_int16_t yy_accept[165] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 44, 38, 40, 39, 42, 1, 38, 31, 2, 33, - 38, 39, 36, 38, 37, 38, 37, 40, 38, 39, - 38, 37, 9, 8, 9, 4, 3, 38, 0, 10, - 0, 0, 0, 0, 0, 31, 31, 32, 34, 36, - 38, 37, 0, 41, 37, 0, 0, 0, 0, 0, - 0, 0, 0, 38, 0, 11, 37, 0, 0, 5, - 0, 0, 0, 27, 0, 0, 31, 31, 31, 31, - 0, 0, 0, 0, 0, 21, 0, 0, 0, 0, + 45, 39, 41, 40, 43, 1, 39, 32, 2, 34, + 39, 40, 37, 39, 38, 39, 38, 41, 39, 40, + 39, 38, 9, 8, 9, 4, 3, 39, 0, 10, + 0, 0, 0, 0, 0, 32, 32, 33, 35, 37, + 39, 38, 0, 42, 38, 0, 0, 0, 0, 0, + 0, 0, 0, 39, 0, 11, 38, 0, 0, 5, + 0, 0, 0, 28, 0, 0, 32, 32, 32, 32, + 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 28, 29, 0, 0, 0, 0, 0, 0, - 0, 22, 23, 0, 0, 0, 0, 0, 0, 0, - 0, 30, 25, 0, 0, 18, 0, 0, 24, 19, - 0, 0, 17, 0, 0, 16, 26, 0, 0, 15, - 20, 0, 7, 35, 7, 13, 0, 12, 14, 0 + 0, 0, 29, 30, 0, 0, 0, 0, 0, 0, + 0, 23, 24, 0, 0, 0, 0, 0, 0, 0, + 0, 31, 26, 0, 0, 19, 0, 0, 25, 20, + 0, 0, 18, 0, 0, 17, 27, 0, 0, 16, + 21, 0, 7, 36, 7, 14, 0, 13, 15, 0, + 0, 0, 12, 0 } ; static yyconst flex_int32_t yy_ec[256] = @@ -404,15 +407,15 @@ static yyconst flex_int32_t yy_ec[256] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 7, 8, 9, 1, 10, 11, 1, 1, 12, 1, 13, 1, 1, 1, 14, 14, 14, - 14, 14, 14, 14, 14, 14, 14, 15, 16, 1, - 17, 18, 19, 1, 20, 20, 21, 22, 23, 24, - 20, 20, 25, 20, 20, 26, 20, 27, 20, 20, - 20, 20, 28, 20, 29, 20, 20, 20, 20, 20, - 1, 30, 1, 1, 31, 1, 20, 20, 32, 33, + 14, 14, 14, 14, 14, 14, 14, 15, 16, 17, + 18, 19, 20, 1, 21, 21, 22, 23, 24, 25, + 21, 21, 26, 21, 21, 27, 21, 28, 21, 21, + 21, 21, 29, 21, 30, 21, 21, 21, 21, 21, + 1, 31, 1, 1, 32, 1, 21, 21, 33, 34, - 34, 35, 20, 20, 36, 20, 20, 37, 20, 38, - 20, 20, 20, 20, 39, 20, 40, 20, 20, 20, - 20, 20, 1, 1, 1, 1, 1, 1, 1, 1, + 35, 36, 21, 21, 37, 21, 21, 38, 21, 39, + 21, 21, 21, 21, 40, 21, 41, 21, 21, 21, + 21, 21, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -429,178 +432,187 @@ static yyconst flex_int32_t yy_ec[256] = 1, 1, 1, 1, 1 } ; -static yyconst flex_int32_t yy_meta[41] = +static yyconst flex_int32_t yy_meta[42] = { 0, 1, 2, 2, 3, 4, 3, 3, 1, 1, 3, - 3, 1, 3, 5, 1, 3, 3, 1, 1, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 1, - 5, 6, 6, 6, 6, 6, 6, 6, 6, 6 + 3, 1, 3, 5, 1, 3, 1, 3, 6, 1, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 1, 5, 7, 7, 7, 7, 7, 7, 7, 7, + 7 } ; -static yyconst flex_int16_t yy_base[169] = +static yyconst flex_int16_t yy_base[174] = { 0, - 0, 39, 0, 40, 184, 47, 43, 53, 55, 63, - 186, 0, 476, 476, 164, 476, 79, 72, 476, 476, - 143, 476, 130, 126, 0, 83, 119, 85, 149, 139, - 189, 220, 476, 131, 89, 476, 476, 0, 132, 476, - 259, 37, 69, 76, 34, 119, 137, 476, 0, 476, - 121, 0, 150, 476, 0, 154, 298, 0, 75, 138, - 142, 72, 127, 338, 94, 476, 0, 84, 158, 186, - 81, 145, 108, 172, 147, 173, 260, 266, 284, 299, - 272, 173, 178, 286, 245, 258, 285, 285, 78, 71, - 207, 476, 288, 291, 296, 304, 310, 315, 317, 326, + 0, 40, 0, 41, 188, 48, 44, 54, 56, 65, + 186, 0, 505, 505, 171, 505, 81, 74, 505, 505, + 158, 505, 151, 137, 0, 85, 122, 87, 153, 145, + 194, 226, 505, 143, 91, 505, 505, 0, 142, 505, + 266, 34, 70, 74, 34, 122, 141, 505, 0, 505, + 112, 0, 98, 505, 0, 154, 306, 0, 43, 133, + 139, 46, 130, 347, 130, 505, 0, 121, 163, 179, + 104, 156, 129, 176, 147, 178, 214, 267, 273, 292, + 279, 179, 249, 280, 257, 265, 288, 289, 116, 107, + 317, 505, 287, 289, 291, 302, 307, 310, 307, 311, - 330, 330, 335, 338, 338, 341, 343, 341, 348, 62, - 52, 346, 476, 476, 353, 355, 357, 352, 359, 359, - 359, 476, 476, 363, 365, 370, 366, 375, 46, 38, - 378, 476, 476, 378, 381, 476, 376, 384, 476, 476, - 384, 387, 476, 115, 0, 476, 476, 388, 393, 476, - 476, 394, 476, 476, 476, 476, 398, 476, 476, 476, - 432, 438, 443, 445, 451, 457, 463, 469 + 316, 326, 329, 333, 332, 336, 347, 345, 349, 101, + 86, 346, 505, 505, 350, 351, 353, 350, 357, 362, + 362, 505, 505, 367, 369, 371, 366, 372, 56, 47, + 374, 505, 505, 374, 379, 505, 374, 387, 505, 505, + 387, 391, 505, 117, 0, 505, 505, 392, 394, 505, + 505, 394, 505, 505, 505, 505, 395, 419, 505, 429, + 0, 25, 505, 505, 446, 453, 459, 462, 469, 476, + 483, 490, 497 } ; -static yyconst flex_int16_t yy_def[169] = +static yyconst flex_int16_t yy_def[174] = { 0, - 160, 1, 1, 1, 1, 1, 161, 161, 161, 161, - 160, 162, 160, 160, 163, 160, 162, 160, 160, 160, - 162, 160, 160, 162, 164, 162, 164, 160, 162, 160, - 165, 160, 160, 160, 160, 160, 160, 162, 163, 160, - 160, 160, 160, 160, 160, 160, 166, 160, 162, 160, - 162, 164, 160, 160, 27, 160, 160, 57, 160, 160, - 160, 160, 160, 165, 165, 160, 32, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 166, 166, 166, 166, - 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 164, 1, 1, 1, 1, 1, 165, 165, 165, 165, + 164, 166, 164, 164, 167, 164, 166, 164, 164, 164, + 166, 164, 164, 166, 168, 166, 168, 164, 166, 164, + 169, 164, 164, 164, 164, 164, 164, 166, 167, 164, + 164, 164, 164, 164, 164, 164, 170, 164, 166, 164, + 166, 168, 164, 164, 27, 164, 164, 57, 164, 164, + 164, 164, 164, 169, 169, 164, 32, 164, 164, 164, + 164, 164, 164, 164, 164, 164, 170, 170, 170, 170, + 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, + 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, - 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 167, 168, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, 160, 0, - 160, 160, 160, 160, 160, 160, 160, 160 + 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, + 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, + 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, + 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, + 164, 164, 164, 171, 172, 164, 164, 164, 164, 164, + 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, + 173, 173, 164, 0, 164, 164, 164, 164, 164, 164, + 164, 164, 164 } ; -static yyconst flex_int16_t yy_nxt[517] = +static yyconst flex_int16_t yy_nxt[547] = { 0, 12, 13, 14, 13, 13, 15, 16, 12, 17, 18, - 19, 12, 20, 12, 21, 22, 23, 12, 24, 25, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, - 27, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 28, 28, 145, 28, 28, 34, 29, 29, 28, 30, - 144, 28, 35, 36, 29, 34, 130, 34, 31, 71, - 76, 37, 35, 36, 35, 34, 129, 32, 32, 37, - 71, 76, 35, 46, 46, 111, 46, 47, 32, 32, - 41, 48, 110, 41, 53, 54, 56, 53, 90, 56, - 69, 70, 57, 69, 72, 73, 66, 83, 88, 74, + 19, 12, 20, 12, 21, 22, 12, 23, 12, 24, + 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, + 26, 27, 25, 25, 25, 25, 25, 25, 25, 25, + 25, 28, 28, 163, 28, 28, 34, 29, 29, 28, + 30, 145, 28, 35, 36, 29, 34, 71, 34, 31, + 144, 76, 37, 35, 36, 35, 83, 34, 71, 32, + 32, 37, 76, 88, 35, 46, 46, 83, 46, 47, + 32, 32, 41, 48, 88, 41, 53, 54, 56, 53, + 130, 56, 69, 70, 57, 69, 72, 73, 74, 53, - 42, 43, 75, 44, 93, 72, 73, 45, 83, 88, - 74, 42, 43, 75, 44, 93, 154, 154, 45, 38, - 46, 46, 81, 46, 47, 81, 38, 38, 48, 96, - 38, 89, 55, 38, 40, 68, 38, 38, 78, 46, - 96, 78, 79, 63, 51, 82, 80, 50, 38, 55, - 58, 53, 54, 58, 53, 56, 82, 49, 56, 69, - 70, 57, 69, 84, 85, 86, 40, 99, 87, 94, - 59, 60, 95, 61, 84, 85, 86, 62, 99, 87, - 94, 59, 60, 95, 61, 160, 30, 91, 62, 64, - 91, 66, 160, 97, 100, 92, 64, 64, 98, 101, + 54, 75, 53, 42, 43, 129, 44, 72, 73, 74, + 45, 111, 75, 81, 42, 43, 81, 44, 154, 154, + 110, 45, 38, 46, 46, 90, 46, 47, 93, 38, + 38, 48, 66, 38, 89, 55, 38, 82, 38, 93, + 38, 38, 78, 46, 40, 78, 79, 68, 82, 63, + 80, 96, 38, 55, 58, 56, 51, 58, 56, 84, + 85, 57, 96, 86, 69, 70, 87, 69, 99, 50, + 84, 85, 49, 40, 86, 59, 60, 87, 61, 99, + 91, 94, 62, 91, 95, 164, 59, 60, 92, 61, + 30, 164, 94, 62, 64, 95, 66, 164, 97, 164, - 64, 102, 64, 64, 97, 100, 64, 64, 91, 98, - 101, 91, 102, 160, 160, 160, 92, 160, 64, 64, - 65, 65, 66, 65, 65, 65, 65, 65, 65, 65, - 65, 65, 65, 67, 65, 65, 65, 65, 65, 67, - 67, 67, 67, 67, 67, 67, 67, 67, 67, 65, - 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, - 41, 78, 46, 41, 78, 79, 105, 78, 46, 80, - 78, 79, 160, 81, 160, 80, 81, 105, 160, 106, - 42, 43, 160, 44, 107, 78, 46, 45, 78, 79, - 106, 42, 43, 80, 44, 107, 82, 160, 45, 58, + 100, 64, 64, 98, 164, 64, 101, 64, 64, 97, + 64, 100, 64, 64, 98, 78, 46, 101, 78, 79, + 164, 164, 164, 80, 64, 64, 65, 65, 66, 65, + 65, 65, 65, 65, 65, 65, 65, 65, 65, 67, + 65, 65, 65, 65, 65, 65, 67, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 65, 67, 67, 67, + 67, 67, 67, 67, 67, 67, 67, 41, 78, 46, + 41, 78, 79, 102, 78, 46, 80, 78, 79, 105, + 81, 164, 80, 81, 102, 164, 164, 106, 42, 43, + 105, 44, 107, 78, 46, 45, 78, 79, 106, 42, - 78, 46, 58, 78, 79, 108, 109, 82, 80, 160, - 103, 160, 112, 104, 113, 160, 108, 109, 114, 59, - 60, 103, 61, 112, 104, 113, 62, 160, 115, 114, - 59, 60, 116, 61, 160, 160, 117, 62, 64, 115, - 66, 160, 118, 116, 160, 64, 64, 117, 119, 64, - 120, 64, 64, 118, 121, 64, 64, 160, 122, 119, - 123, 120, 124, 125, 126, 121, 127, 64, 64, 122, - 128, 123, 131, 124, 125, 126, 132, 127, 133, 134, - 135, 128, 136, 131, 137, 138, 139, 132, 140, 133, - 134, 135, 141, 136, 142, 137, 138, 139, 143, 140, + 43, 80, 44, 107, 82, 103, 45, 58, 104, 108, + 58, 109, 112, 113, 114, 82, 103, 164, 91, 104, + 108, 91, 109, 112, 113, 114, 92, 115, 59, 60, + 116, 61, 117, 118, 119, 62, 164, 120, 115, 59, + 60, 116, 61, 117, 118, 119, 62, 64, 120, 66, + 164, 121, 164, 122, 64, 64, 123, 124, 64, 125, + 64, 64, 121, 64, 122, 64, 64, 123, 124, 126, + 125, 127, 128, 131, 132, 133, 134, 64, 64, 135, + 126, 136, 127, 128, 131, 132, 133, 134, 137, 138, + 135, 139, 136, 140, 141, 142, 143, 146, 147, 137, - 146, 147, 148, 141, 149, 142, 150, 151, 152, 143, - 156, 146, 147, 148, 157, 149, 158, 150, 151, 152, - 159, 156, 160, 160, 160, 157, 160, 158, 160, 160, - 160, 159, 33, 33, 33, 33, 33, 33, 38, 160, - 160, 160, 38, 39, 39, 39, 39, 39, 39, 52, - 52, 65, 65, 65, 65, 65, 65, 77, 77, 77, - 77, 77, 77, 153, 153, 153, 160, 153, 153, 155, - 160, 155, 160, 155, 155, 11, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 138, 148, 139, 149, 140, 141, 142, 143, 146, 147, + 150, 151, 148, 152, 149, 156, 157, 158, 159, 164, + 160, 150, 151, 160, 152, 164, 156, 157, 158, 159, + 160, 164, 164, 160, 164, 161, 164, 164, 164, 164, + 164, 164, 164, 164, 164, 161, 33, 33, 33, 33, + 33, 33, 33, 38, 164, 164, 164, 38, 38, 39, + 39, 39, 39, 39, 39, 39, 52, 164, 52, 65, + 65, 65, 65, 65, 65, 65, 77, 77, 77, 77, + 77, 77, 77, 153, 153, 153, 164, 153, 153, 153, + 155, 164, 155, 164, 155, 155, 155, 162, 162, 162, - 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160 + 162, 162, 164, 162, 11, 164, 164, 164, 164, 164, + 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, + 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, + 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, + 164, 164, 164, 164, 164, 164 } ; -static yyconst flex_int16_t yy_chk[517] = +static yyconst flex_int16_t yy_chk[547] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 2, 4, 130, 2, 4, 7, 2, 4, 6, 6, - 129, 6, 7, 7, 6, 8, 111, 9, 6, 42, - 45, 9, 8, 8, 9, 10, 110, 6, 6, 10, - 42, 45, 10, 18, 18, 90, 18, 18, 6, 6, - 17, 18, 89, 17, 26, 26, 28, 26, 68, 28, - 35, 35, 28, 35, 43, 43, 65, 59, 62, 44, + 1, 2, 4, 162, 2, 4, 7, 2, 4, 6, + 6, 130, 6, 7, 7, 6, 8, 42, 9, 6, + 129, 45, 9, 8, 8, 9, 59, 10, 42, 6, + 6, 10, 45, 62, 10, 18, 18, 59, 18, 18, + 6, 6, 17, 18, 62, 17, 26, 26, 28, 26, + 111, 28, 35, 35, 28, 35, 43, 43, 44, 53, - 17, 17, 44, 17, 71, 43, 43, 17, 59, 62, - 44, 17, 17, 44, 17, 71, 144, 144, 17, 27, - 46, 46, 51, 46, 46, 51, 27, 27, 46, 73, - 27, 63, 27, 27, 39, 34, 27, 27, 47, 47, - 73, 47, 47, 30, 24, 51, 47, 23, 27, 27, - 29, 53, 53, 29, 53, 56, 51, 21, 56, 69, - 69, 56, 69, 60, 60, 61, 15, 75, 61, 72, - 29, 29, 72, 29, 60, 60, 61, 29, 75, 61, - 72, 29, 29, 72, 29, 11, 5, 70, 29, 31, - 70, 31, 0, 74, 76, 70, 31, 31, 74, 82, + 53, 44, 53, 17, 17, 110, 17, 43, 43, 44, + 17, 90, 44, 51, 17, 17, 51, 17, 144, 144, + 89, 17, 27, 46, 46, 68, 46, 46, 71, 27, + 27, 46, 65, 27, 63, 27, 27, 51, 27, 71, + 27, 27, 47, 47, 39, 47, 47, 34, 51, 30, + 47, 73, 27, 27, 29, 56, 24, 29, 56, 60, + 60, 56, 73, 61, 69, 69, 61, 69, 75, 23, + 60, 60, 21, 15, 61, 29, 29, 61, 29, 75, + 70, 72, 29, 70, 72, 11, 29, 29, 70, 29, + 5, 0, 72, 29, 31, 72, 31, 0, 74, 0, - 31, 83, 31, 31, 74, 76, 31, 31, 91, 74, - 82, 91, 83, 0, 0, 0, 91, 0, 31, 31, + 76, 31, 31, 74, 0, 31, 82, 31, 31, 74, + 31, 76, 31, 31, 74, 77, 77, 82, 77, 77, + 0, 0, 0, 77, 31, 31, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, - 41, 77, 77, 41, 77, 77, 85, 78, 78, 77, - 78, 78, 0, 81, 0, 78, 81, 85, 0, 86, - 41, 41, 0, 41, 86, 79, 79, 41, 79, 79, - 86, 41, 41, 79, 41, 86, 81, 0, 41, 57, + 32, 32, 32, 32, 32, 32, 32, 41, 78, 78, + 41, 78, 78, 83, 79, 79, 78, 79, 79, 85, + 81, 0, 79, 81, 83, 0, 0, 86, 41, 41, + 85, 41, 86, 80, 80, 41, 80, 80, 86, 41, - 80, 80, 57, 80, 80, 87, 88, 81, 80, 0, - 84, 0, 93, 84, 94, 0, 87, 88, 95, 57, - 57, 84, 57, 93, 84, 94, 57, 0, 96, 95, - 57, 57, 97, 57, 0, 0, 98, 57, 64, 96, - 64, 0, 99, 97, 0, 64, 64, 98, 100, 64, - 101, 64, 64, 99, 102, 64, 64, 0, 103, 100, - 104, 101, 105, 106, 107, 102, 108, 64, 64, 103, - 109, 104, 112, 105, 106, 107, 115, 108, 116, 117, - 118, 109, 119, 112, 120, 121, 124, 115, 125, 116, - 117, 118, 126, 119, 127, 120, 121, 124, 128, 125, + 41, 80, 41, 86, 81, 84, 41, 57, 84, 87, + 57, 88, 93, 94, 95, 81, 84, 0, 91, 84, + 87, 91, 88, 93, 94, 95, 91, 96, 57, 57, + 97, 57, 98, 99, 100, 57, 0, 101, 96, 57, + 57, 97, 57, 98, 99, 100, 57, 64, 101, 64, + 0, 102, 0, 103, 64, 64, 104, 105, 64, 106, + 64, 64, 102, 64, 103, 64, 64, 104, 105, 107, + 106, 108, 109, 112, 115, 116, 117, 64, 64, 118, + 107, 119, 108, 109, 112, 115, 116, 117, 120, 121, + 118, 124, 119, 125, 126, 127, 128, 131, 134, 120, - 131, 134, 135, 126, 137, 127, 138, 141, 142, 128, - 148, 131, 134, 135, 149, 137, 152, 138, 141, 142, - 157, 148, 0, 0, 0, 149, 0, 152, 0, 0, - 0, 157, 161, 161, 161, 161, 161, 161, 162, 0, - 0, 0, 162, 163, 163, 163, 163, 163, 163, 164, - 164, 165, 165, 165, 165, 165, 165, 166, 166, 166, - 166, 166, 166, 167, 167, 167, 0, 167, 167, 168, - 0, 168, 0, 168, 168, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 121, 135, 124, 137, 125, 126, 127, 128, 131, 134, + 138, 141, 135, 142, 137, 148, 149, 152, 157, 0, + 158, 138, 141, 158, 142, 0, 148, 149, 152, 157, + 160, 0, 0, 160, 0, 158, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 160, 165, 165, 165, 165, + 165, 165, 165, 166, 0, 0, 0, 166, 166, 167, + 167, 167, 167, 167, 167, 167, 168, 0, 168, 169, + 169, 169, 169, 169, 169, 169, 170, 170, 170, 170, + 170, 170, 170, 171, 171, 171, 0, 171, 171, 171, + 172, 0, 172, 0, 172, 172, 172, 173, 173, 173, - 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160 + 173, 173, 0, 173, 164, 164, 164, 164, 164, 164, + 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, + 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, + 164, 164, 164, 164, 164, 164, 164, 164, 164, 164, + 164, 164, 164, 164, 164, 164 } ; /* The intent behind this definition is that it'll catch @@ -673,7 +685,7 @@ Modify cmDependsFortranLexer.h: /*--------------------------------------------------------------------------*/ -#line 670 "cmDependsFortranLexer.cxx" +#line 678 "cmDependsFortranLexer.cxx" #define INITIAL 0 #define free_fmt 1 @@ -796,7 +808,12 @@ static int input (yyscan_t yyscanner ); /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k */ +#define YY_READ_BUF_SIZE 16384 +#else #define YY_READ_BUF_SIZE 8192 +#endif /* __ia64__ */ #endif /* Copy whatever the last rule matched to the standard output. */ @@ -804,7 +821,7 @@ static int input (yyscan_t yyscanner ); /* This used to be an fputs(), but since the string might contain NUL's, * we now use fwrite(). */ -#define ECHO fwrite( yytext, yyleng, 1, yyout ) +#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0) #endif /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL, @@ -815,7 +832,7 @@ static int input (yyscan_t yyscanner ); if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \ { \ int c = '*'; \ - int n; \ + size_t n; \ for ( n = 0; n < max_size && \ (c = getc( yyin )) != EOF && c != '\n'; ++n ) \ buf[n] = (char) c; \ @@ -901,10 +918,10 @@ YY_DECL register int yy_act; struct yyguts_t * yyg = (struct yyguts_t*)yyscanner; -#line 75 "cmDependsFortranLexer.in.l" +#line 71 "cmDependsFortranLexer.in.l" -#line 901 "cmDependsFortranLexer.cxx" +#line 914 "cmDependsFortranLexer.cxx" if ( !yyg->yy_init ) { @@ -958,13 +975,13 @@ yy_match: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 161 ) + if ( yy_current_state >= 165 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; ++yy_cp; } - while ( yy_base[yy_current_state] != 476 ); + while ( yy_base[yy_current_state] != 505 ); yy_find_action: yy_act = yy_accept[yy_current_state]; @@ -990,7 +1007,7 @@ do_action: /* This label is used only to access EOF actions. */ case 1: YY_RULE_SETUP -#line 77 "cmDependsFortranLexer.in.l" +#line 73 "cmDependsFortranLexer.in.l" { cmDependsFortranParser_StringStart(yyextra); cmDependsFortranParser_SetOldStartcond(yyextra, YY_START); @@ -999,7 +1016,7 @@ YY_RULE_SETUP YY_BREAK case 2: YY_RULE_SETUP -#line 83 "cmDependsFortranLexer.in.l" +#line 79 "cmDependsFortranLexer.in.l" { cmDependsFortranParser_StringStart(yyextra); cmDependsFortranParser_SetOldStartcond(yyextra, YY_START); @@ -1007,10 +1024,10 @@ YY_RULE_SETUP } YY_BREAK case 3: -#line 90 "cmDependsFortranLexer.in.l" +#line 86 "cmDependsFortranLexer.in.l" case 4: YY_RULE_SETUP -#line 90 "cmDependsFortranLexer.in.l" +#line 86 "cmDependsFortranLexer.in.l" { BEGIN(cmDependsFortranParser_GetOldStartcond(yyextra) ); yylvalp->string = strdup(cmDependsFortranParser_StringEnd(yyextra)); @@ -1018,17 +1035,17 @@ YY_RULE_SETUP } case 5: /* rule 5 can match eol */ -#line 97 "cmDependsFortranLexer.in.l" +#line 93 "cmDependsFortranLexer.in.l" case 6: /* rule 6 can match eol */ YY_RULE_SETUP -#line 97 "cmDependsFortranLexer.in.l" +#line 93 "cmDependsFortranLexer.in.l" /* Ignore (continued strings, free fmt) */ YY_BREAK case 7: /* rule 7 can match eol */ YY_RULE_SETUP -#line 99 "cmDependsFortranLexer.in.l" +#line 95 "cmDependsFortranLexer.in.l" { if (cmDependsFortranParser_GetOldStartcond(yyextra) == fixed_fmt) ; /* Ignore (cont. strings, fixed fmt) */ @@ -1041,7 +1058,7 @@ YY_RULE_SETUP case 8: /* rule 8 can match eol */ YY_RULE_SETUP -#line 109 "cmDependsFortranLexer.in.l" +#line 105 "cmDependsFortranLexer.in.l" { unput ('\n'); BEGIN(INITIAL); @@ -1049,7 +1066,7 @@ YY_RULE_SETUP } case 9: YY_RULE_SETUP -#line 115 "cmDependsFortranLexer.in.l" +#line 111 "cmDependsFortranLexer.in.l" { cmDependsFortranParser_StringAppend(yyextra, yytext[0]); } @@ -1057,96 +1074,99 @@ YY_RULE_SETUP case 10: /* rule 10 can match eol */ YY_RULE_SETUP -#line 119 "cmDependsFortranLexer.in.l" +#line 115 "cmDependsFortranLexer.in.l" { return EOSTMT; } /* Treat comments like */ case 11: /* rule 11 can match eol */ YY_RULE_SETUP -#line 120 "cmDependsFortranLexer.in.l" +#line 116 "cmDependsFortranLexer.in.l" { return EOSTMT; } /* empty lines */ case 12: +/* rule 12 can match eol */ YY_RULE_SETUP -#line 122 "cmDependsFortranLexer.in.l" -{ return CPP_INCLUDE; } +#line 118 "cmDependsFortranLexer.in.l" +{ + yytext[yyleng-1] = 0; + yylvalp->string = strdup(strchr(yytext, '<')+1); + return CPP_INCLUDE_ANGLE; +} case 13: YY_RULE_SETUP #line 123 "cmDependsFortranLexer.in.l" -{ return F90PPR_INCLUDE; } +{ return CPP_INCLUDE; } case 14: YY_RULE_SETUP #line 124 "cmDependsFortranLexer.in.l" -{ return COCO_INCLUDE; } +{ return F90PPR_INCLUDE; } case 15: YY_RULE_SETUP -#line 126 "cmDependsFortranLexer.in.l" -{ return CPP_DEFINE; } +#line 125 "cmDependsFortranLexer.in.l" +{ return COCO_INCLUDE; } case 16: YY_RULE_SETUP #line 127 "cmDependsFortranLexer.in.l" -{ return F90PPR_DEFINE; } +{ return CPP_DEFINE; } case 17: YY_RULE_SETUP -#line 129 "cmDependsFortranLexer.in.l" -{ return CPP_UNDEF; } +#line 128 "cmDependsFortranLexer.in.l" +{ return F90PPR_DEFINE; } case 18: YY_RULE_SETUP #line 130 "cmDependsFortranLexer.in.l" -{ return F90PPR_UNDEF; } +{ return CPP_UNDEF; } case 19: YY_RULE_SETUP -#line 132 "cmDependsFortranLexer.in.l" -{ return CPP_IFDEF; } +#line 131 "cmDependsFortranLexer.in.l" +{ return F90PPR_UNDEF; } case 20: YY_RULE_SETUP #line 133 "cmDependsFortranLexer.in.l" -{ return CPP_IFNDEF; } +{ return CPP_IFDEF; } case 21: YY_RULE_SETUP #line 134 "cmDependsFortranLexer.in.l" -{ return CPP_IF; } +{ return CPP_IFNDEF; } case 22: YY_RULE_SETUP #line 135 "cmDependsFortranLexer.in.l" -{ return CPP_ELIF; } +{ return CPP_IF; } case 23: YY_RULE_SETUP #line 136 "cmDependsFortranLexer.in.l" -{ return CPP_ELSE; } +{ return CPP_ELIF; } case 24: YY_RULE_SETUP #line 137 "cmDependsFortranLexer.in.l" -{ return CPP_ENDIF; } +{ return CPP_ELSE; } case 25: YY_RULE_SETUP -#line 139 "cmDependsFortranLexer.in.l" -{ return F90PPR_IFDEF; } +#line 138 "cmDependsFortranLexer.in.l" +{ return CPP_ENDIF; } case 26: YY_RULE_SETUP #line 140 "cmDependsFortranLexer.in.l" -{ return F90PPR_IFNDEF; } +{ return F90PPR_IFDEF; } case 27: YY_RULE_SETUP #line 141 "cmDependsFortranLexer.in.l" -{ return F90PPR_IF; } +{ return F90PPR_IFNDEF; } case 28: YY_RULE_SETUP #line 142 "cmDependsFortranLexer.in.l" -{ return F90PPR_ELIF; } +{ return F90PPR_IF; } case 29: YY_RULE_SETUP #line 143 "cmDependsFortranLexer.in.l" -{ return F90PPR_ELSE; } +{ return F90PPR_ELIF; } case 30: YY_RULE_SETUP #line 144 "cmDependsFortranLexer.in.l" +{ return F90PPR_ELSE; } +case 31: +YY_RULE_SETUP +#line 145 "cmDependsFortranLexer.in.l" { return F90PPR_ENDIF; } /* Line continuations, possible involving comments. */ -case 31: -/* rule 31 can match eol */ -YY_RULE_SETUP -#line 147 "cmDependsFortranLexer.in.l" - - YY_BREAK case 32: /* rule 32 can match eol */ YY_RULE_SETUP @@ -1154,59 +1174,65 @@ YY_RULE_SETUP YY_BREAK case 33: +/* rule 33 can match eol */ YY_RULE_SETUP -#line 150 "cmDependsFortranLexer.in.l" -{ return COMMA; } +#line 149 "cmDependsFortranLexer.in.l" + + YY_BREAK case 34: YY_RULE_SETUP -#line 152 "cmDependsFortranLexer.in.l" -{ return DCOLON; } +#line 151 "cmDependsFortranLexer.in.l" +{ return COMMA; } case 35: -/* rule 35 can match eol */ YY_RULE_SETUP -#line 154 "cmDependsFortranLexer.in.l" -{ return GARBAGE; } +#line 153 "cmDependsFortranLexer.in.l" +{ return DCOLON; } case 36: +/* rule 36 can match eol */ YY_RULE_SETUP -#line 156 "cmDependsFortranLexer.in.l" -{ return ASSIGNMENT_OP; } +#line 155 "cmDependsFortranLexer.in.l" +{ return GARBAGE; } case 37: YY_RULE_SETUP -#line 158 "cmDependsFortranLexer.in.l" +#line 157 "cmDependsFortranLexer.in.l" +{ return ASSIGNMENT_OP; } +case 38: +YY_RULE_SETUP +#line 159 "cmDependsFortranLexer.in.l" { yylvalp->string = strdup(yytext); return WORD; } -case 38: -YY_RULE_SETUP -#line 163 "cmDependsFortranLexer.in.l" -{ return GARBAGE; } case 39: -/* rule 39 can match eol */ YY_RULE_SETUP -#line 165 "cmDependsFortranLexer.in.l" -{ return EOSTMT; } +#line 164 "cmDependsFortranLexer.in.l" +{ return GARBAGE; } case 40: +/* rule 40 can match eol */ YY_RULE_SETUP -#line 168 "cmDependsFortranLexer.in.l" -/* Ignore */ - YY_BREAK +#line 166 "cmDependsFortranLexer.in.l" +{ return EOSTMT; } case 41: -/* rule 41 can match eol */ YY_RULE_SETUP #line 169 "cmDependsFortranLexer.in.l" -/* Ignore line-endings preceeded by \ */ +/* Ignore */ YY_BREAK case 42: +/* rule 42 can match eol */ YY_RULE_SETUP -#line 171 "cmDependsFortranLexer.in.l" +#line 170 "cmDependsFortranLexer.in.l" +/* Ignore line-endings preceeded by \ */ + YY_BREAK +case 43: +YY_RULE_SETUP +#line 172 "cmDependsFortranLexer.in.l" { return *yytext; } case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(free_fmt): case YY_STATE_EOF(fixed_fmt): case YY_STATE_EOF(str_sq): case YY_STATE_EOF(str_dq): -#line 173 "cmDependsFortranLexer.in.l" +#line 174 "cmDependsFortranLexer.in.l" { if(!cmDependsFortranParser_FilePop(yyextra) ) { @@ -1214,12 +1240,12 @@ case YY_STATE_EOF(str_dq): } } YY_BREAK -case 43: +case 44: YY_RULE_SETUP -#line 180 "cmDependsFortranLexer.in.l" +#line 181 "cmDependsFortranLexer.in.l" ECHO; YY_BREAK -#line 1247 "cmDependsFortranLexer.cxx" +#line 1270 "cmDependsFortranLexer.cxx" case YY_END_OF_BUFFER: { @@ -1512,7 +1538,7 @@ static int yy_get_next_buffer (yyscan_t yyscanner) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 161 ) + if ( yy_current_state >= 165 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -1541,11 +1567,11 @@ static int yy_get_next_buffer (yyscan_t yyscanner) while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 161 ) + if ( yy_current_state >= 165 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 160); + yy_is_jam = (yy_current_state == 164); return yy_is_jam ? 0 : yy_current_state; } @@ -1991,7 +2017,7 @@ YY_BUFFER_STATE cmDependsFortran_yy_scan_string (yyconst char * yystr , yyscan_t } /** Setup the input buffer state to scan the given bytes. The next call to cmDependsFortran_yylex() will - * scan from a @e copy of @a yybytes. + * scan from a @e copy of @a bytes. * @param yybytes the byte buffer to scan * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes. * @param yyscanner The scanner object. @@ -2154,7 +2180,7 @@ void cmDependsFortran_yyset_lineno (int line_number , yyscan_t yyscanner) } /** Set the current column. - * @param column_no + * @param line_number * @param yyscanner The scanner object. */ void cmDependsFortran_yyset_column (int column_no , yyscan_t yyscanner) @@ -2374,7 +2400,7 @@ void cmDependsFortran_yyfree (void * ptr , yyscan_t) #define YYTABLES_NAME "yytables" -#line 180 "cmDependsFortranLexer.in.l" +#line 181 "cmDependsFortranLexer.in.l" diff --git a/Source/cmDependsFortranLexer.h b/Source/cmDependsFortranLexer.h index 85e861dd8..8e24cfd80 100644 --- a/Source/cmDependsFortranLexer.h +++ b/Source/cmDependsFortranLexer.h @@ -20,7 +20,7 @@ #define FLEX_SCANNER #define YY_FLEX_MAJOR_VERSION 2 #define YY_FLEX_MINOR_VERSION 5 -#define YY_FLEX_SUBMINOR_VERSION 34 +#define YY_FLEX_SUBMINOR_VERSION 35 #if YY_FLEX_SUBMINOR_VERSION > 0 #define FLEX_BETA #endif @@ -65,7 +65,6 @@ typedef int flex_int32_t; typedef unsigned char flex_uint8_t; typedef unsigned short int flex_uint16_t; typedef unsigned int flex_uint32_t; -#endif /* ! C99 */ /* Limits of integral types. */ #ifndef INT8_MIN @@ -96,6 +95,8 @@ typedef unsigned int flex_uint32_t; #define UINT32_MAX (4294967295U) #endif +#endif /* ! C99 */ + #endif /* ! FLEXINT_H */ #ifdef __cplusplus @@ -138,7 +139,15 @@ typedef void* yyscan_t; /* Size of default input buffer. */ #ifndef YY_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k. + * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case. + * Ditto for the __ia64__ case accordingly. + */ +#define YY_BUF_SIZE 32768 +#else #define YY_BUF_SIZE 16384 +#endif /* __ia64__ */ #endif #ifndef YY_TYPEDEF_YY_BUFFER_STATE @@ -146,13 +155,6 @@ typedef void* yyscan_t; typedef struct yy_buffer_state *YY_BUFFER_STATE; #endif -/* The following is because we cannot portably get our hands on size_t - * (without autoconf's help, which isn't available because we want - * flex-generated scanners to compile on their own). - * Given that the standard has decreed that size_t exists since 1989, - * I guess we can afford to depend on it. Manoj. - */ - #ifndef YY_TYPEDEF_YY_SIZE_T #define YY_TYPEDEF_YY_SIZE_T typedef size_t yy_size_t; @@ -304,7 +306,12 @@ static int yy_flex_strlen (yyconst char * ,yyscan_t yyscanner); /* Amount of stuff to slurp up with each read. */ #ifndef YY_READ_BUF_SIZE +#ifdef __ia64__ +/* On IA-64, the buffer size is 16k, not 8k */ +#define YY_READ_BUF_SIZE 16384 +#else #define YY_READ_BUF_SIZE 8192 +#endif /* __ia64__ */ #endif /* Number of entries by which start-condition stack grows. */ diff --git a/Source/cmDependsFortranLexer.in.l b/Source/cmDependsFortranLexer.in.l index af8e37d22..40e80b719 100644 --- a/Source/cmDependsFortranLexer.in.l +++ b/Source/cmDependsFortranLexer.in.l @@ -115,6 +115,11 @@ Modify cmDependsFortranLexer.h: !.*\n { return EOSTMT; } /* Treat comments like */ ^[cC*dD].*\n { return EOSTMT; } /* empty lines */ +^[ \t]*#[ \t]*include[ \t]*<[^>]+> { + yytext[yyleng-1] = 0; + yylvalp->string = strdup(strchr(yytext, '<')+1); + return CPP_INCLUDE_ANGLE; +} ^[ \t]*#[ \t]*include { return CPP_INCLUDE; } \$[ \t]*include { return F90PPR_INCLUDE; } \?\?[ \t]*include { return COCO_INCLUDE; } diff --git a/Source/cmDependsFortranParser.cxx b/Source/cmDependsFortranParser.cxx index ea31d3a47..7b49a9c5c 100644 --- a/Source/cmDependsFortranParser.cxx +++ b/Source/cmDependsFortranParser.cxx @@ -1,9 +1,8 @@ -/* A Bison parser, made by GNU Bison 2.4.1. */ +/* A Bison parser, made by GNU Bison 2.5. */ -/* Skeleton implementation for Bison's Yacc-like parsers in C +/* Bison implementation for Yacc-like parsers in C - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 - Free Software Foundation, Inc. + Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -45,7 +44,7 @@ #define YYBISON 1 /* Bison version. */ -#define YYBISON_VERSION "2.4.1" +#define YYBISON_VERSION "2.5" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -74,7 +73,7 @@ /* Copy the first part of user declarations. */ -/* Line 189 of yacc.c */ +/* Line 268 of yacc.c */ #line 1 "cmDependsFortranParser.y" /*============================================================================ @@ -161,8 +160,8 @@ static bool cmDependsFortranParserIsKeyword(const char* word, #endif -/* Line 189 of yacc.c */ -#line 172 "cmDependsFortranParser.cxx" +/* Line 268 of yacc.c */ +#line 165 "cmDependsFortranParser.cxx" /* Enabling traces. */ #ifndef YYDEBUG @@ -216,7 +215,8 @@ static bool cmDependsFortranParserIsKeyword(const char* word, CPP_TOENDL = 282, UNTERMINATED_STRING = 283, STRING = 284, - WORD = 285 + WORD = 285, + CPP_INCLUDE_ANGLE = 286 }; #endif /* Tokens. */ @@ -248,6 +248,7 @@ static bool cmDependsFortranParserIsKeyword(const char* word, #define UNTERMINATED_STRING 283 #define STRING 284 #define WORD 285 +#define CPP_INCLUDE_ANGLE 286 @@ -256,15 +257,15 @@ static bool cmDependsFortranParserIsKeyword(const char* word, typedef union YYSTYPE { -/* Line 214 of yacc.c */ -#line 94 "cmDependsFortranParser.y" +/* Line 293 of yacc.c */ +#line 89 "cmDependsFortranParser.y" char* string; -/* Line 214 of yacc.c */ -#line 274 "cmDependsFortranParser.cxx" +/* Line 293 of yacc.c */ +#line 269 "cmDependsFortranParser.cxx" } YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 # define yystype YYSTYPE /* obsolescent; will be withdrawn */ @@ -275,8 +276,8 @@ typedef union YYSTYPE /* Copy the second part of user declarations. */ -/* Line 264 of yacc.c */ -#line 286 "cmDependsFortranParser.cxx" +/* Line 343 of yacc.c */ +#line 281 "cmDependsFortranParser.cxx" #ifdef short # undef short @@ -326,7 +327,7 @@ typedef short int yytype_int16; #define YYSIZE_MAXIMUM ((YYSIZE_T) -1) #ifndef YY_ -# if YYENABLE_NLS +# if defined YYENABLE_NLS && YYENABLE_NLS # if ENABLE_NLS # include /* INFRINGES ON USER NAME SPACE */ # define YY_(msgid) dgettext ("bison-runtime", msgid) @@ -379,11 +380,11 @@ YYID (yyi) # define alloca _alloca # else # define YYSTACK_ALLOC alloca -# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ +# if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) # include /* INFRINGES ON USER NAME SPACE */ -# ifndef _STDLIB_H -# define _STDLIB_H 1 +# ifndef EXIT_SUCCESS +# define EXIT_SUCCESS 0 # endif # endif # endif @@ -406,24 +407,24 @@ YYID (yyi) # ifndef YYSTACK_ALLOC_MAXIMUM # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM # endif -# if (defined __cplusplus && ! defined _STDLIB_H \ +# if (defined __cplusplus && ! defined EXIT_SUCCESS \ && ! ((defined YYMALLOC || defined malloc) \ && (defined YYFREE || defined free))) # include /* INFRINGES ON USER NAME SPACE */ -# ifndef _STDLIB_H -# define _STDLIB_H 1 +# ifndef EXIT_SUCCESS +# define EXIT_SUCCESS 0 # endif # endif # ifndef YYMALLOC # define YYMALLOC malloc -# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ +# if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ # endif # endif # ifndef YYFREE # define YYFREE free -# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \ +# if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \ || defined __cplusplus || defined _MSC_VER) void free (void *); /* INFRINGES ON USER NAME SPACE */ # endif @@ -452,23 +453,7 @@ union yyalloc ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ + YYSTACK_GAP_MAXIMUM) -/* Copy COUNT objects from FROM to TO. The source and destination do - not overlap. */ -# ifndef YYCOPY -# if defined __GNUC__ && 1 < __GNUC__ -# define YYCOPY(To, From, Count) \ - __builtin_memcpy (To, From, (Count) * sizeof (*(From))) -# else -# define YYCOPY(To, From, Count) \ - do \ - { \ - YYSIZE_T yyi; \ - for (yyi = 0; yyi < (Count); yyi++) \ - (To)[yyi] = (From)[yyi]; \ - } \ - while (YYID (0)) -# endif -# endif +# define YYCOPY_NEEDED 1 /* Relocate STACK from its old location to the new one. The local variables YYSIZE and YYSTACKSIZE give the old and new number of @@ -488,23 +473,43 @@ union yyalloc #endif +#if defined YYCOPY_NEEDED && YYCOPY_NEEDED +/* Copy COUNT objects from FROM to TO. The source and destination do + not overlap. */ +# ifndef YYCOPY +# if defined __GNUC__ && 1 < __GNUC__ +# define YYCOPY(To, From, Count) \ + __builtin_memcpy (To, From, (Count) * sizeof (*(From))) +# else +# define YYCOPY(To, From, Count) \ + do \ + { \ + YYSIZE_T yyi; \ + for (yyi = 0; yyi < (Count); yyi++) \ + (To)[yyi] = (From)[yyi]; \ + } \ + while (YYID (0)) +# endif +# endif +#endif /* !YYCOPY_NEEDED */ + /* YYFINAL -- State number of the termination state. */ #define YYFINAL 2 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 271 +#define YYLAST 276 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 31 +#define YYNTOKENS 32 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 16 /* YYNRULES -- Number of rules. */ -#define YYNRULES 52 +#define YYNRULES 53 /* YYNRULES -- Number of states. */ -#define YYNSTATES 94 +#define YYNSTATES 97 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 285 +#define YYMAXUTOK 286 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -540,7 +545,7 @@ static const yytype_uint8 yytranslate[] = 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, - 25, 26, 27, 28, 29, 30 + 25, 26, 27, 28, 29, 30, 31 }; #if YYDEBUG @@ -549,43 +554,43 @@ static const yytype_uint8 yytranslate[] = static const yytype_uint8 yyprhs[] = { 0, 0, 3, 4, 7, 9, 11, 16, 19, 24, - 30, 38, 43, 48, 53, 58, 63, 68, 72, 76, - 80, 84, 89, 93, 95, 97, 99, 101, 103, 105, - 107, 109, 111, 113, 115, 117, 119, 121, 123, 125, - 127, 129, 131, 133, 135, 136, 139, 141, 143, 145, - 147, 149, 151 + 30, 38, 43, 47, 52, 57, 62, 67, 72, 76, + 80, 84, 88, 93, 97, 99, 101, 103, 105, 107, + 109, 111, 113, 115, 117, 119, 121, 123, 125, 127, + 129, 131, 133, 135, 137, 139, 140, 143, 145, 147, + 149, 151, 153, 155 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int8 yyrhs[] = { - 32, 0, -1, -1, 32, 33, -1, 35, -1, 34, - -1, 30, 4, 45, 3, -1, 30, 3, -1, 30, - 30, 45, 3, -1, 30, 26, 30, 45, 3, -1, - 30, 25, 30, 26, 30, 45, 3, -1, 30, 29, - 45, 3, -1, 36, 29, 45, 3, -1, 37, 30, - 45, 3, -1, 38, 30, 45, 3, -1, 39, 30, - 45, 3, -1, 40, 30, 45, 3, -1, 41, 45, - 3, -1, 42, 45, 3, -1, 43, 45, 3, -1, - 44, 45, 3, -1, 30, 5, 45, 3, -1, 5, - 45, 3, -1, 3, -1, 1, -1, 6, -1, 7, - -1, 8, -1, 10, -1, 9, -1, 12, -1, 11, - -1, 13, -1, 19, -1, 14, -1, 20, -1, 15, - -1, 21, -1, 17, -1, 23, -1, 16, -1, 22, - -1, 18, -1, 24, -1, -1, 45, 46, -1, 30, - -1, 29, -1, 5, -1, 4, -1, 26, -1, 25, - -1, 28, -1 + 33, 0, -1, -1, 33, 34, -1, 36, -1, 35, + -1, 30, 4, 46, 3, -1, 30, 3, -1, 30, + 30, 46, 3, -1, 30, 26, 30, 46, 3, -1, + 30, 25, 30, 26, 30, 46, 3, -1, 30, 29, + 46, 3, -1, 31, 46, 3, -1, 37, 29, 46, + 3, -1, 38, 30, 46, 3, -1, 39, 30, 46, + 3, -1, 40, 30, 46, 3, -1, 41, 30, 46, + 3, -1, 42, 46, 3, -1, 43, 46, 3, -1, + 44, 46, 3, -1, 45, 46, 3, -1, 30, 5, + 46, 3, -1, 5, 46, 3, -1, 3, -1, 1, + -1, 6, -1, 7, -1, 8, -1, 10, -1, 9, + -1, 12, -1, 11, -1, 13, -1, 19, -1, 14, + -1, 20, -1, 15, -1, 21, -1, 17, -1, 23, + -1, 16, -1, 22, -1, 18, -1, 24, -1, -1, + 46, 47, -1, 30, -1, 29, -1, 5, -1, 4, + -1, 26, -1, 25, -1, 28, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 115, 115, 115, 117, 117, 119, 125, 135, 165, - 176, 189, 200, 207, 213, 219, 225, 231, 236, 241, - 246, 251, 255, 256, 257, 262, 262, 262, 263, 263, - 264, 264, 265, 265, 266, 266, 267, 267, 268, 268, - 269, 269, 270, 270, 271, 271, 274, 275, 276, 277, - 278, 279, 280 + 0, 111, 111, 111, 113, 113, 115, 121, 131, 161, + 172, 185, 196, 203, 210, 216, 222, 228, 234, 239, + 244, 249, 254, 258, 259, 260, 265, 265, 265, 266, + 266, 267, 267, 268, 268, 269, 269, 270, 270, 271, + 271, 272, 272, 273, 273, 274, 274, 277, 278, 279, + 280, 281, 282, 283 }; #endif @@ -600,9 +605,9 @@ static const char *const yytname[] = "CPP_IF", "CPP_ELSE", "CPP_ELIF", "CPP_ENDIF", "F90PPR_IFDEF", "F90PPR_IFNDEF", "F90PPR_IF", "F90PPR_ELSE", "F90PPR_ELIF", "F90PPR_ENDIF", "COMMA", "DCOLON", "CPP_TOENDL", "UNTERMINATED_STRING", - "STRING", "WORD", "$accept", "code", "stmt", "assignment_stmt", - "keyword_stmt", "include", "define", "undef", "ifdef", "ifndef", "if", - "elif", "else", "endif", "other", "misc_code", 0 + "STRING", "WORD", "CPP_INCLUDE_ANGLE", "$accept", "code", "stmt", + "assignment_stmt", "keyword_stmt", "include", "define", "undef", "ifdef", + "ifndef", "if", "elif", "else", "endif", "other", "misc_code", 0 }; #endif @@ -614,163 +619,168 @@ static const yytype_uint16 yytoknum[] = 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285 + 285, 286 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 31, 32, 32, 33, 33, 34, 35, 35, 35, - 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, - 35, 35, 35, 35, 35, 36, 36, 36, 37, 37, - 38, 38, 39, 39, 40, 40, 41, 41, 42, 42, - 43, 43, 44, 44, 45, 45, 46, 46, 46, 46, - 46, 46, 46 + 0, 32, 33, 33, 34, 34, 35, 36, 36, 36, + 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, + 36, 36, 36, 36, 36, 36, 37, 37, 37, 38, + 38, 39, 39, 40, 40, 41, 41, 42, 42, 43, + 43, 44, 44, 45, 45, 46, 46, 47, 47, 47, + 47, 47, 47, 47 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ static const yytype_uint8 yyr2[] = { 0, 2, 0, 2, 1, 1, 4, 2, 4, 5, - 7, 4, 4, 4, 4, 4, 4, 3, 3, 3, - 3, 4, 3, 1, 1, 1, 1, 1, 1, 1, + 7, 4, 3, 4, 4, 4, 4, 4, 3, 3, + 3, 3, 4, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 0, 2, 1, 1, 1, 1, - 1, 1, 1 + 1, 1, 1, 1, 1, 0, 2, 1, 1, 1, + 1, 1, 1, 1 }; -/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state - STATE-NUM when YYTABLE doesn't specify something else to do. Zero +/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM. + Performed when YYTABLE doesn't specify something else to do. Zero means the default is an error. */ static const yytype_uint8 yydefact[] = { - 2, 0, 1, 24, 23, 44, 25, 26, 27, 29, - 28, 31, 30, 32, 34, 36, 40, 38, 42, 33, - 35, 37, 41, 39, 43, 0, 3, 5, 4, 0, - 0, 0, 0, 0, 44, 44, 44, 44, 0, 7, - 44, 44, 0, 0, 44, 44, 44, 44, 44, 44, - 44, 0, 0, 0, 0, 22, 49, 48, 51, 50, - 52, 47, 46, 45, 0, 0, 0, 44, 0, 0, - 0, 0, 0, 0, 0, 17, 18, 19, 20, 6, - 21, 0, 0, 11, 8, 12, 13, 14, 15, 16, - 44, 9, 0, 10 + 2, 0, 1, 25, 24, 45, 26, 27, 28, 30, + 29, 32, 31, 33, 35, 37, 41, 39, 43, 34, + 36, 38, 42, 40, 44, 0, 45, 3, 5, 4, + 0, 0, 0, 0, 0, 45, 45, 45, 45, 0, + 7, 45, 45, 0, 0, 45, 45, 0, 45, 45, + 45, 45, 45, 0, 0, 0, 0, 23, 50, 49, + 52, 51, 53, 48, 47, 46, 0, 0, 0, 45, + 0, 0, 12, 0, 0, 0, 0, 0, 18, 19, + 20, 21, 6, 22, 0, 0, 11, 8, 13, 14, + 15, 16, 17, 45, 9, 0, 10 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int8 yydefgoto[] = { - -1, 1, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 63 + -1, 1, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 65 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -35 +#define YYPACT_NINF -29 static const yytype_int16 yypact[] = { - -35, 29, -35, -35, -35, -35, -35, -35, -35, -35, - -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, - -35, -35, -35, -35, -35, 241, -35, -35, -35, -25, - -22, -21, -13, -12, -35, -35, -35, -35, 57, -35, - -35, -35, -11, -10, -35, -35, -35, -35, -35, -35, - -35, 63, 69, 75, 103, -35, -35, -35, -35, -35, - -35, -35, -35, -35, 109, 115, -5, -35, 121, 149, - 155, 161, 167, 195, 201, -35, -35, -35, -35, -35, - -35, -8, 207, -35, -35, -35, -35, -35, -35, -35, - -35, -35, 213, -35 + -29, 39, -29, -29, -29, -29, -29, -29, -29, -29, + -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, + -29, -29, -29, -29, -29, 246, -29, -29, -29, -29, + -28, -27, -22, -17, -16, -29, -29, -29, -29, 2, + -29, -29, -29, -13, -12, -29, -29, 61, -29, -29, + -29, -29, -29, 68, 74, 80, 108, -29, -29, -29, + -29, -29, -29, -29, -29, -29, 114, 120, -24, -29, + 126, 154, -29, 160, 166, 172, 200, 206, -29, -29, + -29, -29, -29, -29, -9, 212, -29, -29, -29, -29, + -29, -29, -29, -29, -29, 218, -29 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int8 yypgoto[] = { - -35, -35, -35, -35, -35, -35, -35, -35, -35, -35, - -35, -35, -35, -35, -34, -35 + -29, -29, -29, -29, -29, -29, -29, -29, -29, -29, + -29, -29, -29, -29, -26, -29 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule which - number is the opposite. If zero, do what YYDEFACT says. - If YYTABLE_NINF, syntax error. */ + number is the opposite. If YYTABLE_NINF, syntax error. */ #define YYTABLE_NINF -1 static const yytype_uint8 yytable[] = { - 51, 52, 53, 54, 46, 0, 64, 65, 47, 48, - 68, 69, 70, 71, 72, 73, 74, 49, 50, 66, - 67, 81, 90, 0, 0, 0, 0, 0, 0, 2, - 3, 0, 4, 82, 5, 6, 7, 8, 9, 10, + 47, 48, 84, 49, 0, 57, 58, 59, 50, 53, + 54, 55, 56, 51, 52, 66, 67, 68, 69, 70, + 71, 93, 73, 74, 75, 76, 77, 60, 61, 0, + 62, 63, 64, 0, 0, 0, 0, 0, 0, 2, + 3, 0, 4, 85, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 0, 0, 92, 0, 0, 25, - 55, 56, 57, 0, 0, 0, 75, 56, 57, 0, - 0, 0, 76, 56, 57, 0, 0, 0, 77, 56, - 57, 0, 58, 59, 0, 60, 61, 62, 58, 59, - 0, 60, 61, 62, 58, 59, 0, 60, 61, 62, - 58, 59, 0, 60, 61, 62, 78, 56, 57, 0, - 0, 0, 79, 56, 57, 0, 0, 0, 80, 56, - 57, 0, 0, 0, 83, 56, 57, 0, 58, 59, - 0, 60, 61, 62, 58, 59, 0, 60, 61, 62, - 58, 59, 0, 60, 61, 62, 58, 59, 0, 60, - 61, 62, 84, 56, 57, 0, 0, 0, 85, 56, - 57, 0, 0, 0, 86, 56, 57, 0, 0, 0, - 87, 56, 57, 0, 58, 59, 0, 60, 61, 62, - 58, 59, 0, 60, 61, 62, 58, 59, 0, 60, - 61, 62, 58, 59, 0, 60, 61, 62, 88, 56, - 57, 0, 0, 0, 89, 56, 57, 0, 0, 0, - 91, 56, 57, 0, 0, 0, 93, 56, 57, 0, - 58, 59, 0, 60, 61, 62, 58, 59, 0, 60, - 61, 62, 58, 59, 0, 60, 61, 62, 58, 59, - 0, 60, 61, 62, 39, 40, 41, 0, 0, 0, + 21, 22, 23, 24, 72, 58, 59, 95, 0, 25, + 26, 78, 58, 59, 0, 0, 0, 79, 58, 59, + 0, 0, 0, 80, 58, 59, 60, 61, 0, 62, + 63, 64, 0, 60, 61, 0, 62, 63, 64, 60, + 61, 0, 62, 63, 64, 60, 61, 0, 62, 63, + 64, 81, 58, 59, 0, 0, 0, 82, 58, 59, + 0, 0, 0, 83, 58, 59, 0, 0, 0, 86, + 58, 59, 0, 60, 61, 0, 62, 63, 64, 60, + 61, 0, 62, 63, 64, 60, 61, 0, 62, 63, + 64, 60, 61, 0, 62, 63, 64, 87, 58, 59, + 0, 0, 0, 88, 58, 59, 0, 0, 0, 89, + 58, 59, 0, 0, 0, 90, 58, 59, 0, 60, + 61, 0, 62, 63, 64, 60, 61, 0, 62, 63, + 64, 60, 61, 0, 62, 63, 64, 60, 61, 0, + 62, 63, 64, 91, 58, 59, 0, 0, 0, 92, + 58, 59, 0, 0, 0, 94, 58, 59, 0, 0, + 0, 96, 58, 59, 0, 60, 61, 0, 62, 63, + 64, 60, 61, 0, 62, 63, 64, 60, 61, 0, + 62, 63, 64, 60, 61, 0, 62, 63, 64, 40, + 41, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 42, 43, 0, 0, - 44, 45 + 0, 43, 44, 0, 0, 45, 46 }; +#define yypact_value_is_default(yystate) \ + ((yystate) == (-29)) + +#define yytable_value_is_error(yytable_value) \ + YYID (0) + static const yytype_int8 yycheck[] = { - 34, 35, 36, 37, 29, -1, 40, 41, 30, 30, - 44, 45, 46, 47, 48, 49, 50, 30, 30, 30, - 30, 26, 30, -1, -1, -1, -1, -1, -1, 0, - 1, -1, 3, 67, 5, 6, 7, 8, 9, 10, + 26, 29, 26, 30, -1, 3, 4, 5, 30, 35, + 36, 37, 38, 30, 30, 41, 42, 30, 30, 45, + 46, 30, 48, 49, 50, 51, 52, 25, 26, -1, + 28, 29, 30, -1, -1, -1, -1, -1, -1, 0, + 1, -1, 3, 69, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, -1, -1, 90, -1, -1, 30, - 3, 4, 5, -1, -1, -1, 3, 4, 5, -1, - -1, -1, 3, 4, 5, -1, -1, -1, 3, 4, - 5, -1, 25, 26, -1, 28, 29, 30, 25, 26, - -1, 28, 29, 30, 25, 26, -1, 28, 29, 30, - 25, 26, -1, 28, 29, 30, 3, 4, 5, -1, - -1, -1, 3, 4, 5, -1, -1, -1, 3, 4, - 5, -1, -1, -1, 3, 4, 5, -1, 25, 26, - -1, 28, 29, 30, 25, 26, -1, 28, 29, 30, - 25, 26, -1, 28, 29, 30, 25, 26, -1, 28, - 29, 30, 3, 4, 5, -1, -1, -1, 3, 4, - 5, -1, -1, -1, 3, 4, 5, -1, -1, -1, - 3, 4, 5, -1, 25, 26, -1, 28, 29, 30, - 25, 26, -1, 28, 29, 30, 25, 26, -1, 28, - 29, 30, 25, 26, -1, 28, 29, 30, 3, 4, - 5, -1, -1, -1, 3, 4, 5, -1, -1, -1, - 3, 4, 5, -1, -1, -1, 3, 4, 5, -1, - 25, 26, -1, 28, 29, 30, 25, 26, -1, 28, - 29, 30, 25, 26, -1, 28, 29, 30, 25, 26, - -1, 28, 29, 30, 3, 4, 5, -1, -1, -1, + 21, 22, 23, 24, 3, 4, 5, 93, -1, 30, + 31, 3, 4, 5, -1, -1, -1, 3, 4, 5, + -1, -1, -1, 3, 4, 5, 25, 26, -1, 28, + 29, 30, -1, 25, 26, -1, 28, 29, 30, 25, + 26, -1, 28, 29, 30, 25, 26, -1, 28, 29, + 30, 3, 4, 5, -1, -1, -1, 3, 4, 5, + -1, -1, -1, 3, 4, 5, -1, -1, -1, 3, + 4, 5, -1, 25, 26, -1, 28, 29, 30, 25, + 26, -1, 28, 29, 30, 25, 26, -1, 28, 29, + 30, 25, 26, -1, 28, 29, 30, 3, 4, 5, + -1, -1, -1, 3, 4, 5, -1, -1, -1, 3, + 4, 5, -1, -1, -1, 3, 4, 5, -1, 25, + 26, -1, 28, 29, 30, 25, 26, -1, 28, 29, + 30, 25, 26, -1, 28, 29, 30, 25, 26, -1, + 28, 29, 30, 3, 4, 5, -1, -1, -1, 3, + 4, 5, -1, -1, -1, 3, 4, 5, -1, -1, + -1, 3, 4, 5, -1, 25, 26, -1, 28, 29, + 30, 25, 26, -1, 28, 29, 30, 25, 26, -1, + 28, 29, 30, 25, 26, -1, 28, 29, 30, 3, + 4, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 25, 26, -1, -1, - 29, 30 + -1, 25, 26, -1, -1, 29, 30 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 32, 0, 1, 3, 5, 6, 7, 8, 9, + 0, 33, 0, 1, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 24, 30, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 3, - 4, 5, 25, 26, 29, 30, 29, 30, 30, 30, - 30, 45, 45, 45, 45, 3, 4, 5, 25, 26, - 28, 29, 30, 46, 45, 45, 30, 30, 45, 45, - 45, 45, 45, 45, 45, 3, 3, 3, 3, 3, - 3, 26, 45, 3, 3, 3, 3, 3, 3, 3, - 30, 3, 45, 3 + 20, 21, 22, 23, 24, 30, 31, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 3, 4, 5, 25, 26, 29, 30, 46, 29, 30, + 30, 30, 30, 46, 46, 46, 46, 3, 4, 5, + 25, 26, 28, 29, 30, 47, 46, 46, 30, 30, + 46, 46, 3, 46, 46, 46, 46, 46, 3, 3, + 3, 3, 3, 3, 26, 46, 3, 3, 3, 3, + 3, 3, 3, 30, 3, 46, 3 }; #define yyerrok (yyerrstatus = 0) @@ -785,9 +795,18 @@ static const yytype_uint8 yystos[] = /* Like YYERROR except do call yyerror. This remains here temporarily to ease the transition to the new meaning of YYERROR, for GCC. - Once GCC version 2 has supplanted version 1, this can go. */ + Once GCC version 2 has supplanted version 1, this can go. However, + YYFAIL appears to be in use. Nevertheless, it is formally deprecated + in Bison 2.4.2's NEWS entry, where a plan to phase it out is + discussed. */ #define YYFAIL goto yyerrlab +#if defined YYFAIL + /* This is here to suppress warnings from the GCC cpp's + -Wunused-macros. Normally we don't worry about that warning, but + some users do, and we want to make it easy for users to remove + YYFAIL uses, which will produce warnings from Bison 2.5. */ +#endif #define YYRECOVERING() (!!yyerrstatus) @@ -797,7 +816,6 @@ do \ { \ yychar = (Token); \ yylval = (Value); \ - yytoken = YYTRANSLATE (yychar); \ YYPOPSTACK (1); \ goto yybackup; \ } \ @@ -839,19 +857,10 @@ while (YYID (0)) #endif -/* YY_LOCATION_PRINT -- Print the location on the stream. - This macro was not mandated originally: define only if we know - we won't break user code: when these are the locations we know. */ +/* This macro is provided for backward compatibility. */ #ifndef YY_LOCATION_PRINT -# if YYLTYPE_IS_TRIVIAL -# define YY_LOCATION_PRINT(File, Loc) \ - fprintf (File, "%d.%d-%d.%d", \ - (Loc).first_line, (Loc).first_column, \ - (Loc).last_line, (Loc).last_column) -# else -# define YY_LOCATION_PRINT(File, Loc) ((void) 0) -# endif +# define YY_LOCATION_PRINT(File, Loc) ((void) 0) #endif @@ -1043,7 +1052,6 @@ int yydebug; # define YYMAXDEPTH 10000 #endif - #if YYERROR_VERBOSE @@ -1146,115 +1154,142 @@ yytnamerr (char *yyres, const char *yystr) } # endif -/* Copy into YYRESULT an error message about the unexpected token - YYCHAR while in state YYSTATE. Return the number of bytes copied, - including the terminating null byte. If YYRESULT is null, do not - copy anything; just return the number of bytes that would be - copied. As a special case, return 0 if an ordinary "syntax error" - message will do. Return YYSIZE_MAXIMUM if overflow occurs during - size calculation. */ -static YYSIZE_T -yysyntax_error (char *yyresult, int yystate, int yychar) +/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message + about the unexpected token YYTOKEN for the state stack whose top is + YYSSP. + + Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is + not large enough to hold the message. In that case, also set + *YYMSG_ALLOC to the required number of bytes. Return 2 if the + required number of bytes is too large to store. */ +static int +yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, + yytype_int16 *yyssp, int yytoken) { - int yyn = yypact[yystate]; + YYSIZE_T yysize0 = yytnamerr (0, yytname[yytoken]); + YYSIZE_T yysize = yysize0; + YYSIZE_T yysize1; + enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; + /* Internationalized format string. */ + const char *yyformat = 0; + /* Arguments of yyformat. */ + char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; + /* Number of reported tokens (one for the "unexpected", one per + "expected"). */ + int yycount = 0; - if (! (YYPACT_NINF < yyn && yyn <= YYLAST)) - return 0; - else + /* There are many possibilities here to consider: + - Assume YYFAIL is not used. It's too flawed to consider. See + + for details. YYERROR is fine as it does not invoke this + function. + - If this state is a consistent state with a default action, then + the only way this function was invoked is if the default action + is an error action. In that case, don't check for expected + tokens because there are none. + - The only way there can be no lookahead present (in yychar) is if + this state is a consistent state with a default action. Thus, + detecting the absence of a lookahead is sufficient to determine + that there is no unexpected or expected token to report. In that + case, just report a simple "syntax error". + - Don't assume there isn't a lookahead just because this state is a + consistent state with a default action. There might have been a + previous inconsistent state, consistent state with a non-default + action, or user semantic action that manipulated yychar. + - Of course, the expected token list depends on states to have + correct lookahead information, and it depends on the parser not + to perform extra reductions after fetching a lookahead from the + scanner and before detecting a syntax error. Thus, state merging + (from LALR or IELR) and default reductions corrupt the expected + token list. However, the list is correct for canonical LR with + one exception: it will still contain any token that will not be + accepted due to an error action in a later state. + */ + if (yytoken != YYEMPTY) { - int yytype = YYTRANSLATE (yychar); - YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]); - YYSIZE_T yysize = yysize0; - YYSIZE_T yysize1; - int yysize_overflow = 0; - enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; - char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; - int yyx; - -# if 0 - /* This is so xgettext sees the translatable formats that are - constructed on the fly. */ - YY_("syntax error, unexpected %s"); - YY_("syntax error, unexpected %s, expecting %s"); - YY_("syntax error, unexpected %s, expecting %s or %s"); - YY_("syntax error, unexpected %s, expecting %s or %s or %s"); - YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"); -# endif - char *yyfmt; - char const *yyf; - static char const yyunexpected[] = "syntax error, unexpected %s"; - static char const yyexpecting[] = ", expecting %s"; - static char const yyor[] = " or %s"; - char yyformat[sizeof yyunexpected - + sizeof yyexpecting - 1 - + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2) - * (sizeof yyor - 1))]; - char const *yyprefix = yyexpecting; - - /* Start YYX at -YYN if negative to avoid negative indexes in - YYCHECK. */ - int yyxbegin = yyn < 0 ? -yyn : 0; - - /* Stay within bounds of both yycheck and yytname. */ - int yychecklim = YYLAST - yyn + 1; - int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; - int yycount = 1; - - yyarg[0] = yytname[yytype]; - yyfmt = yystpcpy (yyformat, yyunexpected); - - for (yyx = yyxbegin; yyx < yyxend; ++yyx) - if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) - { - if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) - { - yycount = 1; - yysize = yysize0; - yyformat[sizeof yyunexpected - 1] = '\0'; - break; - } - yyarg[yycount++] = yytname[yyx]; - yysize1 = yysize + yytnamerr (0, yytname[yyx]); - yysize_overflow |= (yysize1 < yysize); - yysize = yysize1; - yyfmt = yystpcpy (yyfmt, yyprefix); - yyprefix = yyor; - } - - yyf = YY_(yyformat); - yysize1 = yysize + yystrlen (yyf); - yysize_overflow |= (yysize1 < yysize); - yysize = yysize1; - - if (yysize_overflow) - return YYSIZE_MAXIMUM; - - if (yyresult) + int yyn = yypact[*yyssp]; + yyarg[yycount++] = yytname[yytoken]; + if (!yypact_value_is_default (yyn)) { - /* Avoid sprintf, as that infringes on the user's name space. - Don't have undefined behavior even if the translation - produced a string with the wrong number of "%s"s. */ - char *yyp = yyresult; - int yyi = 0; - while ((*yyp = *yyf) != '\0') - { - if (*yyp == '%' && yyf[1] == 's' && yyi < yycount) - { - yyp += yytnamerr (yyp, yyarg[yyi++]); - yyf += 2; - } - else - { - yyp++; - yyf++; - } - } + /* Start YYX at -YYN if negative to avoid negative indexes in + YYCHECK. In other words, skip the first -YYN actions for + this state because they are default actions. */ + int yyxbegin = yyn < 0 ? -yyn : 0; + /* Stay within bounds of both yycheck and yytname. */ + int yychecklim = YYLAST - yyn + 1; + int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; + int yyx; + + for (yyx = yyxbegin; yyx < yyxend; ++yyx) + if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR + && !yytable_value_is_error (yytable[yyx + yyn])) + { + if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) + { + yycount = 1; + yysize = yysize0; + break; + } + yyarg[yycount++] = yytname[yyx]; + yysize1 = yysize + yytnamerr (0, yytname[yyx]); + if (! (yysize <= yysize1 + && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) + return 2; + yysize = yysize1; + } } - return yysize; } + + switch (yycount) + { +# define YYCASE_(N, S) \ + case N: \ + yyformat = S; \ + break + YYCASE_(0, YY_("syntax error")); + YYCASE_(1, YY_("syntax error, unexpected %s")); + YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); + YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); + YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); + YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); +# undef YYCASE_ + } + + yysize1 = yysize + yystrlen (yyformat); + if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) + return 2; + yysize = yysize1; + + if (*yymsg_alloc < yysize) + { + *yymsg_alloc = 2 * yysize; + if (! (yysize <= *yymsg_alloc + && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) + *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; + return 1; + } + + /* Avoid sprintf, as that infringes on the user's name space. + Don't have undefined behavior even if the translation + produced a string with the wrong number of "%s"s. */ + { + char *yyp = *yymsg; + int yyi = 0; + while ((*yyp = *yyformat) != '\0') + if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) + { + yyp += yytnamerr (yyp, yyarg[yyi++]); + yyformat += 2; + } + else + { + yyp++; + yyformat++; + } + } + return 0; } #endif /* YYERROR_VERBOSE */ - /*-----------------------------------------------. | Release the memory associated to this symbol. | @@ -1287,6 +1322,7 @@ yydestruct (yymsg, yytype, yyvaluep) } } + /* Prevent warnings from -Wmissing-prototypes. */ #ifdef YYPARSE_PARAM #if defined __STDC__ || defined __cplusplus @@ -1303,12 +1339,9 @@ int yyparse (); #endif /* ! YYPARSE_PARAM */ - - - -/*-------------------------. -| yyparse or yypush_parse. | -`-------------------------*/ +/*----------. +| yyparse. | +`----------*/ #ifdef YYPARSE_PARAM #if (defined __STDC__ || defined __C99__FUNC__ \ @@ -1495,7 +1528,7 @@ yybackup: /* First try to decide what to do without reference to lookahead token. */ yyn = yypact[yystate]; - if (yyn == YYPACT_NINF) + if (yypact_value_is_default (yyn)) goto yydefault; /* Not known => get a lookahead token if don't already have one. */ @@ -1526,7 +1559,7 @@ yybackup: yyn = yytable[yyn]; if (yyn <= 0) { - if (yyn == 0 || yyn == YYTABLE_NINF) + if (yytable_value_is_error (yyn)) goto yyerrlab; yyn = -yyn; goto yyreduce; @@ -1582,8 +1615,8 @@ yyreduce: { case 6: -/* Line 1455 of yacc.c */ -#line 120 "cmDependsFortranParser.y" +/* Line 1806 of yacc.c */ +#line 116 "cmDependsFortranParser.y" { free((yyvsp[(1) - (4)].string)); } @@ -1591,8 +1624,8 @@ yyreduce: case 7: -/* Line 1455 of yacc.c */ -#line 126 "cmDependsFortranParser.y" +/* Line 1806 of yacc.c */ +#line 122 "cmDependsFortranParser.y" { if (cmDependsFortranParserIsKeyword((yyvsp[(1) - (2)].string), "interface")) { @@ -1606,8 +1639,8 @@ yyreduce: case 8: -/* Line 1455 of yacc.c */ -#line 136 "cmDependsFortranParser.y" +/* Line 1806 of yacc.c */ +#line 132 "cmDependsFortranParser.y" { if (cmDependsFortranParserIsKeyword((yyvsp[(1) - (4)].string), "use")) { @@ -1641,8 +1674,8 @@ yyreduce: case 9: -/* Line 1455 of yacc.c */ -#line 166 "cmDependsFortranParser.y" +/* Line 1806 of yacc.c */ +#line 162 "cmDependsFortranParser.y" { if (cmDependsFortranParserIsKeyword((yyvsp[(1) - (5)].string), "use")) { @@ -1657,8 +1690,8 @@ yyreduce: case 10: -/* Line 1455 of yacc.c */ -#line 177 "cmDependsFortranParser.y" +/* Line 1806 of yacc.c */ +#line 173 "cmDependsFortranParser.y" { if (cmDependsFortranParserIsKeyword((yyvsp[(1) - (7)].string), "use") && cmDependsFortranParserIsKeyword((yyvsp[(3) - (7)].string), "non_intrinsic") ) @@ -1675,8 +1708,8 @@ yyreduce: case 11: -/* Line 1455 of yacc.c */ -#line 190 "cmDependsFortranParser.y" +/* Line 1806 of yacc.c */ +#line 186 "cmDependsFortranParser.y" { if (cmDependsFortranParserIsKeyword((yyvsp[(1) - (4)].string), "include")) { @@ -1691,8 +1724,20 @@ yyreduce: case 12: -/* Line 1455 of yacc.c */ -#line 201 "cmDependsFortranParser.y" +/* Line 1806 of yacc.c */ +#line 197 "cmDependsFortranParser.y" + { + cmDependsFortranParser* parser = + cmDependsFortran_yyget_extra(yyscanner); + cmDependsFortranParser_RuleInclude(parser, (yyvsp[(1) - (3)].string)); + free((yyvsp[(1) - (3)].string)); + } + break; + + case 13: + +/* Line 1806 of yacc.c */ +#line 204 "cmDependsFortranParser.y" { cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); @@ -1701,10 +1746,10 @@ yyreduce: } break; - case 13: + case 14: -/* Line 1455 of yacc.c */ -#line 208 "cmDependsFortranParser.y" +/* Line 1806 of yacc.c */ +#line 211 "cmDependsFortranParser.y" { cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); cmDependsFortranParser_RuleDefine(parser, (yyvsp[(2) - (4)].string)); @@ -1712,10 +1757,10 @@ yyreduce: } break; - case 14: + case 15: -/* Line 1455 of yacc.c */ -#line 214 "cmDependsFortranParser.y" +/* Line 1806 of yacc.c */ +#line 217 "cmDependsFortranParser.y" { cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); cmDependsFortranParser_RuleUndef(parser, (yyvsp[(2) - (4)].string)); @@ -1723,10 +1768,10 @@ yyreduce: } break; - case 15: + case 16: -/* Line 1455 of yacc.c */ -#line 220 "cmDependsFortranParser.y" +/* Line 1806 of yacc.c */ +#line 223 "cmDependsFortranParser.y" { cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); cmDependsFortranParser_RuleIfdef(parser, (yyvsp[(2) - (4)].string)); @@ -1734,10 +1779,10 @@ yyreduce: } break; - case 16: + case 17: -/* Line 1455 of yacc.c */ -#line 226 "cmDependsFortranParser.y" +/* Line 1806 of yacc.c */ +#line 229 "cmDependsFortranParser.y" { cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); cmDependsFortranParser_RuleIfndef(parser, (yyvsp[(2) - (4)].string)); @@ -1745,75 +1790,86 @@ yyreduce: } break; - case 17: + case 18: -/* Line 1455 of yacc.c */ -#line 232 "cmDependsFortranParser.y" +/* Line 1806 of yacc.c */ +#line 235 "cmDependsFortranParser.y" { cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); cmDependsFortranParser_RuleIf(parser); } break; - case 18: + case 19: -/* Line 1455 of yacc.c */ -#line 237 "cmDependsFortranParser.y" +/* Line 1806 of yacc.c */ +#line 240 "cmDependsFortranParser.y" { cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); cmDependsFortranParser_RuleElif(parser); } break; - case 19: + case 20: -/* Line 1455 of yacc.c */ -#line 242 "cmDependsFortranParser.y" +/* Line 1806 of yacc.c */ +#line 245 "cmDependsFortranParser.y" { cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); cmDependsFortranParser_RuleElse(parser); } break; - case 20: + case 21: -/* Line 1455 of yacc.c */ -#line 247 "cmDependsFortranParser.y" +/* Line 1806 of yacc.c */ +#line 250 "cmDependsFortranParser.y" { cmDependsFortranParser* parser = cmDependsFortran_yyget_extra(yyscanner); cmDependsFortranParser_RuleEndif(parser); } break; - case 21: + case 22: -/* Line 1455 of yacc.c */ -#line 252 "cmDependsFortranParser.y" +/* Line 1806 of yacc.c */ +#line 255 "cmDependsFortranParser.y" { free((yyvsp[(1) - (4)].string)); } break; - case 46: - -/* Line 1455 of yacc.c */ -#line 274 "cmDependsFortranParser.y" - { free ((yyvsp[(1) - (1)].string)); } - break; - case 47: -/* Line 1455 of yacc.c */ -#line 275 "cmDependsFortranParser.y" +/* Line 1806 of yacc.c */ +#line 277 "cmDependsFortranParser.y" + { free ((yyvsp[(1) - (1)].string)); } + break; + + case 48: + +/* Line 1806 of yacc.c */ +#line 278 "cmDependsFortranParser.y" { free ((yyvsp[(1) - (1)].string)); } break; -/* Line 1455 of yacc.c */ -#line 1821 "cmDependsFortranParser.cxx" +/* Line 1806 of yacc.c */ +#line 1860 "cmDependsFortranParser.cxx" default: break; } + /* User semantic actions sometimes alter yychar, and that requires + that yytoken be updated with the new translation. We take the + approach of translating immediately before every use of yytoken. + One alternative is translating here after every semantic action, + but that translation would be missed if the semantic action invokes + YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or + if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an + incorrect destructor might then be invoked immediately. In the + case of YYERROR or YYBACKUP, subsequent parser actions might lead + to an incorrect destructor call or verbose syntax error message + before the lookahead is translated. */ YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); YYPOPSTACK (yylen); @@ -1841,6 +1897,10 @@ yyreduce: | yyerrlab -- here on detecting error | `------------------------------------*/ yyerrlab: + /* Make sure we have latest lookahead translation. See comments at + user semantic actions for why this is necessary. */ + yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); + /* If not already recovering from an error, report this error. */ if (!yyerrstatus) { @@ -1848,37 +1908,36 @@ yyerrlab: #if ! YYERROR_VERBOSE yyerror (YY_("syntax error")); #else +# define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ + yyssp, yytoken) { - YYSIZE_T yysize = yysyntax_error (0, yystate, yychar); - if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM) + char const *yymsgp = YY_("syntax error"); + int yysyntax_error_status; + yysyntax_error_status = YYSYNTAX_ERROR; + if (yysyntax_error_status == 0) + yymsgp = yymsg; + else if (yysyntax_error_status == 1) { - YYSIZE_T yyalloc = 2 * yysize; - if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM)) - yyalloc = YYSTACK_ALLOC_MAXIMUM; if (yymsg != yymsgbuf) YYSTACK_FREE (yymsg); - yymsg = (char *) YYSTACK_ALLOC (yyalloc); - if (yymsg) - yymsg_alloc = yyalloc; - else + yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); + if (!yymsg) { yymsg = yymsgbuf; yymsg_alloc = sizeof yymsgbuf; + yysyntax_error_status = 2; + } + else + { + yysyntax_error_status = YYSYNTAX_ERROR; + yymsgp = yymsg; } } - - if (0 < yysize && yysize <= yymsg_alloc) - { - (void) yysyntax_error (yymsg, yystate, yychar); - yyerror (yymsg); - } - else - { - yyerror (YY_("syntax error")); - if (yysize != 0) - goto yyexhaustedlab; - } + yyerror (yymsgp); + if (yysyntax_error_status == 2) + goto yyexhaustedlab; } +# undef YYSYNTAX_ERROR #endif } @@ -1939,7 +1998,7 @@ yyerrlab1: for (;;) { yyn = yypact[yystate]; - if (yyn != YYPACT_NINF) + if (!yypact_value_is_default (yyn)) { yyn += YYTERROR; if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) @@ -1998,8 +2057,13 @@ yyexhaustedlab: yyreturn: if (yychar != YYEMPTY) - yydestruct ("Cleanup: discarding lookahead", - yytoken, &yylval); + { + /* Make sure we have latest lookahead translation. See comments at + user semantic actions for why this is necessary. */ + yytoken = YYTRANSLATE (yychar); + yydestruct ("Cleanup: discarding lookahead", + yytoken, &yylval); + } /* Do not reclaim the symbols of the rule which action triggered this YYABORT or YYACCEPT. */ YYPOPSTACK (yylen); @@ -2024,7 +2088,7 @@ yyreturn: -/* Line 1675 of yacc.c */ -#line 283 "cmDependsFortranParser.y" +/* Line 2067 of yacc.c */ +#line 286 "cmDependsFortranParser.y" /* End of grammar */ diff --git a/Source/cmDependsFortranParser.y b/Source/cmDependsFortranParser.y index 00d3327a7..5681d698c 100644 --- a/Source/cmDependsFortranParser.y +++ b/Source/cmDependsFortranParser.y @@ -102,6 +102,7 @@ static bool cmDependsFortranParserIsKeyword(const char* word, %token CPP_TOENDL %token UNTERMINATED_STRING %token STRING WORD +%token CPP_INCLUDE_ANGLE /*-------------------------------------------------------------------------*/ /* grammar */ @@ -192,6 +193,13 @@ keyword_stmt: free($1); free($2); } +| CPP_INCLUDE_ANGLE other EOSTMT + { + cmDependsFortranParser* parser = + cmDependsFortran_yyget_extra(yyscanner); + cmDependsFortranParser_RuleInclude(parser, $1); + free($1); + } | include STRING other EOSTMT { cmDependsFortranParser* parser = diff --git a/Source/cmDependsFortranParserTokens.h b/Source/cmDependsFortranParserTokens.h index 0bbcaaea1..941eda09c 100644 --- a/Source/cmDependsFortranParserTokens.h +++ b/Source/cmDependsFortranParserTokens.h @@ -1,9 +1,8 @@ -/* A Bison parser, made by GNU Bison 2.4.1. */ +/* A Bison parser, made by GNU Bison 2.5. */ -/* Skeleton interface for Bison's Yacc-like parsers in C +/* Bison interface for Yacc-like parsers in C - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006 - Free Software Foundation, Inc. + Copyright (C) 1984, 1989-1990, 2000-2011 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -31,6 +30,7 @@ This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ + /* Tokens. */ #ifndef YYTOKENTYPE # define YYTOKENTYPE @@ -64,7 +64,8 @@ CPP_TOENDL = 282, UNTERMINATED_STRING = 283, STRING = 284, - WORD = 285 + WORD = 285, + CPP_INCLUDE_ANGLE = 286 }; #endif /* Tokens. */ @@ -96,6 +97,7 @@ #define UNTERMINATED_STRING 283 #define STRING 284 #define WORD 285 +#define CPP_INCLUDE_ANGLE 286 @@ -104,12 +106,14 @@ typedef union YYSTYPE { -/* Line 1676 of yacc.c */ -#line 94 "cmDependsFortranParser.y" +/* Line 2068 of yacc.c */ +#line 89 "cmDependsFortranParser.y" char* string; -/* Line 1676 of yacc.c */ + + +/* Line 2068 of yacc.c */ #line 118 "cmDependsFortranParserTokens.h" } YYSTYPE; # define YYSTYPE_IS_TRIVIAL 1 From c5c9af5a73b7ab7d91f5f86df09502c7a9637c1e Mon Sep 17 00:00:00 2001 From: Zack Galbreath Date: Mon, 21 May 2012 11:12:03 -0400 Subject: [PATCH 061/101] FindPythonLibs: Document cache variables (#13240) Add information on how to change which install of Python is found by CMake. --- Modules/FindPythonLibs.cmake | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Modules/FindPythonLibs.cmake b/Modules/FindPythonLibs.cmake index 591b3e6cf..478ebcb0b 100644 --- a/Modules/FindPythonLibs.cmake +++ b/Modules/FindPythonLibs.cmake @@ -13,6 +13,11 @@ # The Python_ADDITIONAL_VERSIONS variable can be used to specify a list of # version numbers that should be taken into account when searching for Python. # You need to set this variable before calling find_package(PythonLibs). +# +# If you'd like to specify the installation of Python to use, you should modify +# the following cache variables: +# PYTHON_LIBRARY - path to the python library +# PYTHON_INCLUDE_DIR - path to where Python.h is found #============================================================================= # Copyright 2001-2009 Kitware, Inc. From 4df451131b7b4e44e12402fef94f4ad7207d17f0 Mon Sep 17 00:00:00 2001 From: Kitware Robot Date: Wed, 23 May 2012 00:01:03 -0400 Subject: [PATCH 062/101] CMake Nightly Date Stamp --- Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index c2c577ef5..3e13d7cf1 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -2,5 +2,5 @@ SET(CMake_VERSION_MAJOR 2) SET(CMake_VERSION_MINOR 8) SET(CMake_VERSION_PATCH 8) -SET(CMake_VERSION_TWEAK 20120522) +SET(CMake_VERSION_TWEAK 20120523) #SET(CMake_VERSION_RC 1) From 0fbaa63cb25110385622a9f5a534c990d35e06c4 Mon Sep 17 00:00:00 2001 From: Brad King Date: Wed, 23 May 2012 08:32:57 -0400 Subject: [PATCH 063/101] KWSys: Remove unused environ declaration from SystemTools Commit "KWSys: Fix SystemTools environment memory handling" (2012-04-26) added a _WIN32 case inside !KWSYS_CXX_HAS_ENVIRON_IN_STDLIB_H to dllimport the "environ" global. Howver, KWSYS_CXX_HAS_ENVIRON_IN_STDLIB_H is true on every Windows toolchain we support so the case is never reached. Furthermore, even if it were reached the use of dllimport is incorrect because the toolchain might not be compiling with a dynamic runtime library. Remove the unused incorrect line and supporting conditionals. --- Source/kwsys/SystemTools.cxx | 4 ---- 1 file changed, 4 deletions(-) diff --git a/Source/kwsys/SystemTools.cxx b/Source/kwsys/SystemTools.cxx index 8ab580f0e..66850e9ac 100644 --- a/Source/kwsys/SystemTools.cxx +++ b/Source/kwsys/SystemTools.cxx @@ -81,11 +81,7 @@ #endif #if !KWSYS_CXX_HAS_ENVIRON_IN_STDLIB_H -# if defined(_WIN32) -extern __declspec(dllimport) char **environ; -# else extern char **environ; -# endif #endif #ifdef __CYGWIN__ From 00ae36fdfffe39fb71cb54f81990b44be81d6833 Mon Sep 17 00:00:00 2001 From: Alex Neundorf Date: Wed, 23 May 2012 20:46:48 +0200 Subject: [PATCH 064/101] write_basic_package_version_file() now works with unset CMAKE_SIZEOF_VOID_P This fixes #13241. If CMAKE_SIZEOF_VOID_P is not set, either in the installed or in the using project, don't check for it. Alex --- Modules/BasicConfigVersion-AnyNewerVersion.cmake.in | 5 +++++ Modules/BasicConfigVersion-ExactVersion.cmake.in | 5 +++++ Modules/BasicConfigVersion-SameMajorVersion.cmake.in | 5 +++++ 3 files changed, 15 insertions(+) diff --git a/Modules/BasicConfigVersion-AnyNewerVersion.cmake.in b/Modules/BasicConfigVersion-AnyNewerVersion.cmake.in index cf53db84a..9f7f03e27 100644 --- a/Modules/BasicConfigVersion-AnyNewerVersion.cmake.in +++ b/Modules/BasicConfigVersion-AnyNewerVersion.cmake.in @@ -18,6 +18,11 @@ else() endif() endif() +# if the installed or the using project don't have CMAKE_SIZEOF_VOID_P set, ignore it: +if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "" OR "@CMAKE_SIZEOF_VOID_P@" STREQUAL "") + return() +endif() + # check that the installed version has the same 32/64bit-ness as the one which is currently searching: if(NOT "${CMAKE_SIZEOF_VOID_P}" STREQUAL "@CMAKE_SIZEOF_VOID_P@") math(EXPR installedBits "@CMAKE_SIZEOF_VOID_P@ * 8") diff --git a/Modules/BasicConfigVersion-ExactVersion.cmake.in b/Modules/BasicConfigVersion-ExactVersion.cmake.in index c610baa28..63f3f0339 100644 --- a/Modules/BasicConfigVersion-ExactVersion.cmake.in +++ b/Modules/BasicConfigVersion-ExactVersion.cmake.in @@ -34,6 +34,11 @@ if( "${PACKAGE_FIND_VERSION}" STREQUAL "${PACKAGE_VERSION}") endif() +# if the installed or the using project don't have CMAKE_SIZEOF_VOID_P set, ignore it: +if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "" OR "@CMAKE_SIZEOF_VOID_P@" STREQUAL "") + return() +endif() + # check that the installed version has the same 32/64bit-ness as the one which is currently searching: if(NOT "${CMAKE_SIZEOF_VOID_P}" STREQUAL "@CMAKE_SIZEOF_VOID_P@") math(EXPR installedBits "@CMAKE_SIZEOF_VOID_P@ * 8") diff --git a/Modules/BasicConfigVersion-SameMajorVersion.cmake.in b/Modules/BasicConfigVersion-SameMajorVersion.cmake.in index 2317fdbb3..7bcea88a5 100644 --- a/Modules/BasicConfigVersion-SameMajorVersion.cmake.in +++ b/Modules/BasicConfigVersion-SameMajorVersion.cmake.in @@ -33,6 +33,11 @@ else() endif() +# if the installed or the using project don't have CMAKE_SIZEOF_VOID_P set, ignore it: +if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "" OR "@CMAKE_SIZEOF_VOID_P@" STREQUAL "") + return() +endif() + # check that the installed version has the same 32/64bit-ness as the one which is currently searching: if(NOT "${CMAKE_SIZEOF_VOID_P}" STREQUAL "@CMAKE_SIZEOF_VOID_P@") math(EXPR installedBits "@CMAKE_SIZEOF_VOID_P@ * 8") From 14b213c0ceb9fb2882dc41574ebacaf0ef906fc1 Mon Sep 17 00:00:00 2001 From: Alex Neundorf Date: Wed, 23 May 2012 20:48:47 +0200 Subject: [PATCH 065/101] add test for #13241: empty SIZEOF_VOIDP in write_basic_package_version_file Alex --- Tests/FindPackageTest/CMakeLists.txt | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Tests/FindPackageTest/CMakeLists.txt b/Tests/FindPackageTest/CMakeLists.txt index 586209456..e85fb4dd2 100644 --- a/Tests/FindPackageTest/CMakeLists.txt +++ b/Tests/FindPackageTest/CMakeLists.txt @@ -363,10 +363,16 @@ endif() #----------------------------------------------------------------------------- # Test write_basic_config_version_file(). +# also test that an empty CMAKE_SIZEOF_VOID_P is accepted: +set(_CMAKE_SIZEOF_VOID_P ${CMAKE_SIZEOF_VOID_P}) +set(CMAKE_SIZEOF_VOID_P "") + write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/Foo123ConfigVersion.cmake VERSION 1.2.3 COMPATIBILITY AnyNewerVersion) +set(CMAKE_SIZEOF_VOID_P ${_CMAKE_SIZEOF_VOID_P}) + set(PACKAGE_FIND_VERSION 2.3.4) include(${CMAKE_CURRENT_BINARY_DIR}/Foo123ConfigVersion.cmake) if(PACKAGE_VERSION_COMPATIBLE) @@ -379,6 +385,10 @@ if(NOT PACKAGE_VERSION_COMPATIBLE) message(SEND_ERROR "Did not find Foo123 with version 1.2.3 (0.0.1 was requested) !") endif() +if(PACKAGE_VERSION_UNSUITABLE) + message(SEND_ERROR "PACKAGE_VERSION_UNSUITABLE set, but must not be !") +endif() + set(PACKAGE_FIND_VERSION 1.0.0) include(${CMAKE_CURRENT_BINARY_DIR}/Foo123ConfigVersion.cmake) if(NOT PACKAGE_VERSION_COMPATIBLE) @@ -405,6 +415,7 @@ write_basic_config_version_file(${CMAKE_CURRENT_BINARY_DIR}/Boo123ConfigVersion. VERSION 1.2.3 COMPATIBILITY SameMajorVersion) +unset(PACKAGE_VERSION_UNSUITABLE) set(PACKAGE_VERSION_EXACT FALSE) set(PACKAGE_FIND_VERSION 2.3.4) set(PACKAGE_FIND_VERSION_MAJOR 2) @@ -456,6 +467,7 @@ write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/Bar123ConfigVersion VERSION 1.2.3.17 COMPATIBILITY ExactVersion) +unset(PACKAGE_VERSION_UNSUITABLE) set(PACKAGE_VERSION_EXACT FALSE) set(PACKAGE_FIND_VERSION 2.3.4) include(${CMAKE_CURRENT_BINARY_DIR}/Bar123ConfigVersion.cmake) From 1e3dde2ddb20457d6a5ca3399d3add46f37c2516 Mon Sep 17 00:00:00 2001 From: Kitware Robot Date: Thu, 24 May 2012 00:01:04 -0400 Subject: [PATCH 066/101] CMake Nightly Date Stamp --- Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 3e13d7cf1..b02b3a812 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -2,5 +2,5 @@ SET(CMake_VERSION_MAJOR 2) SET(CMake_VERSION_MINOR 8) SET(CMake_VERSION_PATCH 8) -SET(CMake_VERSION_TWEAK 20120523) +SET(CMake_VERSION_TWEAK 20120524) #SET(CMake_VERSION_RC 1) From b639549c671c4921938935180f0690ed8910ce3d Mon Sep 17 00:00:00 2001 From: Kitware Robot Date: Fri, 25 May 2012 00:01:04 -0400 Subject: [PATCH 067/101] CMake Nightly Date Stamp --- Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index b02b3a812..66a439b25 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -2,5 +2,5 @@ SET(CMake_VERSION_MAJOR 2) SET(CMake_VERSION_MINOR 8) SET(CMake_VERSION_PATCH 8) -SET(CMake_VERSION_TWEAK 20120524) +SET(CMake_VERSION_TWEAK 20120525) #SET(CMake_VERSION_RC 1) From bdc6e32d322a0ef0da39c52e46a53056c592697d Mon Sep 17 00:00:00 2001 From: Stephen Kelly Date: Thu, 17 May 2012 12:47:29 +0200 Subject: [PATCH 068/101] Update the docs of IMPORTED_LOCATION_CONFIG to match the code. --- Source/cmTarget.cxx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx index c9bb00621..c5ef9fff1 100644 --- a/Source/cmTarget.cxx +++ b/Source/cmTarget.cxx @@ -700,9 +700,9 @@ void cmTarget::DefineProperties(cmake *cm) "Setting this property tells CMake what imported configurations are " "suitable for use when building the configuration. " "The first configuration in the list found to be provided by the " - "imported target is selected. If no matching configurations are " - "available the imported target is considered to be not found. " - "This property is ignored for non-imported targets.", + "imported target is selected. If this property is set and no matching " + "configurations are available, then the imported target is considered " + "to be not found. This property is ignored for non-imported targets.", false /* TODO: make this chained */ ); cm->DefineProperty From 66d7669a3da8ee1e898dbba7f4f5b9c744ebee5c Mon Sep 17 00:00:00 2001 From: Kitware Robot Date: Sat, 26 May 2012 00:01:04 -0400 Subject: [PATCH 069/101] CMake Nightly Date Stamp --- Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 66a439b25..0dee81a70 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -2,5 +2,5 @@ SET(CMake_VERSION_MAJOR 2) SET(CMake_VERSION_MINOR 8) SET(CMake_VERSION_PATCH 8) -SET(CMake_VERSION_TWEAK 20120525) +SET(CMake_VERSION_TWEAK 20120526) #SET(CMake_VERSION_RC 1) From b313e8ceed230d592f0b8620f6ef65b102f1c66f Mon Sep 17 00:00:00 2001 From: Kitware Robot Date: Sun, 27 May 2012 00:01:02 -0400 Subject: [PATCH 070/101] CMake Nightly Date Stamp --- Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 0dee81a70..7403d3a06 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -2,5 +2,5 @@ SET(CMake_VERSION_MAJOR 2) SET(CMake_VERSION_MINOR 8) SET(CMake_VERSION_PATCH 8) -SET(CMake_VERSION_TWEAK 20120526) +SET(CMake_VERSION_TWEAK 20120527) #SET(CMake_VERSION_RC 1) From 1e1f61d4c1db8b0d48a00e9c0d749d829e8e0661 Mon Sep 17 00:00:00 2001 From: Kitware Robot Date: Mon, 28 May 2012 00:01:03 -0400 Subject: [PATCH 071/101] CMake Nightly Date Stamp --- Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 7403d3a06..b3f689e91 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -2,5 +2,5 @@ SET(CMake_VERSION_MAJOR 2) SET(CMake_VERSION_MINOR 8) SET(CMake_VERSION_PATCH 8) -SET(CMake_VERSION_TWEAK 20120527) +SET(CMake_VERSION_TWEAK 20120528) #SET(CMake_VERSION_RC 1) From cfc11f9bff95c8332b31741056481d24e0db83f6 Mon Sep 17 00:00:00 2001 From: Fraser Hutchison Date: Mon, 28 May 2012 16:59:51 +0200 Subject: [PATCH 072/101] CPack: Fixed incorrect error log for CPACK_NSIS_MENU_LINKS. This was a pull request: https://github.com/Kitware/CMake/pull/5 Signed-off-by: Eric NOULARD --- Source/CPack/cmCPackNSISGenerator.cxx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/CPack/cmCPackNSISGenerator.cxx b/Source/CPack/cmCPackNSISGenerator.cxx index 481fd2b6e..7b5251148 100644 --- a/Source/CPack/cmCPackNSISGenerator.cxx +++ b/Source/CPack/cmCPackNSISGenerator.cxx @@ -543,8 +543,8 @@ void cmCPackNSISGenerator::CreateMenuLinks( cmOStringStream& str, { cmCPackLogger( cmCPackLog::LOG_ERROR, - "CPACK_PACKAGE_EXECUTABLES should contain pairs of and " - "." << std::endl); + "CPACK_NSIS_MENU_LINKS should contain pairs of and " + "." << std::endl); return; } From 19af2416b71dcb77d10367944270bee6d67954af Mon Sep 17 00:00:00 2001 From: Kitware Robot Date: Tue, 29 May 2012 00:01:03 -0400 Subject: [PATCH 073/101] CMake Nightly Date Stamp --- Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index b3f689e91..0412ea227 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -2,5 +2,5 @@ SET(CMake_VERSION_MAJOR 2) SET(CMake_VERSION_MINOR 8) SET(CMake_VERSION_PATCH 8) -SET(CMake_VERSION_TWEAK 20120528) +SET(CMake_VERSION_TWEAK 20120529) #SET(CMake_VERSION_RC 1) From 9ce67d30011db4528d3d0bbee36412e13cfb80cc Mon Sep 17 00:00:00 2001 From: Tobias Bieniek Date: Tue, 29 May 2012 17:45:03 +0200 Subject: [PATCH 074/101] Qt4Macros: Added support for generated resource files Using the QT4_ADD_RESOURCES() macro required the resource file to exist already for dependency scanning. This prevented the use of resource files that are generated by cmake because it needs the file before resolving the dependency. This patch adds support for generated resource files by not scanning the resource file for dependencies if it doesn't exist yet. The add_custom_command() to generate the resource file should add the dependencies on the files used by the resource file. --- Modules/Qt4Macros.cmake | 40 ++++++++++++++++++++++++---------------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/Modules/Qt4Macros.cmake b/Modules/Qt4Macros.cmake index f327125b2..f867bc51a 100644 --- a/Modules/Qt4Macros.cmake +++ b/Modules/Qt4Macros.cmake @@ -182,23 +182,31 @@ MACRO (QT4_ADD_RESOURCES outfiles ) GET_FILENAME_COMPONENT(infile ${it} ABSOLUTE) GET_FILENAME_COMPONENT(rc_path ${infile} PATH) SET(outfile ${CMAKE_CURRENT_BINARY_DIR}/qrc_${outfilename}.cxx) - # parse file for dependencies - # all files are absolute paths or relative to the location of the qrc file - FILE(READ "${infile}" _RC_FILE_CONTENTS) - STRING(REGEX MATCHALL "]*>" "" _RC_FILE "${_RC_FILE}") - IF(NOT IS_ABSOLUTE "${_RC_FILE}") - SET(_RC_FILE "${rc_path}/${_RC_FILE}") - ENDIF(NOT IS_ABSOLUTE "${_RC_FILE}") - SET(_RC_DEPENDS ${_RC_DEPENDS} "${_RC_FILE}") - ENDFOREACH(_RC_FILE) - # Since this cmake macro is doing the dependency scanning for these files, - # let's make a configured file and add it as a dependency so cmake is run - # again when dependencies need to be recomputed. - QT4_MAKE_OUTPUT_FILE("${infile}" "" "qrc.depends" out_depends) - CONFIGURE_FILE("${infile}" "${out_depends}" COPY_ONLY) + IF(EXISTS "${infile}") + # parse file for dependencies + # all files are absolute paths or relative to the location of the qrc file + FILE(READ "${infile}" _RC_FILE_CONTENTS) + STRING(REGEX MATCHALL "]*>" "" _RC_FILE "${_RC_FILE}") + IF(NOT IS_ABSOLUTE "${_RC_FILE}") + SET(_RC_FILE "${rc_path}/${_RC_FILE}") + ENDIF(NOT IS_ABSOLUTE "${_RC_FILE}") + SET(_RC_DEPENDS ${_RC_DEPENDS} "${_RC_FILE}") + ENDFOREACH(_RC_FILE) + # Since this cmake macro is doing the dependency scanning for these files, + # let's make a configured file and add it as a dependency so cmake is run + # again when dependencies need to be recomputed. + QT4_MAKE_OUTPUT_FILE("${infile}" "" "qrc.depends" out_depends) + CONFIGURE_FILE("${infile}" "${out_depends}" COPY_ONLY) + ELSE(EXISTS "${infile}") + # The .qrc file does not exist (yet). Let's add a dependency and hope + # that it will be generated later + SET(out_depends) + ENDIF(EXISTS "${infile}") + ADD_CUSTOM_COMMAND(OUTPUT ${outfile} COMMAND ${QT_RCC_EXECUTABLE} ARGS ${rcc_options} -name ${outfilename} -o ${outfile} ${infile} From ad7c80cd9f5b50f39e32f1874a3c1ec4b2e82c44 Mon Sep 17 00:00:00 2001 From: Kurtis Nusbaum Date: Tue, 29 May 2012 14:49:16 -0500 Subject: [PATCH 075/101] Added conditional for the phonon backend plugin. If on APPLE, the phonon backend plugin is set to phonon_qt7. If on WIN32, the phonon backend plugin is set to phonon_ds9. I did not add any for generic UNIXes as they could have a whole host of things. A more comprehensive script would actually attempt to detect which phonon plugins were installed. However, this is a simple fix for now that will work for most people. --- Modules/FindQt4.cmake | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Modules/FindQt4.cmake b/Modules/FindQt4.cmake index 9b646b443..226a4b1e5 100644 --- a/Modules/FindQt4.cmake +++ b/Modules/FindQt4.cmake @@ -1059,7 +1059,11 @@ IF (QT_QMAKE_EXECUTABLE AND QTVERSION) SET( QT_IMAGEFORMATS_PLUGINS qgif qjpeg qmng qico qsvg qtiff ) SET( QT_INPUTMETHODS_PLUGINS qimsw_multi ) SET( QT_MOUSEDRIVERS_PLUGINS qwstslibmousehandler ) - SET( QT_PHONON_BACKEND_PLUGINS phonon_qt7 ) + IF(APPLE) + SET( QT_PHONON_BACKEND_PLUGINS phonon_qt7 ) + ELSEIF(WIN32) + SET( QT_PHONON_BACKEND_PLUGINS phonon_ds9 ) + ENDIF() SET( QT_SCRIPT_PLUGINS qtscriptdbus ) SET( QT_SQLDRIVERS_PLUGINS qsqldb2 qsqlibase qsqlite qsqlite2 qsqlmysql qsqloci qsqlodbc qsqlpsql qsqltds ) From 48a09755a06d32481ea2a2b22ed9bf579ae8a61d Mon Sep 17 00:00:00 2001 From: Kitware Robot Date: Wed, 30 May 2012 00:01:03 -0400 Subject: [PATCH 076/101] CMake Nightly Date Stamp --- Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 0412ea227..1d7746c82 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -2,5 +2,5 @@ SET(CMake_VERSION_MAJOR 2) SET(CMake_VERSION_MINOR 8) SET(CMake_VERSION_PATCH 8) -SET(CMake_VERSION_TWEAK 20120529) +SET(CMake_VERSION_TWEAK 20120530) #SET(CMake_VERSION_RC 1) From f1eee26be3252e7486a54f219ef8b5e345120fc5 Mon Sep 17 00:00:00 2001 From: Kitware Robot Date: Thu, 31 May 2012 00:01:02 -0400 Subject: [PATCH 077/101] CMake Nightly Date Stamp --- Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 1d7746c82..73a46f2c6 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -2,5 +2,5 @@ SET(CMake_VERSION_MAJOR 2) SET(CMake_VERSION_MINOR 8) SET(CMake_VERSION_PATCH 8) -SET(CMake_VERSION_TWEAK 20120530) +SET(CMake_VERSION_TWEAK 20120531) #SET(CMake_VERSION_RC 1) From 8b2fb3310b4b8f1d218e479e3f5eafe04e8b8077 Mon Sep 17 00:00:00 2001 From: Charlie Sharpsteen Date: Wed, 30 May 2012 10:29:26 -0700 Subject: [PATCH 078/101] Mac: Add guards to CMAKE_FIND_FRAMEWORK and CMAKE_FIND_APPBUNDLE defaults The default for `CMAKE_FIND_FRAMEWORK`, defined in `Darwin.cmake` and `Darwin-icc.cmake`, is now guarded so that it will not override command line arguments passed by users. Similarly for `CMAKE_FIND_APPBUNDLE` --- Modules/Platform/Darwin-icc.cmake | 9 ++++++--- Modules/Platform/Darwin.cmake | 9 ++++++--- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/Modules/Platform/Darwin-icc.cmake b/Modules/Platform/Darwin-icc.cmake index e675c0e92..b592e5f55 100644 --- a/Modules/Platform/Darwin-icc.cmake +++ b/Modules/Platform/Darwin-icc.cmake @@ -106,7 +106,9 @@ SET(CMAKE_Fortran_CREATE_SHARED_MODULE # default to searching for frameworks first -SET(CMAKE_FIND_FRAMEWORK FIRST) +IF(NOT DEFINED CMAKE_FIND_FRAMEWORK) + SET(CMAKE_FIND_FRAMEWORK FIRST) +ENDIF() # set up the default search directories for frameworks SET(CMAKE_SYSTEM_FRAMEWORK_PATH ~/Library/Frameworks @@ -115,7 +117,9 @@ SET(CMAKE_SYSTEM_FRAMEWORK_PATH /System/Library/Frameworks) # default to searching for application bundles first -SET(CMAKE_FIND_APPBUNDLE FIRST) +IF(NOT DEFINED CMAKE_FIND_APPBUNDLE) + SET(CMAKE_FIND_APPBUNDLE FIRST) +ENDIF() # set up the default search directories for application bundles SET(CMAKE_SYSTEM_APPBUNDLE_PATH ~/Applications @@ -125,4 +129,3 @@ SET(CMAKE_SYSTEM_APPBUNDLE_PATH INCLUDE(Platform/UnixPaths) SET(CMAKE_SYSTEM_INCLUDE_PATH ${CMAKE_SYSTEM_INCLUDE_PATH} /sw/include) SET(CMAKE_SYSTEM_LIBRARY_PATH ${CMAKE_SYSTEM_LIBRARY_PATH} /sw/lib) - diff --git a/Modules/Platform/Darwin.cmake b/Modules/Platform/Darwin.cmake index a19bfe77f..eff07b295 100644 --- a/Modules/Platform/Darwin.cmake +++ b/Modules/Platform/Darwin.cmake @@ -228,9 +228,10 @@ SET(CMAKE_CXX_CREATE_MACOSX_FRAMEWORK " -o ") - # default to searching for frameworks first -SET(CMAKE_FIND_FRAMEWORK FIRST) +IF(NOT DEFINED CMAKE_FIND_FRAMEWORK) + SET(CMAKE_FIND_FRAMEWORK FIRST) +ENDIF() # set up the default search directories for frameworks SET(CMAKE_SYSTEM_FRAMEWORK_PATH ~/Library/Frameworks @@ -239,7 +240,9 @@ SET(CMAKE_SYSTEM_FRAMEWORK_PATH /System/Library/Frameworks) # default to searching for application bundles first -SET(CMAKE_FIND_APPBUNDLE FIRST) +IF(NOT DEFINED CMAKE_FIND_APPBUNDLE) + SET(CMAKE_FIND_APPBUNDLE FIRST) +ENDIF() # set up the default search directories for application bundles SET(_apps_paths) FOREACH(_path From ee26019bd433020b8aad3c3a70bcb537e03b04ba Mon Sep 17 00:00:00 2001 From: Mario Bensi Date: Thu, 31 May 2012 08:47:10 +0200 Subject: [PATCH 079/101] Add FindLibLZMA Module --- Modules/FindLibLZMA.cmake | 69 +++++++++++++++++++ Tests/CMakeOnly/AllFindModules/CMakeLists.txt | 2 +- 2 files changed, 70 insertions(+), 1 deletion(-) create mode 100644 Modules/FindLibLZMA.cmake diff --git a/Modules/FindLibLZMA.cmake b/Modules/FindLibLZMA.cmake new file mode 100644 index 000000000..729f5ce73 --- /dev/null +++ b/Modules/FindLibLZMA.cmake @@ -0,0 +1,69 @@ +# - Find LibLZMA +# Find LibLZMA headers and library +# +# LIBLZMA_FOUND - True if liblzma is found. +# LIBLZMA_INCLUDE_DIRS - Directory where liblzma headers are located. +# LIBLZMA_LIBRARIES - Lzma libraries to link against. +# LIBLZMA_HAS_AUTO_DECODER - True if lzma_auto_decoder() is found (required). +# LIBLZMA_HAS_EASY_ENCODER - True if lzma_easy_encoder() is found (required). +# LIBLZMA_HAS_LZMA_PRESET - True if lzma_lzma_preset() is found (required). +# LIBLZMA_VERSION_MAJOR - The major version of lzma +# LIBLZMA_VERSION_MINOR - The minor version of lzma +# LIBLZMA_VERSION_PATCH - The patch version of lzma +# LIBLZMA_VERSION_STRING - version number as a string (ex: "5.0.3") + +#============================================================================= +# Copyright 2008 Per Øyvind Karlsen +# Copyright 2009 Alexander Neundorf +# Copyright 2009 Helio Chissini de Castro +# Copyright 2012 Mario Bensi +# +# Distributed under the OSI-approved BSD License (the "License"); +# see accompanying file Copyright.txt for details. +# +# This software is distributed WITHOUT ANY WARRANTY; without even the +# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. +# See the License for more information. +#============================================================================= +# (To distribute this file outside of CMake, substitute the full +# License text for the above reference.) + + +FIND_PATH(LIBLZMA_INCLUDE_DIR lzma.h ) +FIND_LIBRARY(LIBLZMA_LIBRARY lzma) + +IF(LIBLZMA_INCLUDE_DIR AND EXISTS "${LIBLZMA_INCLUDE_DIR}/lzma/version.h") + FILE(READ "${LIBLZMA_INCLUDE_DIR}/lzma/version.h" LIBLZMA_HEADER_CONTENTS) + + STRING(REGEX REPLACE ".*#define LZMA_VERSION_MAJOR ([0-9]+).*" "\\1" LIBLZMA_VERSION_MAJOR "${LIBLZMA_HEADER_CONTENTS}") + STRING(REGEX REPLACE ".*#define LZMA_VERSION_MINOR ([0-9]+).*" "\\1" LIBLZMA_VERSION_MINOR "${LIBLZMA_HEADER_CONTENTS}") + STRING(REGEX REPLACE ".*#define LZMA_VERSION_PATCH ([0-9]+).*" "\\1" LIBLZMA_VERSION_PATCH "${LIBLZMA_HEADER_CONTENTS}") + + SET(LIBLZMA_VERSION_STRING "${LIBLZMA_VERSION_MAJOR}.${LIBLZMA_VERSION_MINOR}.${LIBLZMA_VERSION_PATCH}") +ENDIF(LIBLZMA_INCLUDE_DIR AND EXISTS "${LIBLZMA_INCLUDE_DIR}/lzma/version.h") + +# We're using new code known now as XZ, even library still been called LZMA +# it can be found in http://tukaani.org/xz/ +# Avoid using old codebase +IF (LIBLZMA_LIBRARY) + INCLUDE(CheckLibraryExists) + CHECK_LIBRARY_EXISTS(${LIBLZMA_LIBRARY} lzma_auto_decoder "" LIBLZMA_HAS_AUTO_DECODER) + CHECK_LIBRARY_EXISTS(${LIBLZMA_LIBRARY} lzma_easy_encoder "" LIBLZMA_HAS_EASY_ENCODER) + CHECK_LIBRARY_EXISTS(${LIBLZMA_LIBRARY} lzma_lzma_preset "" LIBLZMA_HAS_LZMA_PRESET) +ENDIF (LIBLZMA_LIBRARY) + +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(LibLZMA REQUIRED_VARS LIBLZMA_INCLUDE_DIR + LIBLZMA_LIBRARY + LIBLZMA_HAS_AUTO_DECODER + LIBLZMA_HAS_EASY_ENCODER + LIBLZMA_HAS_LZMA_PRESET + VERSION_VAR LIBLZMA_VERSION_STRING + ) + +IF (LIBLZMA_FOUND) + SET(LIBLZMA_LIBRARIES ${LIBLZMA_LIBRARY}) + SET(LIBLZMA_INCLUDE_DIRS ${LIBLZMA_INCLUDE_DIR}) +ENDIF (LIBLZMA_FOUND) + +MARK_AS_ADVANCED( LIBLZMA_INCLUDE_DIR LIBLZMA_LIBRARY ) diff --git a/Tests/CMakeOnly/AllFindModules/CMakeLists.txt b/Tests/CMakeOnly/AllFindModules/CMakeLists.txt index fc65e58ff..551cee3bc 100644 --- a/Tests/CMakeOnly/AllFindModules/CMakeLists.txt +++ b/Tests/CMakeOnly/AllFindModules/CMakeLists.txt @@ -71,7 +71,7 @@ endmacro(check_version_string) # reported. foreach(VTEST ALSA ARMADILLO BZIP2 CUPS CURL EXPAT FREETYPE GETTEXT GIT HSPELL - JASPER LIBXML2 LIBXSLT PERL PKG_CONFIG PostgreSQL TIFF ZLIB) + JASPER LIBLZMA LIBXML2 LIBXSLT PERL PKG_CONFIG PostgreSQL TIFF ZLIB) check_version_string(${VTEST} ${VTEST}_VERSION_STRING) endforeach(VTEST) From e200ee6ece3d0345804f8eb94fbda2bd5df9272f Mon Sep 17 00:00:00 2001 From: Kitware Robot Date: Fri, 1 Jun 2012 00:01:03 -0400 Subject: [PATCH 080/101] CMake Nightly Date Stamp --- Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 73a46f2c6..632e9b80e 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -2,5 +2,5 @@ SET(CMake_VERSION_MAJOR 2) SET(CMake_VERSION_MINOR 8) SET(CMake_VERSION_PATCH 8) -SET(CMake_VERSION_TWEAK 20120531) +SET(CMake_VERSION_TWEAK 20120601) #SET(CMake_VERSION_RC 1) From 076ab5202a631ac7c8fd6bc84554834ddff57933 Mon Sep 17 00:00:00 2001 From: Kitware Robot Date: Sat, 2 Jun 2012 00:01:02 -0400 Subject: [PATCH 081/101] CMake Nightly Date Stamp --- Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 632e9b80e..8afc51eba 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -2,5 +2,5 @@ SET(CMake_VERSION_MAJOR 2) SET(CMake_VERSION_MINOR 8) SET(CMake_VERSION_PATCH 8) -SET(CMake_VERSION_TWEAK 20120601) +SET(CMake_VERSION_TWEAK 20120602) #SET(CMake_VERSION_RC 1) From a0700ba26c5e26bfc514121a14688731a3cd0445 Mon Sep 17 00:00:00 2001 From: Peter Kuemmel Date: Sat, 2 Jun 2012 19:58:03 +0200 Subject: [PATCH 082/101] VC Express doesn't support folders, ignore USE_FOLDER property --- Source/cmGlobalVisualStudio10Generator.cxx | 6 ++++++ Source/cmGlobalVisualStudio10Generator.h | 3 +++ 2 files changed, 9 insertions(+) diff --git a/Source/cmGlobalVisualStudio10Generator.cxx b/Source/cmGlobalVisualStudio10Generator.cxx index 18a786d78..947a1c99d 100644 --- a/Source/cmGlobalVisualStudio10Generator.cxx +++ b/Source/cmGlobalVisualStudio10Generator.cxx @@ -278,3 +278,9 @@ void cmGlobalVisualStudio10Generator::PathTooLong( this->LongestSource.SourceRel = sfRel; } } + +//---------------------------------------------------------------------------- +bool cmGlobalVisualStudio10Generator::UseFolderProperty() +{ + return IsExpressEdition() ? false : cmGlobalGenerator::UseFolderProperty(); +} diff --git a/Source/cmGlobalVisualStudio10Generator.h b/Source/cmGlobalVisualStudio10Generator.h index 423656352..060cdfff3 100644 --- a/Source/cmGlobalVisualStudio10Generator.h +++ b/Source/cmGlobalVisualStudio10Generator.h @@ -88,6 +88,9 @@ protected: std::string PlatformToolset; bool ExpressEdition; + + bool UseFolderProperty(); + private: struct LongestSourcePath { From c645c1fd96479e49f43dc40589c01b8cbf5e88d5 Mon Sep 17 00:00:00 2001 From: Kitware Robot Date: Sun, 3 Jun 2012 00:01:04 -0400 Subject: [PATCH 083/101] CMake Nightly Date Stamp --- Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 8afc51eba..67729dae0 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -2,5 +2,5 @@ SET(CMake_VERSION_MAJOR 2) SET(CMake_VERSION_MINOR 8) SET(CMake_VERSION_PATCH 8) -SET(CMake_VERSION_TWEAK 20120602) +SET(CMake_VERSION_TWEAK 20120603) #SET(CMake_VERSION_RC 1) From 1ccbfdebb99b167e1da1d9aa8a072adaea6325c6 Mon Sep 17 00:00:00 2001 From: Kitware Robot Date: Mon, 4 Jun 2012 00:01:02 -0400 Subject: [PATCH 084/101] CMake Nightly Date Stamp --- Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 67729dae0..2e95a197d 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -2,5 +2,5 @@ SET(CMake_VERSION_MAJOR 2) SET(CMake_VERSION_MINOR 8) SET(CMake_VERSION_PATCH 8) -SET(CMake_VERSION_TWEAK 20120603) +SET(CMake_VERSION_TWEAK 20120604) #SET(CMake_VERSION_RC 1) From 2c04bc00a4e38fc1b8f15bf950c8c2191ba24eac Mon Sep 17 00:00:00 2001 From: Stephen Kelly Date: Sun, 6 May 2012 15:07:19 +0200 Subject: [PATCH 085/101] Move the EscapeJSON method to a sharable location. --- Source/cmGlobalGenerator.cxx | 13 +++++++++++++ Source/cmGlobalGenerator.h | 2 ++ Source/cmGlobalUnixMakefileGenerator3.cxx | 21 ++++++--------------- 3 files changed, 21 insertions(+), 15 deletions(-) diff --git a/Source/cmGlobalGenerator.cxx b/Source/cmGlobalGenerator.cxx index b06cdb4ee..f8830417d 100644 --- a/Source/cmGlobalGenerator.cxx +++ b/Source/cmGlobalGenerator.cxx @@ -2474,3 +2474,16 @@ void cmGlobalGenerator::WriteSummary(cmTarget* target) cmSystemTools::RemoveFile(file.c_str()); } } + +//---------------------------------------------------------------------------- +// static +std::string cmGlobalGenerator::EscapeJSON(const std::string& s) { + std::string result; + for (std::string::size_type i = 0; i < s.size(); ++i) { + if (s[i] == '"' || s[i] == '\\') { + result += '\\'; + } + result += s[i]; + } + return result; +} diff --git a/Source/cmGlobalGenerator.h b/Source/cmGlobalGenerator.h index 5254b89a6..8535edc48 100644 --- a/Source/cmGlobalGenerator.h +++ b/Source/cmGlobalGenerator.h @@ -280,6 +280,8 @@ public: /** Generate an .rule file path for a given command output. */ virtual std::string GenerateRuleFile(std::string const& output) const; + static std::string EscapeJSON(const std::string& s); + protected: typedef std::vector GeneratorVector; // for a project collect all its targets by following depend diff --git a/Source/cmGlobalUnixMakefileGenerator3.cxx b/Source/cmGlobalUnixMakefileGenerator3.cxx index e63de9cae..ebd82194c 100644 --- a/Source/cmGlobalUnixMakefileGenerator3.cxx +++ b/Source/cmGlobalUnixMakefileGenerator3.cxx @@ -103,18 +103,6 @@ cmGlobalUnixMakefileGenerator3 } } -//---------------------------------------------------------------------------- -std::string EscapeJSON(const std::string& s) { - std::string result; - for (std::string::size_type i = 0; i < s.size(); ++i) { - if (s[i] == '"' || s[i] == '\\') { - result += '\\'; - } - result += s[i]; - } - return result; -} - void cmGlobalUnixMakefileGenerator3::Generate() { // first do superclass method @@ -179,11 +167,14 @@ void cmGlobalUnixMakefileGenerator3::AddCXXCompileCommand( *this->CommandDatabase << "," << std::endl; } *this->CommandDatabase << "{" << std::endl - << " \"directory\": \"" << EscapeJSON(workingDirectory) << "\"," + << " \"directory\": \"" + << cmGlobalGenerator::EscapeJSON(workingDirectory) << "\"," << std::endl - << " \"command\": \"" << EscapeJSON(compileCommand) << "\"," + << " \"command\": \"" << + cmGlobalGenerator::EscapeJSON(compileCommand) << "\"," << std::endl - << " \"file\": \"" << EscapeJSON(sourceFile) << "\"" + << " \"file\": \"" << + cmGlobalGenerator::EscapeJSON(sourceFile) << "\"" << std::endl << "}"; } From 8778357898327c1e4893d8dc140fc0e63331e36b Mon Sep 17 00:00:00 2001 From: Stephen Kelly Date: Wed, 9 May 2012 22:55:51 +0200 Subject: [PATCH 086/101] Add newline to the output. --- Tests/CMakeLib/run_compile_commands.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tests/CMakeLib/run_compile_commands.cxx b/Tests/CMakeLib/run_compile_commands.cxx index 3f141c537..434cbee99 100644 --- a/Tests/CMakeLib/run_compile_commands.cxx +++ b/Tests/CMakeLib/run_compile_commands.cxx @@ -35,7 +35,7 @@ private: void ParseTranslationUnits() { this->TranslationUnits = TranslationUnitsType(); - ExpectOrDie('[', "at start of compile command file"); + ExpectOrDie('[', "at start of compile command file\n"); do { ParseTranslationUnit(); From db839bec7d076b54c5e9ad0d19386a26557a509e Mon Sep 17 00:00:00 2001 From: Stephen Kelly Date: Wed, 9 May 2012 23:47:37 +0200 Subject: [PATCH 087/101] Make the CMAKE_EXPORT_COMPILE_COMMANDS option work with Ninja. --- Modules/CMakeGenericSystem.cmake | 6 +++++ Source/cmGlobalNinjaGenerator.cxx | 42 +++++++++++++++++++++++++++++++ Source/cmGlobalNinjaGenerator.h | 6 +++++ Source/cmNinjaTargetGenerator.cxx | 30 ++++++++++++++++++++++ Tests/CMakeLists.txt | 2 +- 5 files changed, 85 insertions(+), 1 deletion(-) diff --git a/Modules/CMakeGenericSystem.cmake b/Modules/CMakeGenericSystem.cmake index c73396954..0ccbfac56 100644 --- a/Modules/CMakeGenericSystem.cmake +++ b/Modules/CMakeGenericSystem.cmake @@ -60,6 +60,12 @@ IF(CMAKE_GENERATOR MATCHES "Makefiles") ENDIF(CMAKE_GENERATOR MATCHES "Unix Makefiles") ENDIF(CMAKE_GENERATOR MATCHES "Makefiles") +IF(CMAKE_GENERATOR MATCHES "Ninja") + SET(CMAKE_EXPORT_COMPILE_COMMANDS OFF CACHE BOOL + "Enable/Disable output of compile commands during generation." + ) + MARK_AS_ADVANCED(CMAKE_EXPORT_COMPILE_COMMANDS) +ENDIF(CMAKE_GENERATOR MATCHES "Ninja") # GetDefaultWindowsPrefixBase # diff --git a/Source/cmGlobalNinjaGenerator.cxx b/Source/cmGlobalNinjaGenerator.cxx index 328706cf0..0e89fab74 100644 --- a/Source/cmGlobalNinjaGenerator.cxx +++ b/Source/cmGlobalNinjaGenerator.cxx @@ -341,6 +341,7 @@ cmGlobalNinjaGenerator::cmGlobalNinjaGenerator() : cmGlobalGenerator() , BuildFileStream(0) , RulesFileStream(0) + , CompileCommandsStream(0) , Rules() , AllDependencies() { @@ -390,6 +391,7 @@ void cmGlobalNinjaGenerator::Generate() this->BuildFileStream->setstate(std::ios_base::failbit); } + this->CloseCompileCommandsStream(); this->CloseRulesFileStream(); this->CloseBuildFileStream(); } @@ -623,6 +625,46 @@ void cmGlobalNinjaGenerator::CloseRulesFileStream() } } +void cmGlobalNinjaGenerator::AddCXXCompileCommand( + const std::string &commandLine, + const std::string &sourceFile) +{ + // Compute Ninja's build file path. + std::string buildFileDir = + this->GetCMakeInstance()->GetHomeOutputDirectory(); + if (!this->CompileCommandsStream) + { + std::string buildFilePath = buildFileDir + "/compile_commands.json"; + + // Get a stream where to generate things. + this->CompileCommandsStream = + new cmGeneratedFileStream(buildFilePath.c_str()); + *this->CompileCommandsStream << "["; + } else { + *this->CompileCommandsStream << "," << std::endl; + } + + *this->CompileCommandsStream << "\n{\n" + << " \"directory\": \"" + << cmGlobalGenerator::EscapeJSON(buildFileDir) << "\",\n" + << " \"command\": \"" + << cmGlobalGenerator::EscapeJSON(commandLine) << "\",\n" + << " \"file\": \"" + << cmGlobalGenerator::EscapeJSON(sourceFile) << "\"\n" + << "}"; +} + +void cmGlobalNinjaGenerator::CloseCompileCommandsStream() +{ + if (this->CompileCommandsStream) + { + *this->CompileCommandsStream << "\n]"; + delete this->CompileCommandsStream; + this->CompileCommandsStream = 0; + } + +} + void cmGlobalNinjaGenerator::WriteDisclaimer(std::ostream& os) { os diff --git a/Source/cmGlobalNinjaGenerator.h b/Source/cmGlobalNinjaGenerator.h index e652972ee..7b6b9b7ee 100644 --- a/Source/cmGlobalNinjaGenerator.h +++ b/Source/cmGlobalNinjaGenerator.h @@ -213,6 +213,9 @@ public: cmGeneratedFileStream* GetRulesFileStream() const { return this->RulesFileStream; } + void AddCXXCompileCommand(const std::string &commandLine, + const std::string &sourceFile); + /** * Add a rule to the generated build system. * Call WriteRule() behind the scene but perform some check before like: @@ -254,6 +257,8 @@ private: void OpenBuildFileStream(); void CloseBuildFileStream(); + void CloseCompileCommandsStream(); + void OpenRulesFileStream(); void CloseRulesFileStream(); @@ -311,6 +316,7 @@ private: /// The file containing the rule statements. (The action attached to each /// edge of the compilation DAG). cmGeneratedFileStream* RulesFileStream; + cmGeneratedFileStream* CompileCommandsStream; /// The type used to store the set of rules added to the generated build /// system. diff --git a/Source/cmNinjaTargetGenerator.cxx b/Source/cmNinjaTargetGenerator.cxx index 80007f107..7c581543d 100644 --- a/Source/cmNinjaTargetGenerator.cxx +++ b/Source/cmNinjaTargetGenerator.cxx @@ -487,6 +487,36 @@ cmNinjaTargetGenerator vars["TARGET_PDB"] = this->GetLocalGenerator()->ConvertToOutputFormat( this->GetTargetPDB().c_str(), cmLocalGenerator::SHELL); + if(this->Makefile->IsOn("CMAKE_EXPORT_COMPILE_COMMANDS")) + { + cmLocalGenerator::RuleVariables compileObjectVars; + std::string lang = language; + compileObjectVars.Language = lang.c_str(); + compileObjectVars.Source = sourceFileName.c_str(); + compileObjectVars.Object = objectFileName.c_str(); + compileObjectVars.Flags = vars["FLAGS"].c_str(); + compileObjectVars.Defines = vars["DEFINES"].c_str(); + + // Rule for compiling object file. + std::string compileCmdVar = "CMAKE_"; + compileCmdVar += language; + compileCmdVar += "_COMPILE_OBJECT"; + std::string compileCmd = + this->GetMakefile()->GetRequiredDefinition(compileCmdVar.c_str()); + std::vector compileCmds; + cmSystemTools::ExpandListArgument(compileCmd, compileCmds); + + for (std::vector::iterator i = compileCmds.begin(); + i != compileCmds.end(); ++i) + this->GetLocalGenerator()->ExpandRuleVariables(*i, compileObjectVars); + + std::string cmdLine = + this->GetLocalGenerator()->BuildCommandLine(compileCmds); + + this->GetGlobalGenerator()->AddCXXCompileCommand(cmdLine, + sourceFileName); + } + cmGlobalNinjaGenerator::WriteBuild(this->GetBuildFileStream(), comment, rule, diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index 5972c195c..ffa5bcb3e 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -47,7 +47,7 @@ CONFIGURE_FILE(${CMake_SOURCE_DIR}/Tests/EnforceConfig.cmake.in # Testing IF(BUILD_TESTING) - IF("${CMAKE_TEST_GENERATOR}" MATCHES "Unix Makefiles") + IF("${CMAKE_TEST_GENERATOR}" MATCHES "Unix Makefiles" OR "${CMAKE_TEST_GENERATOR}" MATCHES Ninja) SET(TEST_CompileCommandOutput 1) ENDIF() From fbaddf4e403af327d263e347e666396a08fbdd10 Mon Sep 17 00:00:00 2001 From: Stephen Kelly Date: Wed, 23 May 2012 18:08:23 +0200 Subject: [PATCH 088/101] Escape the source file to be compiled if required. Whitespaces in paths can otherwise cause invalid command lines to be generated. --- Source/cmNinjaTargetGenerator.cxx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Source/cmNinjaTargetGenerator.cxx b/Source/cmNinjaTargetGenerator.cxx index 7c581543d..e419a4d54 100644 --- a/Source/cmNinjaTargetGenerator.cxx +++ b/Source/cmNinjaTargetGenerator.cxx @@ -492,7 +492,10 @@ cmNinjaTargetGenerator cmLocalGenerator::RuleVariables compileObjectVars; std::string lang = language; compileObjectVars.Language = lang.c_str(); - compileObjectVars.Source = sourceFileName.c_str(); + std::string escapedSourceFileName = + this->LocalGenerator->ConvertToOutputFormat( + sourceFileName.c_str(), cmLocalGenerator::SHELL); + compileObjectVars.Source = escapedSourceFileName.c_str(); compileObjectVars.Object = objectFileName.c_str(); compileObjectVars.Flags = vars["FLAGS"].c_str(); compileObjectVars.Defines = vars["DEFINES"].c_str(); From 3545645c1b01f609496a4fc41e20419dedbbd98d Mon Sep 17 00:00:00 2001 From: Stephen Kelly Date: Tue, 5 Jun 2012 00:12:16 +0200 Subject: [PATCH 089/101] Exclude the CompileCommandOutput test on WIN32. --- Tests/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index ffa5bcb3e..ef707e45a 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -47,7 +47,7 @@ CONFIGURE_FILE(${CMake_SOURCE_DIR}/Tests/EnforceConfig.cmake.in # Testing IF(BUILD_TESTING) - IF("${CMAKE_TEST_GENERATOR}" MATCHES "Unix Makefiles" OR "${CMAKE_TEST_GENERATOR}" MATCHES Ninja) + IF("${CMAKE_TEST_GENERATOR}" MATCHES "Unix Makefiles" OR ("${CMAKE_TEST_GENERATOR}" MATCHES Ninja AND NOT WIN32)) SET(TEST_CompileCommandOutput 1) ENDIF() From 55cadb68066dfd4dc0c053ff25560adfce9b6d56 Mon Sep 17 00:00:00 2001 From: Kitware Robot Date: Tue, 5 Jun 2012 00:01:05 -0400 Subject: [PATCH 090/101] CMake Nightly Date Stamp --- Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 2e95a197d..1eb42beba 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -2,5 +2,5 @@ SET(CMake_VERSION_MAJOR 2) SET(CMake_VERSION_MINOR 8) SET(CMake_VERSION_PATCH 8) -SET(CMake_VERSION_TWEAK 20120604) +SET(CMake_VERSION_TWEAK 20120605) #SET(CMake_VERSION_RC 1) From 7321c94e593ff50714d20d99b7042e9f96ee057e Mon Sep 17 00:00:00 2001 From: Eric NOULARD Date: Tue, 5 Jun 2012 10:20:43 +0200 Subject: [PATCH 091/101] CPackRPM: avoid leakage of RPM directive from one component to another. Fixes #0013248 Inspired-By: Sergei Golubchik --- Modules/CPackRPM.cmake | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Modules/CPackRPM.cmake b/Modules/CPackRPM.cmake index cba746fc5..ae9351273 100644 --- a/Modules/CPackRPM.cmake +++ b/Modules/CPackRPM.cmake @@ -488,7 +488,10 @@ FOREACH(_RPM_SPEC_HEADER URL REQUIRES SUGGESTS PROVIDES OBSOLETES PREFIX CONFLIC MESSAGE("CPackRPM:Debug: User defined ${_PACKAGE_HEADER_NAME}:\n ${CPACK_RPM_PACKAGE_${_RPM_SPEC_HEADER}_TMP}") ENDIF(CPACK_RPM_PACKAGE_DEBUG) SET(TMP_RPM_${_RPM_SPEC_HEADER} "${_PACKAGE_HEADER_NAME}: ${CPACK_RPM_PACKAGE_${_RPM_SPEC_HEADER}_TMP}") -ENDIF(CPACK_RPM_PACKAGE_${_RPM_SPEC_HEADER}_TMP) + ELSE(CPACK_RPM_PACKAGE_${_RPM_SPEC_HEADER}_TMP) + # Do not forget to unset previously set header (from previous component) + UNSET(TMP_RPM_${_RPM_SPEC_HEADER}) + ENDIF(CPACK_RPM_PACKAGE_${_RPM_SPEC_HEADER}_TMP) ENDFOREACH(_RPM_SPEC_HEADER) # CPACK_RPM_SPEC_INSTALL_POST From 9d145b0998f21ae6d0571c5b6a7ab0168722df7c Mon Sep 17 00:00:00 2001 From: Rolf Eike Beer Date: Tue, 5 Jun 2012 20:02:58 +0200 Subject: [PATCH 092/101] FindPythonLibs: honor EXACT version specification (#13216) --- Modules/FindPythonLibs.cmake | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Modules/FindPythonLibs.cmake b/Modules/FindPythonLibs.cmake index 478ebcb0b..11ff19623 100644 --- a/Modules/FindPythonLibs.cmake +++ b/Modules/FindPythonLibs.cmake @@ -45,13 +45,19 @@ IF(PythonLibs_FIND_VERSION) STRING(REGEX REPLACE "^([0-9]+\\.[0-9]+).*" "\\1" _PYTHON_FIND_MAJ_MIN "${PythonLibs_FIND_VERSION}") STRING(REGEX REPLACE "^([0-9]+).*" "\\1" _PYTHON_FIND_MAJ "${_PYTHON_FIND_MAJ_MIN}") UNSET(_PYTHON_FIND_OTHER_VERSIONS) - IF(NOT PythonLibs_FIND_VERSION_EXACT) + IF(PythonLibs_FIND_VERSION_EXACT) + IF(_PYTHON_FIND_MAJ_MIN STREQUAL PythonLibs_FIND_VERSION) + SET(_PYTHON_FIND_OTHER_VERSIONS "${PythonLibs_FIND_VERSION}") + ELSE(_PYTHON_FIND_MAJ_MIN STREQUAL PythonLibs_FIND_VERSION) + SET(_PYTHON_FIND_OTHER_VERSIONS "${PythonLibs_FIND_VERSION}" "${_PYTHON_FIND_MAJ_MIN}") + ENDIF(_PYTHON_FIND_MAJ_MIN STREQUAL PythonLibs_FIND_VERSION) + ELSE(PythonLibs_FIND_VERSION_EXACT) FOREACH(_PYTHON_V ${_PYTHON${_PYTHON_FIND_MAJ}_VERSIONS}) IF(NOT _PYTHON_V VERSION_LESS _PYTHON_FIND_MAJ_MIN) LIST(APPEND _PYTHON_FIND_OTHER_VERSIONS ${_PYTHON_V}) ENDIF() ENDFOREACH() - ENDIF(NOT PythonLibs_FIND_VERSION_EXACT) + ENDIF(PythonLibs_FIND_VERSION_EXACT) UNSET(_PYTHON_FIND_MAJ_MIN) UNSET(_PYTHON_FIND_MAJ) ELSE(PythonLibs_FIND_VERSION MATCHES "^[0-9]+\\.[0-9]+(\\.[0-9]+.*)?$") From 7c912af2d06caeb0632b3f26cc9ee9bd8f0e6076 Mon Sep 17 00:00:00 2001 From: Brad King Date: Tue, 5 Jun 2012 16:01:54 -0400 Subject: [PATCH 093/101] FindBZip2: Search locations in GnuWin32 registry The GnuWin32 "bzip2" installer stores in the registry key HKEY_LOCAL_MACHINE\SOFTWARE\GnuWin32\Bzip2 an "InstallPath" value. Use this entry as a search location. --- Modules/FindBZip2.cmake | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Modules/FindBZip2.cmake b/Modules/FindBZip2.cmake index 713019259..ce7f2555d 100644 --- a/Modules/FindBZip2.cmake +++ b/Modules/FindBZip2.cmake @@ -22,11 +22,15 @@ # (To distribute this file outside of CMake, substitute the full # License text for the above reference.) -FIND_PATH(BZIP2_INCLUDE_DIR bzlib.h ) +SET(_BZIP2_PATHS PATHS + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\GnuWin32\\Bzip2;InstallPath]" + ) + +FIND_PATH(BZIP2_INCLUDE_DIR bzlib.h ${_BZIP2_PATHS} PATH_SUFFIXES include) IF (NOT BZIP2_LIBRARIES) - FIND_LIBRARY(BZIP2_LIBRARY_RELEASE NAMES bz2 bzip2 ) - FIND_LIBRARY(BZIP2_LIBRARY_DEBUG NAMES bzip2d ) + FIND_LIBRARY(BZIP2_LIBRARY_RELEASE NAMES bz2 bzip2 ${_BZIP2_PATHS} PATH_SUFFIXES lib) + FIND_LIBRARY(BZIP2_LIBRARY_DEBUG NAMES bzip2d ${_BZIP2_PATHS} PATH_SUFFIXES lib) INCLUDE(${CMAKE_CURRENT_LIST_DIR}/SelectLibraryConfigurations.cmake) SELECT_LIBRARY_CONFIGURATIONS(BZIP2) From 4f170e25752c995d8c51391cea60d86b549ea150 Mon Sep 17 00:00:00 2001 From: "Daniel R. Gomez" Date: Tue, 5 Jun 2012 16:19:06 -0400 Subject: [PATCH 094/101] KWSys: Fix hashtable prime list on g++ 2.9 (#13273) Building CMake with g++ 2.9-aix51-020209 on an AIX 5.3 system gives: cmsys/hashtable.hxx: In function `const long unsigned int *cmsys::get_stl_prime_list ()': cmsys/hashtable.hxx:399: warning: sorry: semantics of inline function static data `const long unsigned int _stl_prime_list[31]' are wrong (you'll wind up with multiple copies) cmsys/hashtable.hxx:399: warning: you can work around this by removing the initializer Give get_stl_prime_list internal linkage. --- Source/kwsys/hashtable.hxx.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/kwsys/hashtable.hxx.in b/Source/kwsys/hashtable.hxx.in index db52fc846..c83550304 100644 --- a/Source/kwsys/hashtable.hxx.in +++ b/Source/kwsys/hashtable.hxx.in @@ -394,7 +394,7 @@ enum { _stl_num_primes = 31 }; // create a function with a static local to that function that returns // the static -inline const unsigned long* get_stl_prime_list() { +static inline const unsigned long* get_stl_prime_list() { static const unsigned long _stl_prime_list[_stl_num_primes] = { From eb53bc27733e5762906eb251184df317f1c4664d Mon Sep 17 00:00:00 2001 From: Kitware Robot Date: Wed, 6 Jun 2012 00:01:04 -0400 Subject: [PATCH 095/101] CMake Nightly Date Stamp --- Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 1eb42beba..1fb7bb7ac 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -2,5 +2,5 @@ SET(CMake_VERSION_MAJOR 2) SET(CMake_VERSION_MINOR 8) SET(CMake_VERSION_PATCH 8) -SET(CMake_VERSION_TWEAK 20120605) +SET(CMake_VERSION_TWEAK 20120606) #SET(CMake_VERSION_RC 1) From 5ed6a36cc93692ce1e5debea22d61bfd5dbfbbc6 Mon Sep 17 00:00:00 2001 From: Kitware Robot Date: Thu, 7 Jun 2012 00:01:05 -0400 Subject: [PATCH 096/101] CMake Nightly Date Stamp --- Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 1fb7bb7ac..b43affd1e 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -2,5 +2,5 @@ SET(CMake_VERSION_MAJOR 2) SET(CMake_VERSION_MINOR 8) SET(CMake_VERSION_PATCH 8) -SET(CMake_VERSION_TWEAK 20120606) +SET(CMake_VERSION_TWEAK 20120607) #SET(CMake_VERSION_RC 1) From 03deea00bc55210f2de47805d2abbe7110efac38 Mon Sep 17 00:00:00 2001 From: Kitware Robot Date: Fri, 8 Jun 2012 00:01:05 -0400 Subject: [PATCH 097/101] CMake Nightly Date Stamp --- Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index b43affd1e..1bfc561c1 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -2,5 +2,5 @@ SET(CMake_VERSION_MAJOR 2) SET(CMake_VERSION_MINOR 8) SET(CMake_VERSION_PATCH 8) -SET(CMake_VERSION_TWEAK 20120607) +SET(CMake_VERSION_TWEAK 20120608) #SET(CMake_VERSION_RC 1) From 45a9ce5543548c6ee13f9ce6c60589d7f6935a0a Mon Sep 17 00:00:00 2001 From: Kitware Robot Date: Sat, 9 Jun 2012 00:01:04 -0400 Subject: [PATCH 098/101] CMake Nightly Date Stamp --- Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 1bfc561c1..f1f5564f2 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -2,5 +2,5 @@ SET(CMake_VERSION_MAJOR 2) SET(CMake_VERSION_MINOR 8) SET(CMake_VERSION_PATCH 8) -SET(CMake_VERSION_TWEAK 20120608) +SET(CMake_VERSION_TWEAK 20120609) #SET(CMake_VERSION_RC 1) From b39924cf222e0c2e958a780dfe77ca60592d2afd Mon Sep 17 00:00:00 2001 From: Kitware Robot Date: Sun, 10 Jun 2012 00:01:03 -0400 Subject: [PATCH 099/101] CMake Nightly Date Stamp --- Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index f1f5564f2..174a31786 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -2,5 +2,5 @@ SET(CMake_VERSION_MAJOR 2) SET(CMake_VERSION_MINOR 8) SET(CMake_VERSION_PATCH 8) -SET(CMake_VERSION_TWEAK 20120609) +SET(CMake_VERSION_TWEAK 20120610) #SET(CMake_VERSION_RC 1) From 931af7fd781b76af74aaeead0321c170bc378457 Mon Sep 17 00:00:00 2001 From: Kitware Robot Date: Mon, 11 Jun 2012 00:01:04 -0400 Subject: [PATCH 100/101] CMake Nightly Date Stamp --- Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 174a31786..b3d2dbc32 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -2,5 +2,5 @@ SET(CMake_VERSION_MAJOR 2) SET(CMake_VERSION_MINOR 8) SET(CMake_VERSION_PATCH 8) -SET(CMake_VERSION_TWEAK 20120610) +SET(CMake_VERSION_TWEAK 20120611) #SET(CMake_VERSION_RC 1) From ebc702c86df3df203d2a0f070c61c1434616193f Mon Sep 17 00:00:00 2001 From: Kitware Robot Date: Tue, 12 Jun 2012 00:01:04 -0400 Subject: [PATCH 101/101] CMake Nightly Date Stamp --- Source/CMakeVersion.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index b3d2dbc32..345a56fc8 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -2,5 +2,5 @@ SET(CMake_VERSION_MAJOR 2) SET(CMake_VERSION_MINOR 8) SET(CMake_VERSION_PATCH 8) -SET(CMake_VERSION_TWEAK 20120611) +SET(CMake_VERSION_TWEAK 20120612) #SET(CMake_VERSION_RC 1)