@@ -336,16 +336,26 @@ int gcc_modet::doit()
336336 base_name==" bcc" ||
337337 base_name.find (" goto-bcc" )!=std::string::npos;
338338
339+ // if we are gcc or bcc, then get the version number
340+ gcc_version.get (native_tool_name);
341+
339342 if ((cmdline.isset (' v' ) && cmdline.have_infile_arg ()) ||
340343 (cmdline.isset (" version" ) && !produce_hybrid_binary))
341344 {
342345 // "-v" a) prints the version and b) increases verbosity.
343346 // Compilation continues, don't exit!
344347
345348 if (act_as_bcc)
346- std::cout << " bcc: version 0.16.17 (goto-cc " CBMC_VERSION " )\n " ;
349+ std::cout << " bcc: version " << gcc_version
350+ << " (goto-cc " CBMC_VERSION " )\n " ;
347351 else
348- std::cout << " gcc version 3.4.4 (goto-cc " CBMC_VERSION " )\n " ;
352+ {
353+ if (gcc_version.flavor == gcc_versiont::flavort::CLANG)
354+ std::cout << " clang version " << gcc_version
355+ << " (goto-cc " CBMC_VERSION " )\n " ;
356+ else
357+ std::cout << " gcc (goto-cc " CBMC_VERSION " ) " << gcc_version << ' \n ' ;
358+ }
349359 }
350360
351361 compilet compiler (cmdline,
@@ -359,11 +369,17 @@ int gcc_modet::doit()
359369 if (produce_hybrid_binary)
360370 return run_gcc (compiler);
361371
362- std::cout << ' \n ' <<
363- " Copyright (C) 2006-2014 Daniel Kroening, Christoph Wintersteiger\n " <<
364- " CBMC version: " CBMC_VERSION << ' \n ' <<
365- " Architecture: " << config.this_architecture () << ' \n ' <<
366- " OS: " << config.this_operating_system () << ' \n ' ;
372+ std::cout
373+ << ' \n '
374+ << " Copyright (C) 2006-2018 Daniel Kroening, Christoph Wintersteiger\n "
375+ << " CBMC version: " CBMC_VERSION << ' \n '
376+ << " Architecture: " << config.this_architecture () << ' \n '
377+ << " OS: " << config.this_operating_system () << ' \n ' ;
378+
379+ if (gcc_version.flavor == gcc_versiont::flavort::CLANG)
380+ std::cout << " clang: " << gcc_version << ' \n ' ;
381+ else
382+ std::cout << " gcc: " << gcc_version << ' \n ' ;
367383
368384 return EX_OK; // Exit!
369385 }
@@ -381,7 +397,7 @@ int gcc_modet::doit()
381397 if (cmdline.isset (" dumpmachine" ))
382398 std::cout << config.this_architecture () << ' \n ' ;
383399 else if (cmdline.isset (" dumpversion" ))
384- std::cout << " 3.4.4 \n " ;
400+ std::cout << gcc_version << ' \n ' ;
385401
386402 // we don't have any meaningful output for the other options, and GCC
387403 // doesn't necessarily produce non-empty output either
0 commit comments