VS Arduino
>> >> IntelliSense reports memset, memcpy and memcmp as undefined
https://www.visualmicro.com/forums/YaBB.pl?num=1660293517

Message started by HugoP on Aug 12th, 2022 at 8:38am

Title: IntelliSense reports memset, memcpy and memcmp as undefined
Post by HugoP on Aug 12th, 2022 at 8:38am
Been doing some development using VSMicro on VS 2022 for ESP32 and love the tool chain.

But recently I had to switch to ATtiny3216 and found one annoyance that is growing as the code base grows.

Using
Windows 10
Visual Studio 2022 v17.3
Visual Micro 2022.611.2204
megaTinyCore v2.5.11 https://github.com/SpenceKonde/ATTinyCore

The following code compiles and works, but the IDE reports memset as undefined with red squiggly.


Code (]
#include <Arduino.h>
#include <string.h>

void setup()
{
#if defined(_VMICRO_INTELLISENSE)
    byte buf[5):

= { 0 };
    // IDE reports memset as "identifier is undefined"
    memset(buf, 0xFF, sizeof(buf)); 
#endif
}

void loop()
{

}


Let me know if I missed something.

PS: Switching to ESP32 board does not suffer from this.

Best wishes
https://www.visualmicro.com/forums/YaBB.pl?action=downloadfile;file=test_memset_build_log.txt ( 62 KB | 0 Downloads )
test_memset_001.png ( 22 KB | 0 Downloads )

Title: Re: IntelliSense reports memset, memcpy and memcmp as undefined
Post by Tim@Visual Micro on Aug 12th, 2022 at 1:37pm
Thanks for the clear info. Before we look into this I need to point out that the following code will never be compiled. The define you have used might normally be in a seperate .h file simply to fudge intellisense.

Let us first see if the board actually supports memset. Please comment out the #if and click build.


Code (c++):
//#if defined(_VMICRO_INTELLISENSE)
    byte buf[5] = { 0 };
    // IDE reports memset as "identifier is undefined"
    memset(buf, 0xFF, sizeof(buf));
//#endif

Title: Re: IntelliSense reports memset, memcpy and memcmp as undefined
Post by HugoP on Aug 15th, 2022 at 8:14am
Ok

The following code compiles and I receive "memset worked" in terminal.

Find build log attached.


Code (]
#include <Arduino.h>
#include <string.h>

void setup()
{
    byte buffer[5):

= { 0 };
    memset(buffer, 0xFF, sizeof(buffer)); 

    Serial.begin(9600);
    if (buffer[0] == 0xFF)
    {
        Serial.println("memset worked");
    }
}

void loop()
{
    // put your main code here, to run repeatedly:
}

https://www.visualmicro.com/forums/YaBB.pl?action=downloadfile;file=test_memset_build_log_001.txt ( 59 KB | 0 Downloads )

Title: Re: IntelliSense reports memset, memcpy and memcmp as undefined
Post by Simon@Visual Micro on Aug 23rd, 2022 at 1:05pm
The intellisense issue should be improved in the latest release (22.08.23.00) which is available from the top of the below board:
https://www.visualmicro.com/forums/YaBB.pl?board=VS_ARDUINO_EXT_RELEASES

Title: Re: IntelliSense reports memset, memcpy and memcmp as undefined
Post by HugoP on Aug 23rd, 2022 at 5:59pm
Thank you for the new release!  :)
Looking good.

VS Arduino » Powered by YaBB 2.6.12!
YaBB Forum Software © 2000-2024. All Rights Reserved.