* @brief Get the clang command line flags using the Settings * @param lang language guessed from filename * @return Clang command line flags */
| 635 | * @return Clang command line flags |
| 636 | */ |
| 637 | static std::string getClangFlags(const Settings& setting, Standards::Language lang) { |
| 638 | std::string flags; |
| 639 | |
| 640 | assert(lang != Standards::Language::None); |
| 641 | |
| 642 | switch (lang) { |
| 643 | case Standards::Language::C: |
| 644 | flags = "-x c "; |
| 645 | if (!setting.standards.stdValueC.empty()) |
| 646 | flags += "-std=" + setting.standards.stdValueC + " "; |
| 647 | break; |
| 648 | case Standards::Language::CPP: |
| 649 | flags += "-x c++ "; |
| 650 | if (!setting.standards.stdValueCPP.empty()) |
| 651 | flags += "-std=" + setting.standards.stdValueCPP + " "; |
| 652 | break; |
| 653 | case Standards::Language::None: |
| 654 | break; |
| 655 | } |
| 656 | |
| 657 | for (const std::string &i: setting.includePaths) |
| 658 | flags += "-I" + i + " "; |
| 659 | |
| 660 | flags += getDefinesFlags(setting.userDefines); |
| 661 | |
| 662 | for (const std::string &i: setting.userIncludes) |
| 663 | flags += "--include " + cmdFileName(i) + " "; |
| 664 | |
| 665 | return flags; |
| 666 | } |
| 667 | |
| 668 | // TODO: clear error list before returning |
| 669 | unsigned int CppCheck::checkClang(const FileWithDetails &file) |
no test coverage detected