Replaced unbound record elements with null pointers in record-ofs (bug 494614)
[deliverable/titan.core.git] / compiler2 / main.cc
index 41d6f4bad30a19562331cfbcb6dbdec5ca1463a0..5e6cfd5bc3d2e8c2fa4eae7970a320f619a12edf 100644 (file)
@@ -94,7 +94,8 @@ boolean generate_skeleton = FALSE, force_overwrite = FALSE,
   check_subtype = TRUE, suppress_context = FALSE, display_up_to_date = FALSE,
   implicit_json_encoding = FALSE, json_refs_for_all_types = TRUE,
   force_gen_seof = FALSE, omit_in_value_list = FALSE,
-  warnings_for_bad_variants = FALSE;
+  warnings_for_bad_variants = FALSE, debugger_active = FALSE,
+  legacy_unbound_union_fields = FALSE;
 
 // Default code splitting mode is set to 'no splitting'.
 CodeGenHelper::split_type code_splitting_mode = CodeGenHelper::SPLIT_NONE;
@@ -392,6 +393,7 @@ static void usage()
     "OPTIONS:\n"
     "  -a:             force XER in ASN.1 files\n"
     "  -b:             disable BER encoder/decoder functions\n"
+    "  -B:             allow selected union field to be unbound (legacy behavior)\n"
     "  -c:             write out checksums in case of error\n"
     "  -d:             treat default fields as omit\n"
     "  -E:             display only warnings for unrecognized encoding variants\n"
@@ -479,8 +481,8 @@ int main(int argc, char *argv[])
     dflag = false, Xflag = false, Rflag = false, gflag = false, aflag = false,
     s0flag = false, Cflag = false, yflag = false, Uflag = false, Qflag = false,
     Sflag = false, Kflag = false, jflag = false, zflag = false, Fflag = false,
-    Mflag = false, Eflag = false, errflag = false, print_usage = false,
-    ttcn2json = false;
+    Mflag = false, Eflag = false, nflag = false, Bflag = false, errflag = false,
+    print_usage = false, ttcn2json = false;
 
   CodeGenHelper cgh;
 
@@ -572,7 +574,7 @@ int main(int argc, char *argv[])
 
   if (!ttcn2json) {
     for ( ; ; ) {
-      int c = getopt(argc, argv, "aA:bcC:dEfFgijK:lLMo:pP:qQ:rRsStT:uU:vV:wxXyYz:0-");
+      int c = getopt(argc, argv, "aA:bBcC:dEfFgijK:lLMno:pP:qQ:rRsStT:uU:vV:wxXyYz:0-");
       if (c == -1) break;
       switch (c) {
       case 'a':
@@ -743,6 +745,14 @@ int main(int argc, char *argv[])
         SET_FLAG(E);
         warnings_for_bad_variants = TRUE;
         break;
+      case 'n':
+        SET_FLAG(n);
+        debugger_active = TRUE;
+        break;
+      case 'B':
+        SET_FLAG(B);
+        legacy_unbound_union_fields = TRUE;
+        break;
 
       case 'Q': {
         long max_errs;
@@ -787,7 +797,8 @@ int main(int argc, char *argv[])
       if (Aflag || Lflag || Pflag || Tflag || Vflag || Yflag ||
         bflag || fflag || iflag || lflag || oflag || pflag || qflag ||
         rflag || sflag || tflag || uflag || wflag || xflag || Xflag || Rflag ||
-        Uflag || yflag || Kflag || jflag || zflag || Fflag || Mflag || Eflag) {
+        Uflag || yflag || Kflag || jflag || zflag || Fflag || Mflag || Eflag ||
+        nflag || Bflag) {
         errflag = true;
         print_usage = true;
       }
@@ -807,6 +818,10 @@ int main(int argc, char *argv[])
         ERROR("Source line information `-L' is necessary for profiling `-z'.");
         errflag = true;
       }
+      if (nflag && !Lflag) {
+        ERROR("Source line information `-L' is necessary for debugging `-n'.");
+        errflag = true;
+      }
       if (iflag && gflag) {
         WARNING("Option `-g' overrides `-i'.");
         iflag = false; // -g gives more information
This page took 0.026736 seconds and 5 git commands to generate.