Index: osprey/be/opt/opt_dce.cxx
===================================================================
--- osprey/be/opt/opt_dce.cxx	(revision 3757)
+++ osprey/be/opt/opt_dce.cxx	(working copy)
@@ -5297,7 +5297,7 @@
       }
     }
 
-    ErrMsg(EC_Uninitialized, output_var_name, Cur_PU_Name);
+    ErrMsgLine(EC_Uninitialized, ST_Line(*(sym->St())), output_var_name, output_pu_name);
     if (p != NULL && p != Cur_PU_Name)
       free(p);
     if (v != NULL && v != &Str_Table[sym->St()->u1.name_idx])
Index: osprey/be/com/erbe.desc
===================================================================
--- osprey/be/com/erbe.desc	(revision 3757)
+++ osprey/be/com/erbe.desc	(working copy)
@@ -274,7 +274,7 @@
     3, ET_STRING, ET_INT, ET_STRING, 0,0,0 },
 
   { EC_Uninitialized,	EM_User | ES_WARNING, RAG_EN_NONE,
-    "Variable %s in %s might be used uninitialized",
+    "Variable %s in fucntion %s might be used uninitialized",
     2, ET_STRING, ET_STRING, 0,0,0,0 },
 
   /* DRA cloning errors */
Index: osprey/common/com/symtab.cxx
===================================================================
--- osprey/common/com/symtab.cxx	(revision 3757)
+++ osprey/common/com/symtab.cxx	(working copy)
@@ -1835,6 +1835,9 @@
 	    fprintf (f, "Alignment: %d bytes", TY_align (ty_idx));
 	}
 	fprintf (f, "\n");
+	extern char *Orig_Src_File_Name, *Src_File_Name;
+	fprintf (f, "\t\tlocation: file %s, line %d\n", 
+	         (Orig_Src_File_Name ? Orig_Src_File_Name : Src_File_Name), line);
 
 	fprintf (f, "\t\tFlags:\t0x%08x", flags);
 	if (flags) {
Index: osprey/common/com/symtab_access.h
===================================================================
--- osprey/common/com/symtab_access.h	(revision 3757)
+++ osprey/common/com/symtab_access.h	(working copy)
@@ -243,6 +243,13 @@
 inline void
 Set_ST_vtable_ty_idx (ST& s, TY_IDX idx)	{ s.vtable_ty_idx = idx; }
 
+inline mUINT32
+ST_Line (const ST& s) { return s.line; }
+inline void
+Set_ST_Line (ST& s, mUINT32 lineno) {
+  s.line = lineno;
+}
+
 inline ST*
 ST_ptr (ST_IDX idx)                     { return &(St_Table[idx]); }
 
Index: osprey/common/com/symtab_defs.h
===================================================================
--- osprey/common/com/symtab_defs.h	(revision 3757)
+++ osprey/common/com/symtab_defs.h	(working copy)
@@ -259,6 +259,8 @@
 
     TY_IDX vtable_ty_idx;
 
+    mUINT32 line;           // The line num where define the sym in the source file.
+
     // operations
     
     ST ()  {Fail_FmtAssertion("ST default constructor must not be called.");}
Index: osprey/wgen/wgen_spin_symbol.cxx
===================================================================
--- osprey/wgen/wgen_spin_symbol.cxx	(revision 3757)
+++ osprey/wgen/wgen_spin_symbol.cxx	(working copy)
@@ -1895,6 +1895,13 @@
 	if (st)
 	  return st;
         st = New_ST (level);
+
+        // Set line number where define sym in source file
+        if (gs_operand (decl_node, GS_DECL_SOURCE_LINE))
+          Set_ST_Line(*st, gs_decl_source_line(decl_node));
+        else
+          Set_ST_Line(*st, 0);
+
         if (TY_kind (ty_idx) == KIND_ARRAY &&
             gs_tree_static (decl_node) &&
             gs_decl_initial (decl_node) == FALSE &&
