From 65476dd0e8e2a74072ab3b5c914b6ad82ee0c1a0 Mon Sep 17 00:00:00 2001 From: Erwan Jahier <jahier@imag.fr> Date: Fri, 16 May 2008 11:20:35 +0200 Subject: [PATCH] CompiledDataDump.const_decl was wrong for enum constants. --- src/compiledDataDump.ml | 3 ++- src/test/test.res.exp | 36 ++++++++++++++++++------------------ 2 files changed, 20 insertions(+), 19 deletions(-) diff --git a/src/compiledDataDump.ml b/src/compiledDataDump.ml index 289bf109..283bdd00 100644 --- a/src/compiledDataDump.ml +++ b/src/compiledDataDump.ml @@ -255,8 +255,9 @@ let (const_decl: Ident.long -> const_eff -> string) = "const " ^ (long tname) ^ (match ceff with | Extern_const_eff _ -> ":" ^ (string_of_type_eff (type_of_const_eff ceff)) + | Enum_const_eff _ -> "" (* enum const are defined as extern const *) | _ -> " = " ^ (string_of_const_eff ceff) - ) ^ ";\n" + ) ^ ";\n" let (node_of_node_exp_eff: node_exp_eff -> string) = fun neff -> diff --git a/src/test/test.res.exp b/src/test/test.res.exp index 72bc9d52..bbb958ef 100644 --- a/src/test/test.res.exp +++ b/src/test/test.res.exp @@ -2197,12 +2197,12 @@ End of Syntax table dump. type enum__couleur = enum {enum__bleu, enum__blanc, enum__rouge}; type enum__color = enum {enum__blue, enum__white, enum__redd}; Exported constants: -const enum__bleu = enum__bleu; -const enum__blanc = enum__blanc; -const enum__redd = enum__redd; -const enum__rouge = enum__rouge; -const enum__blue = enum__blue; -const enum__white = enum__white; +const enum__bleu; +const enum__blanc; +const enum__redd; +const enum__rouge; +const enum__blue; +const enum__white; Exported nodes: node enum__boo( @@ -5898,9 +5898,9 @@ const mainPack__N = 8; type mainPack__T = int^8; type mainPack__couleurs = enum {mainPack__bleu, mainPack__rose, mainPack__jaune}; Exported constants: -const mainPack__bleu = mainPack__bleu; -const mainPack__jaune = mainPack__jaune; -const mainPack__rose = mainPack__rose; +const mainPack__bleu; +const mainPack__jaune; +const mainPack__rose; const mainPack__X = 8; Exported nodes: type inter__selType = {i : int; b : bool; r : real}; @@ -6070,7 +6070,7 @@ End of Syntax table dump. Exported constants: Exported nodes: -*** oops: an internal error occurred in file syntaxTab.ml, line 112, column 22 +*** oops: an internal error occurred in file syntaxTab.ml, line 111, column 22 *** when compiling lustre program should_work/Pascal/t2.lus ---------------------------------------------------------------------- @@ -6593,10 +6593,10 @@ type decl__coord_tab = {x : real; y : real}^1; type decl__couleur = enum {decl__bleu, decl__blanc, decl__rouge}; Exported constants: const decl__e = 8.500000; -const decl__blanc = decl__blanc; -const decl__f = decl__blanc; -const decl__bleu = decl__bleu; -const decl__rouge = decl__rouge; +const decl__blanc; +const decl__f; +const decl__bleu; +const decl__rouge; const decl__a:int; const decl__b:int; const decl__c:int; @@ -6683,10 +6683,10 @@ type declaration__coord_tab = {x : real; y : real}^1; type declaration__couleur = enum {declaration__bleu, declaration__blanc, declaration__rouge}; Exported constants: const declaration__e = 8.500000; -const declaration__blanc = declaration__blanc; -const declaration__f = declaration__blanc; -const declaration__bleu = declaration__bleu; -const declaration__rouge = declaration__rouge; +const declaration__blanc; +const declaration__f; +const declaration__bleu; +const declaration__rouge; const declaration__a:int; const declaration__b:int; const declaration__c:int; -- GitLab