From 06aebc4d69a9ffd5eedb9d76ebb9117335f55eb3 Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sat, 14 Jun 2014 09:28:27 +0000 Subject: [PATCH] One of our buildbot for FreeBSD does not support std::to_string. Use stringstream instead to convert int to string llvm-svn: 210972 --- clang/docs/ReleaseNotes.rst | 18 ++++++++++++++---- .../StaticAnalyzer/Core/HTMLDiagnostics.cpp | 14 ++++++++------ 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst index 94c36930a7bd..1311e1963981 100644 --- a/clang/docs/ReleaseNotes.rst +++ b/clang/docs/ReleaseNotes.rst @@ -51,10 +51,10 @@ Major New Features GCC 4.7 changed the mingw ABI. Clang 3.4 and older use the GCC 4.6 ABI. Clang 3.5 and newer use the GCC 4.7 abi. -- The __has_attribute feature test is now target-aware. Older versions of Clang - would return true when the attribute spelling was known, regardless of whether - the attribute was available to the specific target. Clang now returns true only - when the attribute pertains to the current compilation target. +- The __has_attribute feature test is now target-aware. Older versions of Clang + would return true when the attribute spelling was known, regardless of whether + the attribute was available to the specific target. Clang now returns true + only when the attribute pertains to the current compilation target. Improvements to Clang's diagnostics @@ -144,6 +144,16 @@ libclang Static Analyzer --------------- +The `-analyzer-config` options are now passed from scan-build through to +ccc-analyzer and then to Clang. + +With the option `-analyzer-config stable-report-filename=true`, +instead of `report-XXXXXX.html`, scan-build/clang analyzer generate +`report----.html`. +(id = i++ for several issues found in the same function/method). + +List the function/method name in the index page of scan-build. + ... Core Analysis Improvements diff --git a/clang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp b/clang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp index 2a4554648220..b1e9f06cae00 100644 --- a/clang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp +++ b/clang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp @@ -26,6 +26,7 @@ #include "llvm/Support/MemoryBuffer.h" #include "llvm/Support/Path.h" #include "llvm/Support/raw_ostream.h" +#include using namespace clang; using namespace ento; @@ -292,14 +293,15 @@ void HTMLDiagnostics::ReportDiag(const PathDiagnostic& D, std::error_code EC; do { // Find a filename which is not already used + std::stringstream filename; Model = ""; + filename << "report-" + << llvm::sys::path::filename(Entry->getName()).str() + << "-" << declName.c_str() + << "-" << offsetDecl + << "-" << i << ".html"; llvm::sys::path::append(Model, Directory, - "report-" + - llvm::sys::path::filename(Entry->getName()) + - "-" + - declName.c_str() + - "-" + std::to_string(offsetDecl) + - "-" + std::to_string(i) + ".html"); + filename.str()); EC = llvm::sys::fs::openFileForWrite(Model.str(), FD, llvm::sys::fs::F_RW |