ошибка с gcc 5 для функции varargs: суффикс или операнды недействительны для `movq '

При попытке установить OpenMPI в поле .configure произошел сбой в разделе проверки способности ISO C99 выбранного компилятора.

Озадаченный тем, что gcc, конечно, имеет опции std = gnu99 и std = c99, я сократил файл конфигурации на 20 000 строк, чтобы изолировать проблемный раздел. В конце концов я отследил его до gcc 5, не компилируя функции переменных аргументов.

Приведенный ниже код генерирует ошибку «суффикс или операнд, недействительный для« movq »», что является основной причиной сбоя файла .configure.

(Пошаговая установка для OpenMPI, которой я следовал, здесьhttps://wiki.helsinki.fi/display/HUGG/Installing+Open+MPI+on+Mac+OS+X)

Кто-нибудь видел это и знает, как это исправить?

//-----------------------------------------------------------------------------
// This fails to compile with gcc 5.3
//
// Command: gcc test4.c
//
// Error is: 
//  /var/folders/4s/gkkpz000gn/T//ccAraq59.s:47:suffix or operands invalid for `movq'
//  /var/folders/4s/gkg0r000gn/T//ccAraq59.s:52:suffix or operands invalid for `movq'
//
// gcc version is 5.3.0:
//
// $ gcc --version
// gcc (GCC) 5.3.0
// Copyright (C) 2015 Free Software Foundation, Inc.
// This is free software; see the source for copying conditions.  There is NO
// warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
//
//-----------------------------------------------------------------------------


// Check varargs
static void
test_varargs (const char *format, ...)
{
}


//--------------------------------------------------------------
//                         MAIN {}   
//--------------------------------------------------------------

 int
 main ()
 {

    //====================================================
    // Check varargs.
    // test_varargs ("s", "string");            //WORKS
    // test_varargs ("d' ", 65);                //WORKS
    // test_varargs ("s, d' ", "string", 65);   //WORKS

    test_varargs ("f .", 34.234);                       // FAILS!!!
    test_varargs ("s, d' f .", "string", 65, 34.234);   //ALSO FAILS
    //====================================================


   return 0;
 }

Ответы на вопрос(1)

Ваш ответ на вопрос