Intel® Integrated Performance Primitives
Deliberate problems developing high-performance vision, signal, security, and storage applications.

Calling ipp functions corrupts variables

marti__clement
Beginner
588 Views

I have picked up coding with IPP again after some time and an update from windows 7 to windows 10. But now it seems to corrupt the value of variables when I can an ipp malloc function.

For instance this code:

#include <stdio.h>
#include "ipp.h"


int main(void)
{
    IppiSize roiSize = {128,128};
    IppiSize  kernelSize= {3,3};
	int srcStep = 0;
	Ipp8u* pSrc = NULL;
	
	printf("%d %d \n", roiSize.width, roiSize.height);
	printf("%d %d \n", kernelSize.width, kernelSize.height);
	
    pSrc = ippsMalloc_8u(0);
	
	printf("%d %d \n", roiSize.width, roiSize.height);	
	printf("%d %d \n", kernelSize.width, kernelSize.height);	
    return 0;
}

returns:

128 128
3 3
128 0
3 128

so it modifies the value of roiSize and kernelSize even though it's not intended to. A standard C malloc works fine and dose not corrupt the variables. I compiled (without any warning) with cygwin x86 g++ 7.4.0, on windows 10 pro version 1709, using

HDIR = "C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2019.1.144\windows\ipp\include"
LDADD = "C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2019.1.144\windows\redist\ia32_win\ipp" -lippi -lipps -lippvm  -lippcore -lippvm  -lm
CXXFLAGS = -O0 
SOURCES= test.cpp 
OBJECTS1=$(patsubst %.cpp,%.o,$(SOURCES))
OBJECTS=$(patsubst %.c,%.o,$(OBJECTS1))

all debug profile static depend: $(OBJECTS)
	g++ -o test.exe test.o $(CXXFLAGS) -L$(LDADD) 

	
%.o: %.cpp
	g++ -c $< $(CXXFLAGS) -I $(HDIR)  

%.o: %.c
	g++ -c $< $(CXXFLAGS) -I $(HDIR) 
	
clean:
	rm -f *.o

Anybody has already seen anything like this? I'm at a loss to find the root cause of the issue.

0 Kudos
0 Replies
Reply