Changeset 372b6d3


Ignore:
Timestamp:
Apr 10, 2023, 9:25:21 PM (20 months ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
ADT, ast-experimental, master
Children:
6adeb5f
Parents:
8472c6c
Message:

add -invariant/--invariant flag to enable invariant checking during AST passes

Files:
4 edited

Legend:

Unmodified
Added
Removed
  • driver/cfa.cc

    r8472c6c r372b6d3  
    1010// Created On       : Tue Aug 20 13:44:49 2002
    1111// Last Modified By : Peter A. Buhr
    12 // Last Modified On : Tue Feb 14 22:46:38 2023
    13 // Update Count     : 470
     12// Last Modified On : Mon Apr 10 21:16:00 2023
     13// Update Count     : 476
    1414//
    1515
     
    198198                                } // if
    199199                        } else if ( arg == "-CFA" ) {
    200                                 CFA_flag = true;                                                // strip the -CFA flag
     200                                CFA_flag = true;                                                // strip -CFA flag
    201201                                link = false;
    202202                                args[nargs++] = "-fsyntax-only";                // stop after stage 2
    203203                        } else if ( arg == "-debug" ) {
    204                                 debug = true;                                                   // strip the debug flag
     204                                debug = true;                                                   // strip debug flag
    205205                        } else if ( arg == "-nodebug" ) {
    206                                 debug = false;                                                  // strip the nodebug flag
     206                                debug = false;                                                  // strip nodebug flag
    207207                        } else if ( arg == "-quiet" ) {
    208                                 quiet = true;                                                   // strip the quiet flag
     208                                quiet = true;                                                   // strip quiet flag
    209209                        } else if ( arg == "-noquiet" ) {
    210                                 quiet = false;                                                  // strip the noquiet flag
     210                                quiet = false;                                                  // strip noquiet flag
     211                        } else if ( arg == "-invariant" ) {
     212                                Putenv( argv, "-" + arg );
     213                        } else if ( arg == "--invariant" ) {
     214                                Putenv( argv, arg );
    211215                        } else if ( arg == "-no-include-stdhdr" ) {
    212                                 noincstd_flag = true;                                   // strip the no-include-stdhdr flag
     216                                noincstd_flag = true;                                   // strip no-include-stdhdr flag
    213217                        } else if ( arg == "-nolib" ) {
    214                                 nolib = true;                                                   // strip the nolib flag
     218                                nolib = true;                                                   // strip nolib flag
    215219                        } else if ( arg == "-help" ) {
    216                                 help = true;                                                    // strip the help flag
     220                                help = true;                                                    // strip help flag
    217221                        } else if ( arg == "-nohelp" ) {
    218                                 help = false;                                                   // strip the nohelp flag
     222                                help = false;                                                   // strip nohelp flag
    219223                        } else if ( arg == "-cfalib") {
    220224                                compiling_libs = true;
     
    274278                                } // if
    275279                        } else if ( prefix( arg, "-B" ) ) {
    276                                 bprefix = arg.substr(2);                                // strip the -B flag
     280                                bprefix = arg.substr(2);                                // strip -B flag
    277281                        } else if ( arg == "-c" || arg == "-S" || arg == "-E" || arg == "-M" || arg == "-MM" ) {
    278282                                args[nargs++] = argv[i];                                // pass flag along
  • src/CompilationState.cc

    r8472c6c r372b6d3  
    99// Author           : Rob Schluntz
    1010// Created On       : Mon Ju1 30 10:47:01 2018
    11 // Last Modified By : Henry Xue
    12 // Last Modified On : Tue Jul 20 04:27:35 2021
    13 // Update Count     : 5
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Mon Apr 10 19:12:50 2023
     13// Update Count     : 6
    1414//
    1515
     
    2727        expraltp = false,
    2828        genericsp = false,
     29        invariant = false,
    2930        libcfap = false,
    3031        nopreludep = false,
  • src/CompilationState.h

    r8472c6c r372b6d3  
    99// Author           : Rob Schluntz
    1010// Created On       : Mon Ju1 30 10:47:01 2018
    11 // Last Modified By : Henry Xue
    12 // Last Modified On : Tue Jul 20 04:27:35 2021
    13 // Update Count     : 5
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Mon Apr 10 19:12:53 2023
     13// Update Count     : 6
    1414//
    1515
     
    2626        expraltp,
    2727        genericsp,
     28        invariant,
    2829        libcfap,
    2930        nopreludep,
  • src/main.cc

    r8472c6c r372b6d3  
    99// Author           : Peter Buhr and Rob Schluntz
    1010// Created On       : Fri May 15 23:12:02 2015
    11 // Last Modified By : Andrew Beach
    12 // Last Modified On : Thr Feb 16 10:08:00 2023
    13 // Update Count     : 680
     11// Last Modified By : Peter A. Buhr
     12// Last Modified On : Mon Apr 10 21:12:17 2023
     13// Update Count     : 682
    1414//
    1515
     
    504504
    505505
    506 static const char optstring[] = ":c:ghlLmNnpdP:S:twW:D:";
     506static const char optstring[] = ":c:ghilLmNnpdP:S:twW:D:";
    507507
    508508enum { PreludeDir = 128 };
     
    511511        { "gdb", no_argument, nullptr, 'g' },
    512512        { "help", no_argument, nullptr, 'h' },
     513        { "invariant", no_argument, nullptr, 'i' },
    513514        { "libcfa", no_argument, nullptr, 'l' },
    514515        { "linemarks", no_argument, nullptr, 'L' },
    515         { "no-main", no_argument, 0, 'm' },
     516        { "no-main", no_argument, nullptr, 'm' },
    516517        { "no-linemarks", no_argument, nullptr, 'N' },
    517518        { "no-prelude", no_argument, nullptr, 'n' },
     
    532533        "wait for gdb to attach",                                                       // -g
    533534        "print translator help message",                                        // -h
     535        "invariant checking during AST passes",                         // -i
    534536        "generate libcfa.c",                                                            // -l
    535537        "generate line marks",                                                          // -L
     
    625627                        usage( argv );                                                          // no return
    626628                        break;
     629                  case 'i':                                                                             // invariant checking
     630                        invariant = true;
     631                        break;
    627632                  case 'l':                                                                             // generate libcfa.c
    628633                        libcfap = true;
Note: See TracChangeset for help on using the changeset viewer.