@@ -339,6 +339,10 @@ int gcc_modet::doit()
339
339
base_name==" bcc" ||
340
340
base_name.find (" goto-bcc" )!=std::string::npos;
341
341
342
+ // if we are gcc or bcc, then get the version number
343
+ if (!act_as_ld)
344
+ gcc_version.get (native_tool_name);
345
+
342
346
if ((cmdline.isset (' v' ) && cmdline.have_infile_arg ()) ||
343
347
(cmdline.isset (" version" ) && !produce_hybrid_binary))
344
348
{
@@ -349,9 +353,16 @@ int gcc_modet::doit()
349
353
std::cout << " GNU ld version 2.16.91 20050610 (goto-cc " CBMC_VERSION
350
354
<< " )\n " ;
351
355
else if (act_as_bcc)
352
- std::cout << " bcc: version 0.16.17 (goto-cc " CBMC_VERSION " )\n " ;
356
+ std::cout << " bcc: version " << gcc_version
357
+ << " (goto-cc " CBMC_VERSION " )\n " ;
353
358
else
354
- std::cout << " gcc version 3.4.4 (goto-cc " CBMC_VERSION " )\n " ;
359
+ {
360
+ if (gcc_version.flavor == gcc_versiont::flavort::CLANG)
361
+ std::cout << " clang version " << gcc_version
362
+ << " (goto-cc " CBMC_VERSION " )\n " ;
363
+ else
364
+ std::cout << " gcc (goto-cc " CBMC_VERSION " ) " << gcc_version << ' \n ' ;
365
+ }
355
366
}
356
367
357
368
compilet compiler (cmdline,
@@ -365,11 +376,17 @@ int gcc_modet::doit()
365
376
if (produce_hybrid_binary)
366
377
return run_gcc (compiler);
367
378
368
- std::cout << ' \n ' <<
369
- " Copyright (C) 2006-2014 Daniel Kroening, Christoph Wintersteiger\n " <<
370
- " CBMC version: " CBMC_VERSION << ' \n ' <<
371
- " Architecture: " << config.this_architecture () << ' \n ' <<
372
- " OS: " << config.this_operating_system () << ' \n ' ;
379
+ std::cout
380
+ << ' \n '
381
+ << " Copyright (C) 2006-2018 Daniel Kroening, Christoph Wintersteiger\n "
382
+ << " CBMC version: " CBMC_VERSION << ' \n '
383
+ << " Architecture: " << config.this_architecture () << ' \n '
384
+ << " OS: " << config.this_operating_system () << ' \n ' ;
385
+
386
+ if (gcc_version.flavor == gcc_versiont::flavort::CLANG)
387
+ std::cout << " clang: " << gcc_version << ' \n ' ;
388
+ else
389
+ std::cout << " gcc: " << gcc_version << ' \n ' ;
373
390
374
391
return EX_OK; // Exit!
375
392
}
@@ -387,7 +404,7 @@ int gcc_modet::doit()
387
404
if (cmdline.isset (" dumpmachine" ))
388
405
std::cout << config.this_architecture () << ' \n ' ;
389
406
else if (cmdline.isset (" dumpversion" ))
390
- std::cout << " 3.4.4 \n " ;
407
+ std::cout << gcc_version << ' \n ' ;
391
408
392
409
// we don't have any meaningful output for the other options, and GCC
393
410
// doesn't necessarily produce non-empty output either
0 commit comments