diff --git a/test/qcbor_decode_tests.c b/test/qcbor_decode_tests.c
index 88203ff..16f0831 100644
--- a/test/qcbor_decode_tests.c
+++ b/test/qcbor_decode_tests.c
@@ -1,6 +1,6 @@
 /*==============================================================================
  Copyright (c) 2016-2018, The Linux Foundation.
- Copyright (c) 2018-2020, Laurence Lundblade.
+ Copyright (c) 2018-2021, Laurence Lundblade.
  All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
@@ -918,8 +918,8 @@
    return 0;
 }
 
-/* [[[[[[[[[[]]]]]]]]]] */
-static uint8_t sEmptyMap[] = {
+
+static const uint8_t sEmptyMap[] = {
                               0xA1,     //# map(1)
                               0x02,     //# unsigned(2)
                               0xA0,     //# map(0)
@@ -930,14 +930,15 @@
    QCBORDecodeContext DCtx;
    QCBORItem Item;
    int nReturn = 0;
+   QCBORError uErr;
 
    QCBORDecode_Init(&DCtx,
                     UsefulBuf_FROM_BYTE_ARRAY_LITERAL(sEmptyMap),
                     QCBOR_DECODE_MODE_NORMAL);
 
    /* now open the first Map */
-   nReturn = QCBORDecode_GetNext(&DCtx, &Item);
-    if(nReturn != QCBOR_SUCCESS ||
+   uErr = QCBORDecode_GetNext(&DCtx, &Item);
+    if(uErr != QCBOR_SUCCESS ||
        Item.uDataType != QCBOR_TYPE_MAP) {
       nReturn = -3;
       goto done;
@@ -958,6 +959,7 @@
    return(nReturn);
 }
 
+
 /* [[[[[[[[[[]]]]]]]]]] */
 static const uint8_t spDeepArrays[] = {
    0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
