CalculiX build error using clang

Dave Allured - NOAA Affiliate dave.allured at noaa.gov
Tue Jul 26 17:42:28 UTC 2022


If you want to be thorough, then search the rest of the code for all
references to this function.  Look for any call that checks a return code.
Also see if and how the function is defined for public or external use.  If
there is any hint of referencing a return code, then declare the return
type as "int", and add return (0) at the end of the main part of the
function.


On Tue, Jul 26, 2022 at 11:28 AM Blair Zajac <blair at orcaware.com> wrote:

> Yes, that would fix it.
>
> On Jul 26, 2022, at 10:27 AM, Mark Brethen <mark.brethen at gmail.com> wrote:
>
> would a ‘return;’ instead of ‘return(-1);’ suffice>?
>
> Mark Brethen
> mark.brethen at gmail.com
>
> On Jul 26, 2022, at 11:51 AM, Christopher Jones <jonesc at hep.phy.cam.ac.uk>
> wrote:
>
> clang is correct in this case, gcc is being sloppy.
>
> Basically you cannot return a value, from a function declared as void…
> fairly basic stuff really..
>
> On 26 Jul 2022, at 5:34 pm, Mark Brethen <mark.brethen at gmail.com> wrote:
>
> I’m seeing this build error when using clang (gcc doesn’t complain):
>
> info:build /opt/local/bin/clang-mp-14 -O2 -Wall -Wno-narrowing -I./
> -I/opt/local/include -I/opt/local/include/GL -I../../libSNL/src
> -I../../glut-3.5/src    -c -o pickFunktions.o pickFunktions.c
> :info:build pickFunktions.c:4599:7: error: void function
> 'moveLineEndPoint' should not return a value [-Wreturn-type]
> :info:build       return(-1);
> :info:build       ^     ~~~~
>
> code snippet below:
>
>  void moveLineEndPoint(int lineNr, int pntNr, double llength)
> {
>   int p1,p2, flag=0;
>   double P1[3], P2[3], u, eva[3], va[3], p0p1_2[3];
>
>     p1=line[lineNr].p1;
>     p2=line[lineNr].p2;
>
>     /* determine which side of the line has to be moved */
>     if(pntNr==p1) flag=-1;
>     else if(pntNr==p2) flag=1;
>     else
>     {
>       printf("ERROR: selected point:%s is no line endpoint\n",
> point[pntNr].name);
>       return(-1);
>     }
>     u=flag*llength;
>     u/=scale->w;
>
>     /* calc direction */
>     if(line[lineNr].typ=='s')
>     {
>       if(flag==-1) p2=set[line[lineNr].trk].pnt[1];
>       else  p1=set[line[lineNr].trk].pnt[set[line[lineNr].trk].anz_p-2];
>     }
>     P1[0]=point[p1].px;
>     P1[1]=point[p1].py;
>     P1[2]=point[p1].pz;
>     P2[0]=point[p2].px;
>     P2[1]=point[p2].py;
>     P2[2]=point[p2].pz;
>     v_result( P1, P2, p0p1_2);
>     v_norm(p0p1_2,eva);
>     v_scal(&u,eva, va);
>     point[pntNr].px+=va[0];
>     point[pntNr].py+=va[1];
>     point[pntNr].pz+=va[2];
>     printf("moved by dxyz= %lf %lf %lf\n",
>       (va[0]* scale->w),
>       (va[1]* scale->w),
>       (va[2]* scale->w));
> }
>
> I do not code in C, so I’ll pass this up to the developer. How should this
> be patched?
>
> Thanks,
> Mark
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macports.org/pipermail/macports-dev/attachments/20220726/9f4ea9a0/attachment.htm>


More information about the macports-dev mailing list