[Cs-dev] Could not compile current CVS
| Date | 2007-04-28 20:06 |
| From | Anthony Kozar |
| Subject | [Cs-dev] Could not compile current CVS |
Hello,
I am wondering why no one else has noticed this yet. Do newer C compilers
allow variable declarations to come after non-declaration code??
In csound.c, line 1140:
int kperfThread(void * cs) {
INSDS *start, *end;
CSOUND *csound = (CSOUND *)cs;
OPDS *opstart;
void *threadId = csound->GetCurrentThreadID();
int index = getThreadIndex(csound, threadId);
int numThreads = csound->oparms->numThreads;
if(index < 0) {
return -1;
}
void *barrier1 = csound->multiThreadedBarrier1;
void *barrier2 = csound->multiThreadedBarrier2;
I need to move the void *barrierN declarations before the if statement in
order for this to compile. (There are a few more instances of this error
later in the file as well).
There were several similar problems in vectorial.c with four instances of a
"long r" declaration.
I also had this error:
Error: illegal implicit conversion from 'int (*)(void *)' to
'unsigned long (*)(void *)'
main.c line 378 t->threadId = csound->CreateThread(&kperfThread, (void
*)csound);
Project: Csound5.cw8.mcp, Target: Csound5Lib Debug, Source File: main.c
So, it seems that kperfThread needs to return an unsigned long and therefore
that the line "return -1" needs to be changed.
I have made all of these changes and committed to CVS EXCEPT for the "return
-1" line in kperfThread. I am not sure what the correction to that should
be (if anything) -- it compiles fine for me with the -1 being implicitly
converted to unsigned long.
Anthony
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Csound-devel mailing list
Csound-devel@lists.sourceforge.net |
| Date | 2007-04-29 07:55 |
| From | jpff |
| Subject | Re: [Cs-dev] Could not compile current CVS |
Unfortunately C99 does allow this very bad practice, as does C++. I have modified some code of this type when I have seen it. ==John ffitch ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ Csound-devel mailing list Csound-devel@lists.sourceforge.net |
| Date | 2007-04-29 08:43 |
| From | "Steven Yi" |
| Subject | Re: [Cs-dev] Could not compile current CVS |
| Attachments | None |
| Date | 2007-04-29 10:58 |
| From | jpff |
| Subject | Re: [Cs-dev] Could not compile current CVS |
Declaring as one goes leads to sloppy code -- not thinking and so on. I spend so much of my time trying to educate the young in coding that I dislike the undermining of good practice by language designers. And yes I have designed languages. ==John ffitch ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ Csound-devel mailing list Csound-devel@lists.sourceforge.net |
| Date | 2007-04-29 15:00 |
| From | Anthony Kozar |
| Subject | Re: [Cs-dev] Could not compile current CVS |
The only problem for me is that since I "cut my teeth" on C++, I have a hard time recognizing what is wrong when the compiler complains about this type of error -- because it looks fine to me :) But I have not done any serious coding in any language other than C since I finished school several years ago ... I'll mention again though that I did not change the line of code in kperfThread() that returns -1; although the return type is now unsigned long. I am not sure whether that is a possible bug in the future or not. Anthony Steven Yi wrote on 4/29/07 3:43 AM: > I don't think it's *so* bad a practice... =P This is code I wrote and > since I do a great deal of Java and not as much C/C++ I usually forget > to be C89 compliant. Looks like Anthony has checked in a fix so > thanks Anthony! ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ Csound-devel mailing list Csound-devel@lists.sourceforge.net |