77 */
88#include <stdio.h>
99#include <stdlib.h>
10+ #include <string.h>
1011#include "cblas.h"
1112#include "cblas_f77.h"
1213void API_SUFFIX (cblas_cher2 )(const CBLAS_LAYOUT layout , const CBLAS_UPLO Uplo ,
@@ -23,19 +24,25 @@ void API_SUFFIX(cblas_cher2)(const CBLAS_LAYOUT layout, const CBLAS_UPLO Uplo,
2324#ifdef F77_INT
2425 F77_INT F77_N = N , F77_lda = lda , F77_incX = incX , F77_incY = incY ;
2526#else
27+ CBLAS_INT incx = incX , incy = incY ;
2628 #define F77_N N
2729 #define F77_lda lda
2830 #define F77_incX incx
2931 #define F77_incY incy
3032#endif
31- CBLAS_INT n , i , j , tincx , tincy , incx = incX , incy = incY ;
32- float * x = ( float * ) X , * xx = ( float * ) X , * y = ( float * ) Y ,
33- * yy = ( float * ) Y , * tx , * ty , * stx , * sty ;
33+ CBLAS_INT n , i , j , tincx , tincy ;
34+ float * x , * xx , * y ,
35+ * yy , * tx , * ty , * stx , * sty ;
3436
3537 extern int CBLAS_CallFromC ;
3638 extern int RowMajorStrg ;
3739 RowMajorStrg = 0 ;
3840
41+ memcpy (& x ,& X ,sizeof (float * ));
42+ memcpy (& xx ,& X ,sizeof (float * ));
43+ memcpy (& y ,& Y ,sizeof (float * ));
44+ memcpy (& yy ,& Y ,sizeof (float * ));
45+
3946 CBLAS_CallFromC = 1 ;
4047 if (layout == CblasColMajor )
4148 {
@@ -129,8 +136,8 @@ void API_SUFFIX(cblas_cher2)(const CBLAS_LAYOUT layout, const CBLAS_UPLO Uplo,
129136 #endif
130137 } else
131138 {
132- x = (float * ) X ;
133- y = (float * ) Y ;
139+ memcpy ( & x , & X , sizeof (float * )) ;
140+ memcpy ( & y , & Y , sizeof (float * )) ;
134141 }
135142 F77_cher2 (F77_UL , & F77_N , alpha , y , & F77_incY , x ,
136143 & F77_incX , A , & F77_lda );
0 commit comments