CLANG Предупреждение о передаче по значению? - PullRequest
0 голосов
/ 16 декабря 2009

Следующий код прекрасно компилируется ...

int main (int argc, const char * argv[]) {
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

    // VARIABLES
    MDD *MDD_structure;
    NSString *mddFile = @"/Users/Gary/Code/Mdd/xTest.mdd";
    NSFileHandle *inFile;
    NSData *inBuffer;
    int MDD_fCount;
    int MDD_vCount;

    // OPEN FILE ON DISK
    inFile = [NSFileHandle fileHandleForReadingAtPath:mddFile];
    if(inFile == nil) NSLog(@"FILE: Open ... ERROR");
    else NSLog(@"FILE: Open ... OK");

    // READ FRAME COUNT
    inBuffer = [inFile readDataOfLength:sizeof(int)];
    [inBuffer getBytes:&MDD_fCount length:sizeof(int)];
    MDD_fCount = CFSwapInt32BigToHost(MDD_fCount);
    NSLog(@"FC: %d", MDD_fCount);

Но когда я запускаю его через статический анализатор "CLANG LLVM 1.0", я получаю следующее ...

warning: Pass-by-value argument in function call is undefined.
         MDD_fCount = CFSwapInt32BigToHost(MDD_fCount);
                      ^                    ~~~~~~~~~~
1 diagnostic generated.

Может кто-нибудь сказать мне, что мне не хватает?

1009 * Гэри *

Ответы [ 2 ]

5 голосов
/ 16 декабря 2009

Вы получаете ошибку, потому что clang не уверен, что просто передать адрес вашей переменной в функцию - это то же самое, что и присвоить ей значение. Возможно, вы могли бы инициализировать MDD_fCount в 0 для начала, чтобы избавиться от ошибки.

3 голосов
/ 16 декабря 2009

Это означает, что вы не инициализировали MDD_fCount. См. этот пост и этот другой вопрос для дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...