# HG changeset patch
# User Manuele Conti <conti.ma@alice.it>
# Date 1348869568 -7200
# Node ID 6ad7de83d22c0602cb3918652e22137a96f342be
# Parent  b1b11dd09a543f494d3f6d27d2bc1a6c519b6d75
Add check whether external var matches to global var.

diff -r b1b11dd09a54 -r 6ad7de83d22c stage3/declaration_check.cc
--- a/stage3/declaration_check.cc	Thu Sep 27 18:14:52 2012 +0100
+++ b/stage3/declaration_check.cc	Fri Sep 28 23:59:28 2012 +0200
@@ -96,7 +96,11 @@
      	 /* found an external reference parameter. */
      	symbol_c *glo_decl = search_var_instance_glo_decl.get_decl(var_name);
         symbol_c *ext_decl = search_var_instance_ext_decl.get_decl(var_name);
-    	if (search_var_instance_glo_decl.get_option(var_name) != search_var_instance_ext_decl.get_option(var_name))
+    	if (glo_decl == NULL) {
+    	  STAGE3_ERROR(0, ext_decl, ext_decl, "Declaration error an external doesn't mach with any global var.");
+    	  continue;
+    	}
+        if (search_var_instance_glo_decl.get_option(var_name) != search_var_instance_ext_decl.get_option(var_name))
           STAGE3_ERROR(0, glo_decl, glo_decl, "Declaration error an external redefinition option.");
 
         /* TODO: Check redefinition data type.