Some fixes
authorceriel <none@none>
Tue, 19 Nov 1996 09:12:36 +0000 (09:12 +0000)
committerceriel <none@none>
Tue, 19 Nov 1996 09:12:36 +0000 (09:12 +0000)
lang/m2/comp/LLlex.c
lang/m2/comp/code.c

index 1450618..03b878f 100644 (file)
@@ -528,7 +528,15 @@ lexwarning(W_ORDINARY, "character constant out of range");
                                        CheckForLet();
                                        return tk->tk_symb = INTEGER;
                                }
-                               if (ch == 'D' && base == 10) {
+                               if (options['l']) {
+                                       if (base != 10) {
+                                               LoadChar(ch);
+                                               if (ch != 'D') {
+                                                       PushBack();
+                                               }
+                                       }
+                               }
+                               if (ch == 'D' && (options['l'] || base == 10)) {
                                    if (options['l']) {
                                        /* Local extension: LONGCARD exists,
                                           so internally also longintorcard_type
index 4916f12..e0d05c5 100644 (file)
@@ -60,7 +60,7 @@ CodeString(nd)
 {
        if (nd->nd_type->tp_fund != T_STRING) {
                /* Character constant */
-               C_loc(nd->nd_INT);
+               CodeConst(nd->nd_INT, nd->nd_type->tp_size);
                return;
        }
        C_df_dlb(++data_label);