* src/SDCCsymt.c (checkSClass): no error for uninitialised absolute
authorMaartenBrock <MaartenBrock@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Sun, 15 Oct 2006 18:03:24 +0000 (18:03 +0000)
committerMaartenBrock <MaartenBrock@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Sun, 15 Oct 2006 18:03:24 +0000 (18:03 +0000)
  variables in code memory
* support/regression/tests/absolute.c: added test for this

git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@4410 4a8a32a2-be11-0410-ad9d-d568d2c75423

ChangeLog
src/SDCCsymt.c
support/regression/tests/absolute.c

index d19b2c06e4b28e7950e15729656216556a3eaff1..cd969b3bfee7a4849356ffe4cd674a8be652e009 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2006-10-15 Maarten Brock <sourceforge.brock AT dse.nl>
+
+       * src/SDCCsymt.c (checkSClass): no error for uninitialised absolute
+         variables in code memory
+       * support/regression/tests/absolute.c: added test for this
+
 2006-10-15 Raphael Neider <rneider AT web.de>
 
        * src/pic/pcode.c (InsertBankSel): suppress BANKSELs for one bank
index e86314e249c577ce9def84216ca7f2ffca63735c..eba05f5a30e72bd66415023b7f2aead7706c8a08 100644 (file)
@@ -1587,6 +1587,7 @@ checkSClass (symbol * sym, int isProto)
         //!sym->level &&
         port->mem.code_ro &&
         !IS_EXTERN (sym->etype) &&
+        !SPEC_ABSA (sym->etype) &&
         !funcInChain (sym->type))
       werror (E_CODE_NO_INIT, sym->name);
   }
index 52cc86ab4f27739cb36098e2db11583e0a82b8d7..40f35d2c44f22187ba1875919e765abdc66e9f8b 100644 (file)
@@ -4,6 +4,7 @@
 */\r
 #include <testfwk.h>\r
 \r
+{mem} at(0xCAB7) char u;\r
 {mem} at(0xCAB7) char x = 'x';\r
 {mem} at(0xCAB9) char y = 'y';\r
 {mem} at(0xCAB0) int  k = 0x1234;\r
@@ -17,6 +18,7 @@ testAbsolute(void)
   char {mem} *pC = (char {mem} *)(0xCAB0);\r
   int  {mem} *pI = (char {mem} *)(0xCAB0);\r
 \r
+  ASSERT(u == 'x');\r
   ASSERT(pC[7] == 'x');\r
   ASSERT(pC[9] == 'y');\r
   ASSERT(pI[0] == 0x1234);\r