Index: head/devel/llvm37/Makefile =================================================================== --- head/devel/llvm37/Makefile (revision 405901) +++ head/devel/llvm37/Makefile (revision 405902) @@ -1,411 +1,430 @@ # $FreeBSD$ PORTNAME= llvm -DISTVERSION= 3.7.0 -PORTREVISION= 6 +DISTVERSION= 3.7.1 CATEGORIES= devel lang MASTER_SITES= http://llvm.org/${PRE_}releases/${LLVM_RELEASE}/${RCDIR} DISTNAME= ${PORTNAME}-${DISTVERSION}.src DISTFILES= ${PORTNAME}-${DISTVERSION}.src${EXTRACT_SUFX} PKGNAMESUFFIX= ${LLVM_SUFFIX} MAINTAINER= brooks@FreeBSD.org COMMENT= LLVM and Clang LLVM_RELEASE= ${DISTVERSION:C/rc.*//} RCDIR= ${DISTVERSION:S/${LLVM_RELEASE}//:C|(rc.*)|\1/|} PRE_= ${DISTVERSION:C/.*rc.*/pre-/:N*[0-9]*} LLVM_SUFFIX= ${DISTVERSION:R:S/.//} LLVM_PREFIX= ${PREFIX}/llvm${LLVM_SUFFIX} DOCSDIR= ${PREFIX}/share/doc/${PORTNAME}${LLVM_SUFFIX} DATADIR= ${PREFIX}/share/${PORTNAME}${LLVM_SUFFIX} USES= cmake:outsource compiler:c++11-lib libedit ninja perl5 tar:xz USE_LDCONFIG= ${LLVM_PREFIX}/lib SUB_FILES= llvm-wrapper.sh SUB_LIST= LLVM_PREFIX="${LLVM_PREFIX}" LLVM_SUFFIX="${LLVM_SUFFIX}" CMAKE_INSTALL_PREFIX= ${LLVM_PREFIX} CMAKE_ARGS= -DBUILD_SHARED_LIBS=ON OPTIONS_DEFINE= CLANG COMPILER_RT DOCS EXTRAS GOLD LIT LLD LLDB OPTIONS_DEFINE_amd64= OPENMP OPTIONS_DEFAULT= CLANG EXTRAS GOLD LIT LLD LLDB OPTIONS_DEFAULT_amd64= COMPILER_RT OPENMP OPTIONS_DEFAULT_i386= COMPILER_RT OPTIONS_SUB= yes CLANG_DESC= Build clang CLANG_EXTRA_PATCHES= \ ${PATCHDIR}/clang-patch-fformat_extensions.diff \ + ${PATCHDIR}/clang-patch-static-analizer.diff \ ${PATCHDIR}/clang-patch-tools_clang_lib_Headers_CMakeLists.txt \ ${PATCHDIR}/clang-patch-tools_clang_tools_clang-format_clang-format.py \ ${PATCHDIR}/clang-patch-svn-250416 CLANG_CONFLICTS_INSTALL= clang-devel-3.[1234567]* CLANG_DISTFILES= cfe-${DISTVERSION}.src${EXTRACT_SUFX} CLANG_CMAKE_ON= -DCLANG_DEFAULT_OPENMP_RUNTIME=libomp CLANG_PORTDOCS= clang COMPILER_RT_DESC= Build compiler-rt (sanitizers) COMPILER_RT_DISTFILES= compiler-rt-${DISTVERSION}.src${EXTRACT_SUFX} COMPILER_RT_EXTRA_PATCHES= \ ${PATCHDIR}/compiler-rt-patch-svn-249051 DOCS_PORTDOCS= llvm DOCS_CMAKE_ON= -DLLVM_ENABLE_SPHINX=ON \ -DSPHINX_WARNINGS_AS_ERRORS=OFF \ -DLLVM_BUILD_DOCS=ON DOCS_PLIST_FILES= ${MAN1SRCS:S|^|man/man1/|:S|.1$|${LLVM_SUFFIX}.1.gz|} EXTRAS_DESC= Extra clang tools EXTRAS_IMPLIES= CLANG EXTRAS_DISTFILES= clang-tools-extra-${DISTVERSION}.src${EXTRACT_SUFX} LIT_DESC= Install lit and FileCheck test tools LLD_DESC= Install lld, the LLVM linker LLD_DISTFILES= lld-${DISTVERSION}.src${EXTRACT_SUFX} LLDB_DESC= Install lldb, the LLVM debugger (ignored on 9.x) LLDB_BUILD_DEPENDS= swig:${PORTSDIR}/devel/swig13 LLDB_DISTFILES= lldb-${DISTVERSION}.src${EXTRACT_SUFX} OPENMP_DESC= Install libomp, the LLVM OpenMP runtime library OPENMP_DISTFILES= openmp-${DISTVERSION}.src${EXTRACT_SUFX} GOLD_DESC= Build the LLVM Gold plugin for LTO GOLD_CMAKE_ON= -DLLVM_BINUTILS_INCDIR=${LOCALBASE}/include GOLD_BUILD_DEPENDS= ld.gold:${PORTSDIR}/devel/binutils # Emulate USE_GITHUB's ${WRKSRC_tag} to reduce diffs to ../llvm-devel .for option in CLANG COMPILER_RT EXTRAS LLD LLDB OPENMP WRKSRC_${option:tl}= ${WRKDIR}/${${option}_DISTFILES:S/${EXTRACT_SUFX}//} .endfor OPTIONS_SUB= yes DOCS_BUILD_DEPENDS= sphinx-build:${PORTSDIR}/textproc/py-sphinx PLIST_SUB+= LLVM_RELEASE=${LLVM_RELEASE} COMMANDS= bugpoint \ llc \ lli \ llvm-ar \ llvm-as \ llvm-bcanalyzer \ llvm-config \ llvm-cov \ llvm-diff \ llvm-dis \ llvm-dwarfdump \ llvm-extract \ llvm-link \ llvm-mc \ llvm-mcmarkup \ llvm-nm \ llvm-objdump \ llvm-profdata \ llvm-ranlib \ llvm-readobj \ llvm-rtdyld \ llvm-size \ llvm-stress \ llvm-symbolizer \ llvm-tblgen \ macho-dump \ opt FIRST_COMMAND= ${COMMANDS:C/^/XXXX/1:MXXXX*:C/^XXXX//} STRIP_LIBS= BugpointPasses.so \ LLVMHello.so \ ${LIBNAME}.0 \ libLTO.so EXTRAS_COMMANDS+= \ clang-apply-replacements \ clang-modernize \ clang-rename \ clang-tidy EXTRAS_LIBS= libclangApplyReplacements \ libclangQuery \ libclangRename \ libclangTidy \ libclangTidyGoogleModule \ libclangTidyLLVMModule \ libclangTidyMiscModule \ libclangTidyReadabilityModule \ libclangTidyUtils \ libmodernizeCore EXTRAS_PATTERN= ${EXTRAS_COMMANDS:tW:C/ */|/g}|${EXTRAS_LIBS:tW:C/ */|/g} .include # keep in sync with /usr/src/lib/clang/clang.build.mk CONFIGURE_TARGET:=${ARCH:C/amd64/x86_64/:C/armv6hf/armv6/}-portbld-${OPSYS:tl}${OSREL} .if ${PORT_OPTIONS:MCLANG} COMMANDS+= clang \ clang++ \ clang-check \ clang-cpp \ clang-format \ - clang-tblgen -MAN1SRCS+= clang.1 + clang-tblgen \ + scan-build \ + scan-view +MAN1SRCS+= clang.1 \ + scan-build.1 +CLANG_PATTERN= (c-index-test|clang|scan-|Reporter.py|ScanView.py|scanview.css|sorttable.js|startfile.py|-analyzer) .endif .if ${PORT_OPTIONS:MEXTRAS} COMMANDS+= ${EXTRAS_COMMANDS} .endif .if ${PORT_OPTIONS:MCOMPILER_RT} SAN_LIBDIR=${LLVM_PREFIX}/lib/clang/${LLVM_RELEASE}/lib/freebsd .if ${ARCH} == "amd64" # Disable i386 variants on amd64. EXTRA_PATCHES+= \ ${PATCHDIR}/compiler-rt-patch-tools_compiler-rt_cmake_config-ix.cmake PLIST_FILES+= \ ${SAN_LIBDIR}/libclang_rt.asan-preinit-x86_64.a \ ${SAN_LIBDIR}/libclang_rt.asan-x86_64.a \ ${SAN_LIBDIR}/libclang_rt.asan-x86_64.a.syms \ ${SAN_LIBDIR}/libclang_rt.asan-x86_64.so \ ${SAN_LIBDIR}/libclang_rt.asan_cxx-x86_64.a \ ${SAN_LIBDIR}/libclang_rt.asan_cxx-x86_64.a.syms \ ${SAN_LIBDIR}/libclang_rt.builtins-x86_64.a \ ${SAN_LIBDIR}/libclang_rt.dd-x86_64.a \ ${SAN_LIBDIR}/libclang_rt.dyndd-x86_64.so \ ${SAN_LIBDIR}/libclang_rt.lsan-x86_64.a \ ${SAN_LIBDIR}/libclang_rt.profile-x86_64.a \ ${SAN_LIBDIR}/libclang_rt.safestack-x86_64.a \ ${SAN_LIBDIR}/libclang_rt.tsan-x86_64.a \ ${SAN_LIBDIR}/libclang_rt.tsan-x86_64.a.syms \ ${SAN_LIBDIR}/libclang_rt.tsan_cxx-x86_64.a \ ${SAN_LIBDIR}/libclang_rt.tsan_cxx-x86_64.a.syms \ ${SAN_LIBDIR}/libclang_rt.ubsan_standalone-x86_64.a \ ${SAN_LIBDIR}/libclang_rt.ubsan_standalone-x86_64.a.syms \ ${SAN_LIBDIR}/libclang_rt.ubsan_standalone_cxx-x86_64.a \ ${SAN_LIBDIR}/libclang_rt.ubsan_standalone_cxx-x86_64.a.syms .elif ${ARCH} == "i386" PLIST_FILES+= \ ${SAN_LIBDIR}/libclang_rt.asan-i386.a \ ${SAN_LIBDIR}/libclang_rt.asan-i386.so \ ${SAN_LIBDIR}/libclang_rt.asan-preinit-i386.a \ ${SAN_LIBDIR}/libclang_rt.asan_cxx-i386.a \ ${SAN_LIBDIR}/libclang_rt.builtins-i386.a \ ${SAN_LIBDIR}/libclang_rt.profile-i386.a \ ${SAN_LIBDIR}/libclang_rt.safestack-i386.a \ ${SAN_LIBDIR}/libclang_rt.ubsan_standalone-i386.a \ ${SAN_LIBDIR}/libclang_rt.ubsan_standalone_cxx-i386.a .else BROKEN= no packaging data for sanitizers on ${ARCH}. Disable COMPILER_RT. .endif .endif .if ${PORT_OPTIONS:MLIT} MAN1SRCS+= lit.1 FileCheck.1 _USES_PYTHON= python LIT_COMMANDS= lit llvm-lit FileCheck .endif .if ${PORT_OPTIONS:MLLD} COMMANDS+= lld PORTDOCS+= lld .endif .if ${PORT_OPTIONS:MLLDB} COMMANDS+= argdumper \ lldb \ lldb-mi \ lldb-server _USES_PYTHON= python .endif .if ! ${OPTIONS_DEFINE:MOPENMP} # Hack to disable OPENMP in plist of unsupported architectures PLIST_SUB+= OPENMP="@comment " .else .endif _USES_PYTHON?= python:build USES+= ${_USES_PYTHON} MAN1SRCS+= bugpoint.1 llc.1 lli.1 llvm-ar.1 llvm-as.1 \ llvm-bcanalyzer.1 llvm-build.1 llvm-config.1 llvm-cov.1 \ llvm-diff.1 llvm-dis.1 llvm-dwarfdump.1 \ llvm-extract.1 llvm-link.1 llvm-nm.1 \ llvm-profdata.1 llvm-readobj.1 llvm-stress.1 llvm-symbolizer.1 \ opt.1 tblgen.1 NOT_FOR_ARCH= ia64 .include .if ${PYTHON_REL} < 3400 LLDB_BUILD_DEPENDS+= \ ${PYTHON_PKGNAMEPREFIX}enum34>0:${PORTSDIR}/devel/py-enum34 .endif .if ${PORT_OPTIONS:MLLDB} && ${PYTHON_REL} >= 3000 BROKEN= LLDB does not build with Python 3 .endif .if ${OPSYS} == "FreeBSD" && ${COMPILER_TYPE} != clang # Evil hack around gcc48 not providing a usable c++11 environment on 9.x PLIST_SUB:= ${PLIST_SUB:NLLDB=*} LLDB="@comment " .else .if ${PORT_OPTIONS:MLLDB} EXTRA_PATCHES+= \ ${PATCHDIR}/lldb-patch-svn-247116 \ ${PATCHDIR}/lldb-patch-svn-249467 .endif .endif post-extract-CLANG-on: ${MV} ${WRKSRC_clang} ${PATCH_WRKSRC}/tools/clang + ${MKDIR} ${PATCH_WRKSRC}/tools/clang/tools/scan-view/share + cd ${PATCH_WRKSRC}/tools/clang/tools/scan-view && \ + ${MV} Resources/bugcatcher.ico Resources/FileRadar.scpt \ + Resources/GetRadarVersion.scpt share + ${RM} ${PATCH_WRKSRC}/tools/clang/tools/scan-build/sorttable.js + ${RM} ${PATCH_WRKSRC}/tools/clang/tools/scan-build/scanview.css + ${RM} ${PATCH_WRKSRC}/tools/clang/tools/scan-build/set-xcode-analyzer + ${RM} ${PATCH_WRKSRC}/tools/clang/tools/scan-build/scan-build.1 + ${RM} ${PATCH_WRKSRC}/tools/clang/tools/scan-build/scan-build.* + ${RM} ${PATCH_WRKSRC}/tools/clang/tools/scan-build/ccc-analyzer.* + ${RM} ${PATCH_WRKSRC}/tools/clang/tools/scan-build/c++-analyzer.* + ${RM} ${PATCH_WRKSRC}/tools/clang/tools/scan-view/Reporter.py + ${RM} ${PATCH_WRKSRC}/tools/clang/tools/scan-view/ScanView.py + ${RM} ${PATCH_WRKSRC}/tools/clang/tools/scan-view/scan-view + ${RM} ${PATCH_WRKSRC}/tools/clang/tools/scan-view/startfile.py post-extract-EXTRAS-on: ${MV} ${WRKSRC_extras} ${PATCH_WRKSRC}/tools/clang/tools/extra post-extract-COMPILER_RT-on: ${MV} ${WRKSRC_compiler_rt} ${PATCH_WRKSRC}/tools/compiler-rt post-extract-LLD-on: ${MV} ${WRKSRC_lld} ${PATCH_WRKSRC}/tools/lld post-extract-LLDB-on: .if ${OPSYS} != "FreeBSD" || ${COMPILER_TYPE} == clang ${MV} ${WRKSRC_lldb} ${PATCH_WRKSRC}/tools/lldb .endif post-extract-OPENMP-on: ${MV} ${WRKSRC_openmp} ${PATCH_WRKSRC}/tools/openmp post-patch: ${REINPLACE_CMD} -e 's|import lit|import lit${LLVM_SUFFIX}|' \ -e 's|from lit|from lit${LLVM_SUFFIX}|' \ -e 's|lit\.|lit${LLVM_SUFFIX}.|' \ ${WRKSRC}/utils/lit/lit.py ${WRKSRC}/utils/lit/lit/*.py post-install: ${RMDIR} ${STAGEDIR}${LLVM_PREFIX}/include/llvm/MC/MCAnalysis ${INSTALL_SCRIPT} ${WRKDIR}/llvm-wrapper.sh \ ${STAGEDIR}${PREFIX}/bin/${FIRST_COMMAND}${LLVM_SUFFIX} .for command in ${COMMANDS:C/^/XXXX/1:NXXXX*} ${LN} -f ${STAGEDIR}${PREFIX}/bin/${FIRST_COMMAND}${LLVM_SUFFIX} \ ${STAGEDIR}${PREFIX}/bin/${command}${LLVM_SUFFIX} .endfor post-install-DOCS-on: ${MV} ${STAGEDIR}${LLVM_PREFIX}/share/doc ${STAGEDIR}${DOCSDIR} .for _man in ${MAN1SRCS} ${MV} ${STAGEDIR}${LLVM_PREFIX}/share/man/man1/${_man} \ ${STAGEDIR}${MANPREFIX}/man/man1/${_man:R}${LLVM_SUFFIX}.1 .endfor .if ! ${PORT_OPTIONS:MLIT} ${RM} ${STAGEDIR}${LLVM_PREFIX}/share/man/man1/lit.1 ${RM} ${STAGEDIR}${LLVM_PREFIX}/share/man/man1/FileCheck.1 .endif ${RMDIR} ${STAGEDIR}${LLVM_PREFIX}/share/man/man1/ ${RMDIR} ${STAGEDIR}${LLVM_PREFIX}/share/man/ post-install-LLDB-on: .if ${OPSYS} != "FreeBSD" || ${COMPILER_TYPE} == clang ${RM} ${STAGEDIR}${LLVM_PREFIX}/lib/python*/site-packages/lib .endif post-install-CLANG-on: ${LN} -f ${STAGEDIR}${LLVM_PREFIX}/bin/clang \ ${STAGEDIR}${LLVM_PREFIX}/bin/clang-cpp ${INSTALL_PROGRAM} ${WRKDIR}/.build/bin/clang-tblgen \ ${STAGEDIR}${LLVM_PREFIX}/bin/ post-install-LIT-on: ${INSTALL_SCRIPT} ${PATCH_WRKSRC}/utils/lit/lit.py \ ${STAGEDIR}${LLVM_PREFIX}/bin/lit ${LN} -f ${STAGEDIR}${LLVM_PREFIX}/bin/lit \ ${STAGEDIR}${LLVM_PREFIX}/bin/llvm-lit ${LN} -f ${STAGEDIR}${LLVM_PREFIX}/bin/lit \ ${STAGEDIR}${PREFIX}/bin/lit${LLVM_SUFFIX} ${LN} -f ${STAGEDIR}${LLVM_PREFIX}/bin/lit \ ${STAGEDIR}${PREFIX}/bin/llvm-lit${LLVM_SUFFIX} ${MKDIR} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/lit${LLVM_SUFFIX} ${INSTALL_DATA} ${WRKSRC}/utils/lit/lit/*.py \ ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/lit${LLVM_SUFFIX} ${INSTALL_PROGRAM} ${WRKDIR}/.build/bin/FileCheck \ ${STAGEDIR}${LLVM_PREFIX}/bin/ ${LN} -f ${STAGEDIR}${LLVM_PREFIX}/bin/FileCheck \ ${STAGEDIR}${PREFIX}/bin/FileCheck${LLVM_SUFFIX} TEST_CMD= '(cd ${WRKSRC}/test; ${SETENV} ${MAKE_ENV} LD_LIBRARY_PATH=${WRKSRC}/Release/lib ${MAKE_CMD} check-local-lit)' regression-test: ${BUILD_COOKIE} if [ `${ID} -u` = 0 ]; then \ ${CHOWN} -R nobody ${WRKSRC}/test; \ su -m nobody -c ${TEST_CMD}; \ else \ ${SH} -c ${TEST_CMD}; \ fi build-plist: ${RM} -f ${PLIST} ${PLIST}.tmp .for command in ${COMMANDS} ${ECHO_CMD} bin/${command}${LLVM_SUFFIX} >> ${PLIST}.tmp .endfor .for command in ${LIT_COMMANDS} ${ECHO_CMD} %%LIT%%bin/${command}${LLVM_SUFFIX} >> ${PLIST}.tmp ${ECHO_CMD} %%LIT%%${LLVM_PREFIX:S|${PREFIX}/||}/bin/${command} >> ${PLIST}.tmp .endfor ${FIND} ${STAGEDIR}${LLVM_PREFIX} -type f -o -type l | \ ${GREP} -v 'lit$$' | ${GREP} -v 'FileCheck$$' | \ ${GREP} -v man/man1 | ${SED} -e 's|${STAGEDIR}${PREFIX}/||' \ -e 's|${LLVM_RELEASE}|%%LLVM_RELEASE%%|' \ -e 's|release.cmake|%%CMAKE_BUILD_TYPE%%.cmake|' | \ ${SORT} >> ${PLIST}.tmp ${FIND} ${STAGEDIR}${PYTHON_SITELIBDIR}/lit${LLVM_SUFFIX} -type f | \ ${SED} -e 's|${STAGEDIR}${PYTHON_SITELIBDIR}|%%LIT%%%%PYTHON_SITELIBDIR%%|' | \ ${SORT} >> ${PLIST}.tmp awk '{ \ - if ($$0 ~ /clang/ && $$0 !~ /(omp.h|libclang_rt|sanitizer|blacklist.txt|${EXTRAS_PATTERN})/) {printf "%%%%CLANG%%%%"} \ + if ($$0 ~ /${CLANG_PATTERN}/ && $$0 !~ /(omp.h|libclang_rt|sanitizer|blacklist.txt|${EXTRAS_PATTERN})/) {printf "%%%%CLANG%%%%"} \ if ($$0 ~ /(sanitizer|blacklist.txt)/) {printf "%%%%COMPILER_RT%%%%"} \ if ($$0 ~ /(${EXTRAS_PATTERN})/) {printf "%%%%EXTRAS%%%%"} \ if ($$0 ~ /lld/ && $$0 !~ /lldb/) {printf "%%%%LLD%%%%"} \ if ($$0 ~ /(argdumper|lldb)/) {printf "%%%%LLDB%%%%"} \ if ($$0 ~ /lib.*omp/) {printf "%%%%OPENMP%%%%"} \ if ($$0 ~ /LLVMgold/) {printf "%%%%GOLD%%%%"} \ if ($$0 !~ /libclang_rt/) {print}}' ${PLIST}.tmp >> ${PLIST} ${RM} -f ${PLIST}.tmp check-commands: .for command in ${COMMANDS} test -e ${STAGEDIR}${LLVM_PREFIX}/bin/${command} .endfor .if make(svn-patch-clang) .if !defined(PATCH_REV) .error svn-patch-clang requires that PATCH_REV be set .endif _PATCH_FILE=${FILESDIR}/clang-patch-svn-${PATCH_REV} _LLVM_BASE=http://llvm.org/svn/llvm-project/cfe/trunk svn-patch-clang: svn log -c ${PATCH_REV} ${_LLVM_BASE} >> ${_PATCH_FILE} svn diff -c ${PATCH_REV} ${_LLVM_BASE} | \ sed -E -e 's;^(---|\+\+\+) ;\1 tools/clang/;' >> ${_PATCH_FILE} .endif .if make(svn-patch-compiler-rt) .if !defined(PATCH_REV) .error svn-patch-compiler-rt requires that PATCH_REV be set .endif _PATCH_FILE=${FILESDIR}/compiler-rt-patch-svn-${PATCH_REV} _LLVM_BASE=http://llvm.org/svn/llvm-project/compiler-rt/trunk svn-patch-compiler-rt: svn log -c ${PATCH_REV} ${_LLVM_BASE} >> ${_PATCH_FILE} svn diff -c ${PATCH_REV} ${_LLVM_BASE} | \ sed -E -e 's;^(---|\+\+\+) ;\1 tools/compiler-rt/;' >> ${_PATCH_FILE} .endif .if make(svn-patch-lldb) .if !defined(PATCH_REV) .error svn-patch-lldb requires that PATCH_REV be set .endif _PATCH_FILE=${FILESDIR}/lldb-patch-svn-${PATCH_REV} _LLVM_BASE=http://llvm.org/svn/llvm-project/lldb/trunk svn-patch-lldb: svn log -c ${PATCH_REV} ${_LLVM_BASE} >> ${_PATCH_FILE} svn diff -c ${PATCH_REV} ${_LLVM_BASE} | \ sed -E -e 's;^(---|\+\+\+) ;\1 tools/lldb/;' >> ${_PATCH_FILE} .endif .include Index: head/devel/llvm37/distinfo =================================================================== --- head/devel/llvm37/distinfo (revision 405901) +++ head/devel/llvm37/distinfo (revision 405902) @@ -1,14 +1,14 @@ -SHA256 (llvm-3.7.0.src.tar.xz) = ab45895f9dcdad1e140a3a79fd709f64b05ad7364e308c0e582c5b02e9cc3153 -SIZE (llvm-3.7.0.src.tar.xz) = 14636252 -SHA256 (cfe-3.7.0.src.tar.xz) = 4ed740c5a91df1c90a4118c5154851d6a475f39a91346bdf268c1c29c13aa1cc -SIZE (cfe-3.7.0.src.tar.xz) = 9147204 -SHA256 (clang-tools-extra-3.7.0.src.tar.xz) = 8ae8a0a3a96b7a700412d67df0af172cb2fc1326beec575fcc0f71d2e72709cd -SIZE (clang-tools-extra-3.7.0.src.tar.xz) = 276628 -SHA256 (compiler-rt-3.7.0.src.tar.xz) = 227fa998520bc94974a428dc8e7654d9bdf277e5bc70d4064ebc05691bd62b0b -SIZE (compiler-rt-3.7.0.src.tar.xz) = 1192832 -SHA256 (lld-3.7.0.src.tar.xz) = ddb658b789c501efbe4f54ff8ced2c07cd9ff686c92445d8a1ab2cd5dbd837ed -SIZE (lld-3.7.0.src.tar.xz) = 586440 -SHA256 (lldb-3.7.0.src.tar.xz) = f4d7505bc111044eaa4033af012221e492938405b62522b8e3e354c20c4b71e9 -SIZE (lldb-3.7.0.src.tar.xz) = 10649660 -SHA256 (openmp-3.7.0.src.tar.xz) = 8d8a224e5689596a35652fda87e4be29853c4b85fbc7a6562019badfad779f2a -SIZE (openmp-3.7.0.src.tar.xz) = 2251108 +SHA256 (llvm-3.7.1.src.tar.xz) = be7794ed0cec42d6c682ca8e3517535b54555a3defabec83554dbc74db545ad5 +SIZE (llvm-3.7.1.src.tar.xz) = 14592544 +SHA256 (cfe-3.7.1.src.tar.xz) = 56e2164c7c2a1772d5ed2a3e57485ff73ff06c97dff12edbeea1acc4412b0674 +SIZE (cfe-3.7.1.src.tar.xz) = 9110616 +SHA256 (compiler-rt-3.7.1.src.tar.xz) = 9d4769e4a927d3824bcb7a9c82b01e307c68588e6de4e7f04ab82d82c5af8181 +SIZE (compiler-rt-3.7.1.src.tar.xz) = 1181772 +SHA256 (clang-tools-extra-3.7.1.src.tar.xz) = 4a91edaccad1ce984c7c49a4a87db186b7f7b21267b2b03bcf4bd7820715bc6b +SIZE (clang-tools-extra-3.7.1.src.tar.xz) = 277476 +SHA256 (lld-3.7.1.src.tar.xz) = a929cb44b45e3181a0ad02d8c9df1d3fc71e001139455c6805f3abf2835ef3ac +SIZE (lld-3.7.1.src.tar.xz) = 586008 +SHA256 (lldb-3.7.1.src.tar.xz) = 9a0bc315ef55f44c98cdf92d064df0847f453ed156dd0ef6a87e04f5fd6a0e01 +SIZE (lldb-3.7.1.src.tar.xz) = 10650524 +SHA256 (openmp-3.7.1.src.tar.xz) = 9a702e20c247014f6de8c45b738c6ea586eca0559304520f565ac9a7cba4bf9a +SIZE (openmp-3.7.1.src.tar.xz) = 2026988 Index: head/devel/llvm37/files/clang-patch-static-analizer.diff =================================================================== --- head/devel/llvm37/files/clang-patch-static-analizer.diff (nonexistent) +++ head/devel/llvm37/files/clang-patch-static-analizer.diff (revision 405902) @@ -0,0 +1,5332 @@ +diff --git tools/clang/tools/CMakeLists.txt tools/clang/tools/CMakeLists.txt.orig +index 891bf84..dba676a 100644 +--- tools/clang/tools/CMakeLists.txt.orig ++++ tools/clang/tools/CMakeLists.txt +@@ -5,6 +5,8 @@ add_clang_subdirectory(driver) + add_subdirectory(clang-format) + add_subdirectory(clang-format-vs) + add_subdirectory(clang-fuzzer) ++add_subdirectory(scan-build) ++add_subdirectory(scan-view) + + add_subdirectory(c-index-test) + add_subdirectory(libclang) +diff --git tools/clang/tools/scan-build/CMakeLists.txt tools/clang/tools/scan-build/CMakeLists.txt.orig +new file mode 100644 +index 0000000..78c243d +--- /dev/null ++++ tools/clang/tools/scan-build/CMakeLists.txt +@@ -0,0 +1,82 @@ ++option(CLANG_INSTALL_SCANBUILD "Install the scan-build tool" ON) ++ ++include(GNUInstallDirs) ++ ++if (WIN32 AND NOT CYGWIN) ++ set(BinFiles ++ scan-build.bat) ++ set(LibexecFiles ++ ccc-analyzer.bat ++ c++-analyzer.bat) ++else() ++ set(BinFiles ++ scan-build) ++ set(LibexecFiles ++ ccc-analyzer ++ c++-analyzer) ++ if (APPLE) ++ list(APPEND BinFiles ++ set-xcode-analyzer) ++ endif() ++endif() ++ ++set(ManPages ++ scan-build.1) ++ ++set(ShareFiles ++ scanview.css ++ sorttable.js) ++ ++ ++if(CLANG_INSTALL_SCANBUILD) ++ foreach(BinFile ${BinFiles}) ++ add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/bin/${BinFile} ++ COMMAND ${CMAKE_COMMAND} -E make_directory ++ ${CMAKE_BINARY_DIR}/bin ++ COMMAND ${CMAKE_COMMAND} -E copy ++ ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile} ++ ${CMAKE_BINARY_DIR}/bin/ ++ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/bin/${BinFile}) ++ list(APPEND Depends ${CMAKE_BINARY_DIR}/bin/${BinFile}) ++ install(PROGRAMS bin/${BinFile} DESTINATION bin) ++ endforeach() ++ ++ foreach(LibexecFile ${LibexecFiles}) ++ add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/libexec/${LibexecFile} ++ COMMAND ${CMAKE_COMMAND} -E make_directory ++ ${CMAKE_BINARY_DIR}/libexec ++ COMMAND ${CMAKE_COMMAND} -E copy ++ ${CMAKE_CURRENT_SOURCE_DIR}/libexec/${LibexecFile} ++ ${CMAKE_BINARY_DIR}/libexec/ ++ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/libexec/${LibexecFile}) ++ list(APPEND Depends ${CMAKE_BINARY_DIR}/libexec/${LibexecFile}) ++ install(PROGRAMS libexec/${LibexecFile} DESTINATION libexec) ++ endforeach() ++ ++ foreach(ManPage ${ManPages}) ++ add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_MANDIR}/man1/${ManPage} ++ COMMAND ${CMAKE_COMMAND} -E make_directory ++ ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_MANDIR}/man1 ++ COMMAND ${CMAKE_COMMAND} -E copy ++ ${CMAKE_CURRENT_SOURCE_DIR}/man/${ManPage} ++ ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_MANDIR}/man1/ ++ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/man/${ManPage}) ++ list(APPEND Depends ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_MANDIR}/man1/${ManPage}) ++ install(PROGRAMS man/${ManPage} DESTINATION ${CMAKE_INSTALL_MANDIR}/man1) ++ endforeach() ++ ++ foreach(ShareFile ${ShareFiles}) ++ add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/share/scan-build/${ShareFile} ++ COMMAND ${CMAKE_COMMAND} -E make_directory ++ ${CMAKE_BINARY_DIR}/share/scan-build ++ COMMAND ${CMAKE_COMMAND} -E copy ++ ${CMAKE_CURRENT_SOURCE_DIR}/share/scan-build/${ShareFile} ++ ${CMAKE_BINARY_DIR}/share/scan-build/ ++ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/share/scan-build/${ShareFile}) ++ list(APPEND Depends ${CMAKE_BINARY_DIR}/share/scan-build/${ShareFile}) ++ install(FILES share/scan-build/${ShareFile} DESTINATION share/scan-build) ++ endforeach() ++ ++ add_custom_target(scan-build ALL DEPENDS ${Depends}) ++ set_target_properties(scan-build PROPERTIES FOLDER "Misc") ++endif() +diff --git tools/clang/tools/scan-build/Makefile tools/clang/tools/scan-build/Makefile.orig +new file mode 100644 +index 0000000..23aa198 +--- /dev/null ++++ tools/clang/tools/scan-build/Makefile +@@ -0,0 +1,53 @@ ++##===- tools/scan-build/Makefile ---------------------------*- Makefile -*-===## ++# ++# The LLVM Compiler Infrastructure ++# ++# This file is distributed under the University of Illinois Open Source ++# License. See LICENSE.TXT for details. ++# ++##===----------------------------------------------------------------------===## ++ ++CLANG_LEVEL := ../.. ++ ++include $(CLANG_LEVEL)/../../Makefile.config ++include $(CLANG_LEVEL)/Makefile ++ ++ifeq ($(HOST_OS),MingW) ++ Suffix := .bat ++endif ++ ++CLANG_INSTALL_SCANBUILD ?= 1 ++ ++ifeq ($(CLANG_INSTALL_SCANBUILD), 1) ++ InstallTargets := $(ToolDir)/scan-build$(Suffix) \ ++ $(LibexecDir)/c++-analyzer$(Suffix) \ ++ $(LibexecDir)/ccc-analyzer$(Suffix) \ ++ $(ShareDir)/scan-build/scanview.css \ ++ $(ShareDir)/scan-build/sorttable.js \ ++ $(ShareDir)/man/man1/scan-build.1 ++ ++ ifeq ($(HOST_OS),Darwin) ++ InstallTargets := $(InstallTargets) $(ToolDir)/set-xcode-analyzer ++ endif ++endif ++ ++all:: $(InstallTargets) ++ ++$(ToolDir)/%: bin/% Makefile $(ToolDir)/.dir ++ $(Echo) "Copying $(notdir $<) to the 'bin' directory..." ++ $(Verb)cp $< $@ ++ $(Verb)chmod +x $@ ++ ++$(LibexecDir)/%: libexec/% Makefile $(LibexecDir)/.dir ++ $(Echo) "Copying $(notdir $<) to the 'libexec' directory..." ++ $(Verb)cp $< $@ ++ $(Verb)chmod +x $@ ++ ++$(ShareDir)/man/man1/%: man/% Makefile $(ShareDir)/man/man1/.dir ++ $(Echo) "Copying $(notdir $<) to the 'man' directory..." ++ $(Verb)cp $< $@ ++ ++$(ShareDir)/scan-build/%: share/scan-build/% Makefile $(ShareDir)/scan-build/.dir ++ $(Echo) "Copying $(notdir $<) to the 'share' directory..." ++ $(Verb)cp $< $@ ++ +diff --git tools/clang/tools/scan-build/bin/scan-build tools/clang/tools/scan-build/bin/scan-build.orig +new file mode 100755 +index 0000000..6a14484 +--- /dev/null ++++ tools/clang/tools/scan-build/bin/scan-build +@@ -0,0 +1,1832 @@ ++#!/usr/bin/env perl ++# ++# The LLVM Compiler Infrastructure ++# ++# This file is distributed under the University of Illinois Open Source ++# License. See LICENSE.TXT for details. ++# ++##===----------------------------------------------------------------------===## ++# ++# A script designed to wrap a build so that all calls to gcc are intercepted ++# and piped to the static analyzer. ++# ++##===----------------------------------------------------------------------===## ++ ++use strict; ++use warnings; ++use FindBin qw($RealBin); ++use Digest::MD5; ++use File::Basename; ++use File::Find; ++use File::Copy qw(copy); ++use File::Path qw( rmtree mkpath ); ++use Term::ANSIColor; ++use Term::ANSIColor qw(:constants); ++use Cwd qw/ getcwd abs_path /; ++use Sys::Hostname; ++use Hash::Util qw(lock_keys); ++ ++my $Prog = "scan-build"; ++my $BuildName; ++my $BuildDate; ++ ++my $TERM = $ENV{'TERM'}; ++my $UseColor = (defined $TERM and $TERM =~ 'xterm-.*color' and -t STDOUT ++ and defined $ENV{'SCAN_BUILD_COLOR'}); ++ ++# Portability: getpwuid is not implemented for Win32 (see Perl language ++# reference, perlport), use getlogin instead. ++my $UserName = HtmlEscape(getlogin() || getpwuid($<) || 'unknown'); ++my $HostName = HtmlEscape(hostname() || 'unknown'); ++my $CurrentDir = HtmlEscape(getcwd()); ++ ++my $CmdArgs; ++ ++my $Date = localtime(); ++ ++# Command-line/config arguments. ++my %Options = ( ++ Verbose => 0, # Verbose output from this script. ++ AnalyzeHeaders => 0, ++ OutputDir => undef, # Parent directory to store HTML files. ++ HtmlTitle => basename($CurrentDir)." - scan-build results", ++ IgnoreErrors => 0, # Ignore build errors. ++ ViewResults => 0, # View results when the build terminates. ++ ExitStatusFoundBugs => 0, # Exit status reflects whether bugs were found ++ KeepEmpty => 0, # Don't remove output directory even with 0 results. ++ EnableCheckers => {}, ++ DisableCheckers => {}, ++ UseCC => undef, # C compiler to use for compilation. ++ UseCXX => undef, # C++ compiler to use for compilation. ++ AnalyzerTarget => undef, ++ StoreModel => undef, ++ ConstraintsModel => undef, ++ InternalStats => undef, ++ OutputFormat => "html", ++ ConfigOptions => [], # Options to pass through to the analyzer's -analyzer-config flag. ++ ReportFailures => undef, ++ AnalyzerStats => 0, ++ MaxLoop => 0, ++ PluginsToLoad => [], ++ AnalyzerDiscoveryMethod => undef, ++ OverrideCompiler => 0 # The flag corresponding to the --override-compiler command line option. ++); ++lock_keys(%Options); ++ ++##----------------------------------------------------------------------------## ++# Diagnostics ++##----------------------------------------------------------------------------## ++ ++sub Diag { ++ if ($UseColor) { ++ print BOLD, MAGENTA "$Prog: @_"; ++ print RESET; ++ } ++ else { ++ print "$Prog: @_"; ++ } ++} ++ ++sub ErrorDiag { ++ if ($UseColor) { ++ print STDERR BOLD, RED "$Prog: "; ++ print STDERR RESET, RED @_; ++ print STDERR RESET; ++ } else { ++ print STDERR "$Prog: @_"; ++ } ++} ++ ++sub DiagCrashes { ++ my $Dir = shift; ++ Diag ("The analyzer encountered problems on some source files.\n"); ++ Diag ("Preprocessed versions of these sources were deposited in '$Dir/failures'.\n"); ++ Diag ("Please consider submitting a bug report using these files:\n"); ++ Diag (" http://clang-analyzer.llvm.org/filing_bugs.html\n") ++} ++ ++sub DieDiag { ++ if ($UseColor) { ++ print STDERR BOLD, RED "$Prog: "; ++ print STDERR RESET, RED @_; ++ print STDERR RESET; ++ } ++ else { ++ print STDERR "$Prog: ", @_; ++ } ++ exit 1; ++} ++ ++##----------------------------------------------------------------------------## ++# Print default checker names ++##----------------------------------------------------------------------------## ++ ++if (grep /^--help-checkers$/, @ARGV) { ++ my @options = qx($0 -h); ++ foreach (@options) { ++ next unless /^ \+/; ++ s/^\s*//; ++ my ($sign, $name, @text) = split ' ', $_; ++ print $name, $/ if $sign eq '+'; ++ } ++ exit 0; ++} ++ ++##----------------------------------------------------------------------------## ++# Declaration of Clang options. Populated later. ++##----------------------------------------------------------------------------## ++ ++my $Clang; ++my $ClangSB; ++my $ClangCXX; ++my $ClangVersion; ++ ++##----------------------------------------------------------------------------## ++# GetHTMLRunDir - Construct an HTML directory name for the current sub-run. ++##----------------------------------------------------------------------------## ++ ++sub GetHTMLRunDir { ++ die "Not enough arguments." if (@_ == 0); ++ my $Dir = shift @_; ++ my $TmpMode = 0; ++ if (!defined $Dir) { ++ $Dir = $ENV{'TMPDIR'} || $ENV{'TEMP'} || $ENV{'TMP'} || "/tmp"; ++ $TmpMode = 1; ++ } ++ ++ # Chop off any trailing '/' characters. ++ while ($Dir =~ /\/$/) { chop $Dir; } ++ ++ # Get current date and time. ++ my @CurrentTime = localtime(); ++ my $year = $CurrentTime[5] + 1900; ++ my $day = $CurrentTime[3]; ++ my $month = $CurrentTime[4] + 1; ++ my $hour = $CurrentTime[2]; ++ my $min = $CurrentTime[1]; ++ my $sec = $CurrentTime[0]; ++ ++ my $TimeString = sprintf("%02d%02d%02d", $hour, $min, $sec); ++ my $DateString = sprintf("%d-%02d-%02d-%s-$$", ++ $year, $month, $day, $TimeString); ++ ++ # Determine the run number. ++ my $RunNumber; ++ ++ if (-d $Dir) { ++ if (! -r $Dir) { ++ DieDiag("directory '$Dir' exists but is not readable.\n"); ++ } ++ # Iterate over all files in the specified directory. ++ my $max = 0; ++ opendir(DIR, $Dir); ++ my @FILES = grep { -d "$Dir/$_" } readdir(DIR); ++ closedir(DIR); ++ ++ foreach my $f (@FILES) { ++ # Strip the prefix '$Prog-' if we are dumping files to /tmp. ++ if ($TmpMode) { ++ next if (!($f =~ /^$Prog-(.+)/)); ++ $f = $1; ++ } ++ ++ my @x = split/-/, $f; ++ next if (scalar(@x) != 4); ++ next if ($x[0] != $year); ++ next if ($x[1] != $month); ++ next if ($x[2] != $day); ++ next if ($x[3] != $TimeString); ++ next if ($x[4] != $$); ++ ++ if ($x[5] > $max) { ++ $max = $x[5]; ++ } ++ } ++ ++ $RunNumber = $max + 1; ++ } ++ else { ++ ++ if (-x $Dir) { ++ DieDiag("'$Dir' exists but is not a directory.\n"); ++ } ++ ++ if ($TmpMode) { ++ DieDiag("The directory '/tmp' does not exist or cannot be accessed.\n"); ++ } ++ ++ # $Dir does not exist. It will be automatically created by the ++ # clang driver. Set the run number to 1. ++ ++ $RunNumber = 1; ++ } ++ ++ die "RunNumber must be defined!" if (!defined $RunNumber); ++ ++ # Append the run number. ++ my $NewDir; ++ if ($TmpMode) { ++ $NewDir = "$Dir/$Prog-$DateString-$RunNumber"; ++ } ++ else { ++ $NewDir = "$Dir/$DateString-$RunNumber"; ++ } ++ ++ # Make sure that the directory does not exist in order to avoid hijack. ++ if (-e $NewDir) { ++ DieDiag("The directory '$NewDir' already exists.\n"); ++ } ++ ++ mkpath($NewDir); ++ return $NewDir; ++} ++ ++sub SetHtmlEnv { ++ ++ die "Wrong number of arguments." if (scalar(@_) != 2); ++ ++ my $Args = shift; ++ my $Dir = shift; ++ ++ die "No build command." if (scalar(@$Args) == 0); ++ ++ my $Cmd = $$Args[0]; ++ ++ if ($Cmd =~ /configure/ || $Cmd =~ /autogen/) { ++ return; ++ } ++ ++ if ($Options{Verbose}) { ++ Diag("Emitting reports for this run to '$Dir'.\n"); ++ } ++ ++ $ENV{'CCC_ANALYZER_HTML'} = $Dir; ++} ++ ++##----------------------------------------------------------------------------## ++# ComputeDigest - Compute a digest of the specified file. ++##----------------------------------------------------------------------------## ++ ++sub ComputeDigest { ++ my $FName = shift; ++ DieDiag("Cannot read $FName to compute Digest.\n") if (! -r $FName); ++ ++ # Use Digest::MD5. We don't have to be cryptographically secure. We're ++ # just looking for duplicate files that come from a non-malicious source. ++ # We use Digest::MD5 because it is a standard Perl module that should ++ # come bundled on most systems. ++ open(FILE, $FName) or DieDiag("Cannot open $FName when computing Digest.\n"); ++ binmode FILE; ++ my $Result = Digest::MD5->new->addfile(*FILE)->hexdigest; ++ close(FILE); ++ ++ # Return the digest. ++ return $Result; ++} ++ ++##----------------------------------------------------------------------------## ++# UpdatePrefix - Compute the common prefix of files. ++##----------------------------------------------------------------------------## ++ ++my $Prefix; ++ ++sub UpdatePrefix { ++ my $x = shift; ++ my $y = basename($x); ++ $x =~ s/\Q$y\E$//; ++ ++ if (!defined $Prefix) { ++ $Prefix = $x; ++ return; ++ } ++ ++ chop $Prefix while (!($x =~ /^\Q$Prefix/)); ++} ++ ++sub GetPrefix { ++ return $Prefix; ++} ++ ++##----------------------------------------------------------------------------## ++# UpdateInFilePath - Update the path in the report file. ++##----------------------------------------------------------------------------## ++ ++sub UpdateInFilePath { ++ my $fname = shift; ++ my $regex = shift; ++ my $newtext = shift; ++ ++ open (RIN, $fname) or die "cannot open $fname"; ++ open (ROUT, ">", "$fname.tmp") or die "cannot open $fname.tmp"; ++ ++ while () { ++ s/$regex/$newtext/; ++ print ROUT $_; ++ } ++ ++ close (ROUT); ++ close (RIN); ++ rename("$fname.tmp", $fname) ++} ++ ++##----------------------------------------------------------------------------## ++# AddStatLine - Decode and insert a statistics line into the database. ++##----------------------------------------------------------------------------## ++ ++sub AddStatLine { ++ my $Line = shift; ++ my $Stats = shift; ++ my $File = shift; ++ ++ print $Line . "\n"; ++ ++ my $Regex = qr/(.*?)\ ->\ Total\ CFGBlocks:\ (\d+)\ \|\ Unreachable ++ \ CFGBlocks:\ (\d+)\ \|\ Exhausted\ Block:\ (yes|no)\ \|\ Empty\ WorkList: ++ \ (yes|no)/x; ++ ++ if ($Line !~ $Regex) { ++ return; ++ } ++ ++ # Create a hash of the interesting fields ++ my $Row = { ++ Filename => $File, ++ Function => $1, ++ Total => $2, ++ Unreachable => $3, ++ Aborted => $4, ++ Empty => $5 ++ }; ++ ++ # Add them to the stats array ++ push @$Stats, $Row; ++} ++ ++##----------------------------------------------------------------------------## ++# ScanFile - Scan a report file for various identifying attributes. ++##----------------------------------------------------------------------------## ++ ++# Sometimes a source file is scanned more than once, and thus produces ++# multiple error reports. We use a cache to solve this problem. ++ ++my %AlreadyScanned; ++ ++sub ScanFile { ++ ++ my $Index = shift; ++ my $Dir = shift; ++ my $FName = shift; ++ my $Stats = shift; ++ ++ # Compute a digest for the report file. Determine if we have already ++ # scanned a file that looks just like it. ++ ++ my $digest = ComputeDigest("$Dir/$FName"); ++ ++ if (defined $AlreadyScanned{$digest}) { ++ # Redundant file. Remove it. ++ unlink("$Dir/$FName"); ++ return; ++ } ++ ++ $AlreadyScanned{$digest} = 1; ++ ++ # At this point the report file is not world readable. Make it happen. ++ chmod(0644, "$Dir/$FName"); ++ ++ # Scan the report file for tags. ++ open(IN, "$Dir/$FName") or DieDiag("Cannot open '$Dir/$FName'\n"); ++ ++ my $BugType = ""; ++ my $BugFile = ""; ++ my $BugFunction = ""; ++ my $BugCategory = ""; ++ my $BugDescription = ""; ++ my $BugPathLength = 1; ++ my $BugLine = 0; ++ ++ while () { ++ last if (//); ++ ++ if (/$/) { ++ $BugType = $1; ++ } ++ elsif (/$/) { ++ $BugFile = abs_path($1); ++ if (!defined $BugFile) { ++ # The file no longer exists: use the original path. ++ $BugFile = $1; ++ } ++ UpdatePrefix($BugFile); ++ } ++ elsif (/$/) { ++ $BugPathLength = $1; ++ } ++ elsif (/$/) { ++ $BugLine = $1; ++ } ++ elsif (/$/) { ++ $BugCategory = $1; ++ } ++ elsif (/$/) { ++ $BugDescription = $1; ++ } ++ elsif (/$/) { ++ $BugFunction = $1; ++ } ++ ++ } ++ ++ ++ close(IN); ++ ++ if (!defined $BugCategory) { ++ $BugCategory = "Other"; ++ } ++ ++ # Don't add internal statistics to the bug reports ++ if ($BugCategory =~ /statistics/i) { ++ AddStatLine($BugDescription, $Stats, $BugFile); ++ return; ++ } ++ ++ push @$Index,[ $FName, $BugCategory, $BugType, $BugFile, $BugFunction, $BugLine, ++ $BugPathLength ]; ++} ++ ++##----------------------------------------------------------------------------## ++# CopyFiles - Copy resource files to target directory. ++##----------------------------------------------------------------------------## ++ ++sub CopyFiles { ++ ++ my $Dir = shift; ++ ++ my $JS = Cwd::realpath("$RealBin/../share/scan-build/sorttable.js"); ++ ++ DieDiag("Cannot find 'sorttable.js'.\n") ++ if (! -r $JS); ++ ++ copy($JS, "$Dir"); ++ ++ DieDiag("Could not copy 'sorttable.js' to '$Dir'.\n") ++ if (! -r "$Dir/sorttable.js"); ++ ++ my $CSS = Cwd::realpath("$RealBin/../share/scan-build/scanview.css"); ++ ++ DieDiag("Cannot find 'scanview.css'.\n") ++ if (! -r $CSS); ++ ++ copy($CSS, "$Dir"); ++ ++ DieDiag("Could not copy 'scanview.css' to '$Dir'.\n") ++ if (! -r $CSS); ++} ++ ++##----------------------------------------------------------------------------## ++# CalcStats - Calculates visitation statistics and returns the string. ++##----------------------------------------------------------------------------## ++ ++sub CalcStats { ++ my $Stats = shift; ++ ++ my $TotalBlocks = 0; ++ my $UnreachedBlocks = 0; ++ my $TotalFunctions = scalar(@$Stats); ++ my $BlockAborted = 0; ++ my $WorkListAborted = 0; ++ my $Aborted = 0; ++ ++ # Calculate the unique files ++ my $FilesHash = {}; ++ ++ foreach my $Row (@$Stats) { ++ $FilesHash->{$Row->{Filename}} = 1; ++ $TotalBlocks += $Row->{Total}; ++ $UnreachedBlocks += $Row->{Unreachable}; ++ $BlockAborted++ if $Row->{Aborted} eq 'yes'; ++ $WorkListAborted++ if $Row->{Empty} eq 'no'; ++ $Aborted++ if $Row->{Aborted} eq 'yes' || $Row->{Empty} eq 'no'; ++ } ++ ++ my $TotalFiles = scalar(keys(%$FilesHash)); ++ ++ # Calculations ++ my $PercentAborted = sprintf("%.2f", $Aborted / $TotalFunctions * 100); ++ my $PercentBlockAborted = sprintf("%.2f", $BlockAborted / $TotalFunctions ++ * 100); ++ my $PercentWorkListAborted = sprintf("%.2f", $WorkListAborted / ++ $TotalFunctions * 100); ++ my $PercentBlocksUnreached = sprintf("%.2f", $UnreachedBlocks / $TotalBlocks ++ * 100); ++ ++ my $StatsString = "Analyzed $TotalBlocks blocks in $TotalFunctions functions" ++ . " in $TotalFiles files\n" ++ . "$Aborted functions aborted early ($PercentAborted%)\n" ++ . "$BlockAborted had aborted blocks ($PercentBlockAborted%)\n" ++ . "$WorkListAborted had unfinished worklists ($PercentWorkListAborted%)\n" ++ . "$UnreachedBlocks blocks were never reached ($PercentBlocksUnreached%)\n"; ++ ++ return $StatsString; ++} ++ ++##----------------------------------------------------------------------------## ++# Postprocess - Postprocess the results of an analysis scan. ++##----------------------------------------------------------------------------## ++ ++my @filesFound; ++my $baseDir; ++sub FileWanted { ++ my $baseDirRegEx = quotemeta $baseDir; ++ my $file = $File::Find::name; ++ ++ # The name of the file is generated by clang binary (HTMLDiagnostics.cpp) ++ if ($file =~ /report-.*\.html$/) { ++ my $relative_file = $file; ++ $relative_file =~ s/$baseDirRegEx//g; ++ push @filesFound, $relative_file; ++ } ++} ++ ++sub Postprocess { ++ ++ my $Dir = shift; ++ my $BaseDir = shift; ++ my $AnalyzerStats = shift; ++ my $KeepEmpty = shift; ++ ++ die "No directory specified." if (!defined $Dir); ++ ++ if (! -d $Dir) { ++ Diag("No bugs found.\n"); ++ return 0; ++ } ++ ++ $baseDir = $Dir . "/"; ++ find({ wanted => \&FileWanted, follow => 0}, $Dir); ++ ++ if (scalar(@filesFound) == 0 and ! -e "$Dir/failures") { ++ if (! $KeepEmpty) { ++ Diag("Removing directory '$Dir' because it contains no reports.\n"); ++ rmtree($Dir) or die "Cannot rmtree '$Dir' : $!"; ++ } ++ Diag("No bugs found.\n"); ++ return 0; ++ } ++ ++ # Scan each report file and build an index. ++ my @Index; ++ my @Stats; ++ foreach my $file (@filesFound) { ScanFile(\@Index, $Dir, $file, \@Stats); } ++ ++ # Scan the failures directory and use the information in the .info files ++ # to update the common prefix directory. ++ my @failures; ++ my @attributes_ignored; ++ if (-d "$Dir/failures") { ++ opendir(DIR, "$Dir/failures"); ++ @failures = grep { /[.]info.txt$/ && !/attribute_ignored/; } readdir(DIR); ++ closedir(DIR); ++ opendir(DIR, "$Dir/failures"); ++ @attributes_ignored = grep { /^attribute_ignored/; } readdir(DIR); ++ closedir(DIR); ++ foreach my $file (@failures) { ++ open IN, "$Dir/failures/$file" or DieDiag("cannot open $file\n"); ++ my $Path = ; ++ if (defined $Path) { UpdatePrefix($Path); } ++ close IN; ++ } ++ } ++ ++ # Generate an index.html file. ++ my $FName = "$Dir/index.html"; ++ open(OUT, ">", $FName) or DieDiag("Cannot create file '$FName'\n"); ++ ++ # Print out the header. ++ ++print OUT < ++ ++${Options{HtmlTitle}} ++ ++ ++ ++ ++ ++ ++

${Options{HtmlTitle}}

++ ++ ++ ++ ++ ++ ++ ++ENDTEXT ++ ++print OUT "\n" ++ if (defined($BuildName) && defined($BuildDate)); ++ ++print OUT < ++ENDTEXT ++ ++ if (scalar(@filesFound)) { ++ # Print out the summary table. ++ my %Totals; ++ ++ for my $row ( @Index ) { ++ my $bug_type = ($row->[2]); ++ my $bug_category = ($row->[1]); ++ my $key = "$bug_category:$bug_type"; ++ ++ if (!defined $Totals{$key}) { $Totals{$key} = [1,$bug_category,$bug_type]; } ++ else { $Totals{$key}->[0]++; } ++ } ++ ++ print OUT "

Bug Summary

"; ++ ++ if (defined $BuildName) { ++ print OUT "\n

Results in this analysis run are based on analyzer build $BuildName.

\n" ++ } ++ ++ my $TotalBugs = scalar(@Index); ++print OUT < ++
++ ++ENDTEXT ++ ++ my $last_category; ++ ++ for my $key ( ++ sort { ++ my $x = $Totals{$a}; ++ my $y = $Totals{$b}; ++ my $res = $x->[1] cmp $y->[1]; ++ $res = $x->[2] cmp $y->[2] if ($res == 0); ++ $res ++ } keys %Totals ) ++ { ++ my $val = $Totals{$key}; ++ my $category = $val->[1]; ++ if (!defined $last_category or $last_category ne $category) { ++ $last_category = $category; ++ print OUT "\n"; ++ } ++ my $x = lc $key; ++ $x =~ s/[ ,'":\/()]+/_/g; ++ print OUT "\n"; ++ } ++ ++ # Print out the table of errors. ++ ++print OUT < ++

Reports

++ ++
User:${UserName}\@${HostName}
Working Directory:${CurrentDir}
Command Line:${CmdArgs}
Clang Version:${ClangVersion}
Date:${Date}
Version:${BuildName} (${BuildDate})
Bug TypeQuantityDisplay?
All Bugs$TotalBugs
$category
"; ++ print OUT $val->[2]; ++ print OUT ""; ++ print OUT $val->[0]; ++ print OUT "
++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ENDTEXT ++ ++ my $prefix = GetPrefix(); ++ my $regex; ++ my $InFileRegex; ++ my $InFilePrefix = "File:"; ++ print OUT ""; ++ print OUT ""; ++ ++ # Update the file prefix. ++ my $fname = $row->[3]; ++ ++ if (defined $regex) { ++ $fname =~ s/$regex//; ++ UpdateInFilePath("$Dir/$ReportFile", $InFileRegex, $InFilePrefix) ++ } ++ ++ print OUT ""; ++ ++ print OUT ""; ++ ++ # Print out the quantities. ++ for my $j ( 5 .. 6 ) { ++ print OUT ""; ++ } ++ ++ # Print the rest of the columns. ++ for (my $j = 7; $j <= $#{$row}; ++$j) { ++ print OUT "" ++ } ++ ++ # Emit the "View" link. ++ print OUT ""; ++ ++ # Emit REPORTBUG markers. ++ print OUT "\n\n"; ++ ++ # End the row. ++ print OUT "\n"; ++ } ++ ++ print OUT "\n
Bug GroupBug Type ▾FileFunction/MethodLinePath Length
"; ++ ++ if (defined $prefix) { ++ $regex = qr/^\Q$prefix\E/is; ++ $InFileRegex = qr/\Q$InFilePrefix$prefix\E/is; ++ } ++ ++ for my $row ( sort { $a->[2] cmp $b->[2] } @Index ) { ++ my $x = "$row->[1]:$row->[2]"; ++ $x = lc $x; ++ $x =~ s/[ ,'":\/()]+/_/g; ++ ++ my $ReportFile = $row->[0]; ++ ++ print OUT "
"; ++ print OUT $row->[1]; ++ print OUT ""; ++ print OUT $row->[2]; ++ print OUT ""; ++ my @fname = split /\//,$fname; ++ if ($#fname > 0) { ++ while ($#fname >= 0) { ++ my $x = shift @fname; ++ print OUT $x; ++ if ($#fname >= 0) { ++ print OUT "/"; ++ } ++ } ++ } ++ else { ++ print OUT $fname; ++ } ++ print OUT ""; ++ print OUT $row->[4]; ++ print OUT "$row->[$j]$row->[$j]View Report
\n\n"; ++ } ++ ++ if (scalar (@failures) || scalar(@attributes_ignored)) { ++ print OUT "

Analyzer Failures

\n"; ++ ++ if (scalar @attributes_ignored) { ++ print OUT "The analyzer's parser ignored the following attributes:

\n"; ++ print OUT "\n"; ++ print OUT "\n"; ++ foreach my $file (sort @attributes_ignored) { ++ die "cannot demangle attribute name\n" if (! ($file =~ /^attribute_ignored_(.+).txt/)); ++ my $attribute = $1; ++ # Open the attribute file to get the first file that failed. ++ next if (!open (ATTR, "$Dir/failures/$file")); ++ my $ppfile = ; ++ chomp $ppfile; ++ close ATTR; ++ next if (! -e "$Dir/failures/$ppfile"); ++ # Open the info file and get the name of the source file. ++ open (INFO, "$Dir/failures/$ppfile.info.txt") or ++ die "Cannot open $Dir/failures/$ppfile.info.txt\n"; ++ my $srcfile = ; ++ chomp $srcfile; ++ close (INFO); ++ # Print the information in the table. ++ my $prefix = GetPrefix(); ++ if (defined $prefix) { $srcfile =~ s/^\Q$prefix//; } ++ print OUT "\n"; ++ my $ppfile_clang = $ppfile; ++ $ppfile_clang =~ s/[.](.+)$/.clang.$1/; ++ print OUT " \n"; ++ } ++ print OUT "
AttributeSource FilePreprocessed FileSTDERR Output
$attribute$srcfile$ppfile$ppfile.stderr.txt
\n"; ++ } ++ ++ if (scalar @failures) { ++ print OUT "

The analyzer had problems processing the following files:

\n"; ++ print OUT "\n"; ++ print OUT "\n"; ++ foreach my $file (sort @failures) { ++ $file =~ /(.+).info.txt$/; ++ # Get the preprocessed file. ++ my $ppfile = $1; ++ # Open the info file and get the name of the source file. ++ open (INFO, "$Dir/failures/$file") or ++ die "Cannot open $Dir/failures/$file\n"; ++ my $srcfile = ; ++ chomp $srcfile; ++ my $problem = ; ++ chomp $problem; ++ close (INFO); ++ # Print the information in the table. ++ my $prefix = GetPrefix(); ++ if (defined $prefix) { $srcfile =~ s/^\Q$prefix//; } ++ print OUT "\n"; ++ my $ppfile_clang = $ppfile; ++ $ppfile_clang =~ s/[.](.+)$/.clang.$1/; ++ print OUT " \n"; ++ } ++ print OUT "
ProblemSource FilePreprocessed FileSTDERR Output
$problem$srcfile$ppfile$ppfile.stderr.txt
\n"; ++ } ++ print OUT "

Please consider submitting preprocessed files as bug reports.

\n"; ++ } ++ ++ print OUT "\n"; ++ close(OUT); ++ CopyFiles($Dir); ++ ++ # Make sure $Dir and $BaseDir are world readable/executable. ++ chmod(0755, $Dir); ++ if (defined $BaseDir) { chmod(0755, $BaseDir); } ++ ++ # Print statistics ++ print CalcStats(\@Stats) if $AnalyzerStats; ++ ++ my $Num = scalar(@Index); ++ if ($Num == 1) { ++ Diag("$Num bug found.\n"); ++ } else { ++ Diag("$Num bugs found.\n"); ++ } ++ if ($Num > 0 && -r "$Dir/index.html") { ++ Diag("Run 'scan-view $Dir' to examine bug reports.\n"); ++ } ++ ++ DiagCrashes($Dir) if (scalar @failures || scalar @attributes_ignored); ++ ++ return $Num; ++} ++ ++##----------------------------------------------------------------------------## ++# RunBuildCommand - Run the build command. ++##----------------------------------------------------------------------------## ++ ++sub AddIfNotPresent { ++ my $Args = shift; ++ my $Arg = shift; ++ my $found = 0; ++ ++ foreach my $k (@$Args) { ++ if ($k eq $Arg) { ++ $found = 1; ++ last; ++ } ++ } ++ ++ if ($found == 0) { ++ push @$Args, $Arg; ++ } ++} ++ ++sub SetEnv { ++ my $EnvVars = shift @_; ++ foreach my $var ('CC', 'CXX', 'CLANG', 'CLANG_CXX', ++ 'CCC_ANALYZER_ANALYSIS', 'CCC_ANALYZER_PLUGINS', ++ 'CCC_ANALYZER_CONFIG') { ++ die "$var is undefined\n" if (!defined $var); ++ $ENV{$var} = $EnvVars->{$var}; ++ } ++ foreach my $var ('CCC_ANALYZER_STORE_MODEL', ++ 'CCC_ANALYZER_CONSTRAINTS_MODEL', ++ 'CCC_ANALYZER_INTERNAL_STATS', ++ 'CCC_ANALYZER_OUTPUT_FORMAT', ++ 'CCC_CC', ++ 'CCC_CXX', ++ 'CCC_REPORT_FAILURES', ++ 'CLANG_ANALYZER_TARGET') { ++ my $x = $EnvVars->{$var}; ++ if (defined $x) { $ENV{$var} = $x } ++ } ++ my $Verbose = $EnvVars->{'VERBOSE'}; ++ if ($Verbose >= 2) { ++ $ENV{'CCC_ANALYZER_VERBOSE'} = 1; ++ } ++ if ($Verbose >= 3) { ++ $ENV{'CCC_ANALYZER_LOG'} = 1; ++ } ++} ++ ++sub RunXcodebuild { ++ my $Args = shift; ++ my $IgnoreErrors = shift; ++ my $CCAnalyzer = shift; ++ my $CXXAnalyzer = shift; ++ my $EnvVars = shift; ++ ++ if ($IgnoreErrors) { ++ AddIfNotPresent($Args,"-PBXBuildsContinueAfterErrors=YES"); ++ } ++ ++ # Detect the version of Xcode. If Xcode 4.6 or higher, use new ++ # in situ support for analyzer interposition without needed to override ++ # the compiler. ++ open(DETECT_XCODE, "-|", $Args->[0], "-version") or ++ die "error: cannot detect version of xcodebuild\n"; ++ ++ my $oldBehavior = 1; ++ ++ while() { ++ if (/^Xcode (.+)$/) { ++ my $ver = $1; ++ if ($ver =~ /^([0-9]+[.][0-9]+)[^0-9]?/) { ++ if ($1 >= 4.6) { ++ $oldBehavior = 0; ++ last; ++ } ++ } ++ } ++ } ++ close(DETECT_XCODE); ++ ++ # If --override-compiler is explicitely requested, resort to the old ++ # behavior regardless of Xcode version. ++ if ($Options{OverrideCompiler}) { ++ $oldBehavior = 1; ++ } ++ ++ if ($oldBehavior == 0) { ++ my $OutputDir = $EnvVars->{"OUTPUT_DIR"}; ++ my $CLANG = $EnvVars->{"CLANG"}; ++ my $OtherFlags = $EnvVars->{"CCC_ANALYZER_ANALYSIS"}; ++ push @$Args, ++ "RUN_CLANG_STATIC_ANALYZER=YES", ++ "CLANG_ANALYZER_OUTPUT=plist-html", ++ "CLANG_ANALYZER_EXEC=$CLANG", ++ "CLANG_ANALYZER_OUTPUT_DIR=$OutputDir", ++ "CLANG_ANALYZER_OTHER_FLAGS=$OtherFlags"; ++ ++ return (system(@$Args) >> 8); ++ } ++ ++ # Default to old behavior where we insert a bogus compiler. ++ SetEnv($EnvVars); ++ ++ # Check if using iPhone SDK 3.0 (simulator). If so the compiler being ++ # used should be gcc-4.2. ++ if (!defined $ENV{"CCC_CC"}) { ++ for (my $i = 0 ; $i < scalar(@$Args); ++$i) { ++ if ($Args->[$i] eq "-sdk" && $i + 1 < scalar(@$Args)) { ++ if (@$Args[$i+1] =~ /^iphonesimulator3/) { ++ $ENV{"CCC_CC"} = "gcc-4.2"; ++ $ENV{"CCC_CXX"} = "g++-4.2"; ++ } ++ } ++ } ++ } ++ ++ # Disable PCH files until clang supports them. ++ AddIfNotPresent($Args,"GCC_PRECOMPILE_PREFIX_HEADER=NO"); ++ ++ # When 'CC' is set, xcodebuild uses it to do all linking, even if we are ++ # linking C++ object files. Set 'LDPLUSPLUS' so that xcodebuild uses 'g++' ++ # (via c++-analyzer) when linking such files. ++ $ENV{"LDPLUSPLUS"} = $CXXAnalyzer; ++ ++ return (system(@$Args) >> 8); ++} ++ ++sub RunBuildCommand { ++ my $Args = shift; ++ my $IgnoreErrors = shift; ++ my $Cmd = $Args->[0]; ++ my $CCAnalyzer = shift; ++ my $CXXAnalyzer = shift; ++ my $EnvVars = shift; ++ ++ if ($Cmd =~ /\bxcodebuild$/) { ++ return RunXcodebuild($Args, $IgnoreErrors, $CCAnalyzer, $CXXAnalyzer, $EnvVars); ++ } ++ ++ # Setup the environment. ++ SetEnv($EnvVars); ++ ++ if ($Cmd =~ /(.*\/?gcc[^\/]*$)/ or ++ $Cmd =~ /(.*\/?cc[^\/]*$)/ or ++ $Cmd =~ /(.*\/?llvm-gcc[^\/]*$)/ or ++ $Cmd =~ /(.*\/?clang$)/ or ++ $Cmd =~ /(.*\/?ccc-analyzer[^\/]*$)/) { ++ ++ if (!($Cmd =~ /ccc-analyzer/) and !defined $ENV{"CCC_CC"}) { ++ $ENV{"CCC_CC"} = $1; ++ } ++ ++ shift @$Args; ++ unshift @$Args, $CCAnalyzer; ++ } ++ elsif ($Cmd =~ /(.*\/?g\+\+[^\/]*$)/ or ++ $Cmd =~ /(.*\/?c\+\+[^\/]*$)/ or ++ $Cmd =~ /(.*\/?llvm-g\+\+[^\/]*$)/ or ++ $Cmd =~ /(.*\/?clang\+\+$)/ or ++ $Cmd =~ /(.*\/?c\+\+-analyzer[^\/]*$)/) { ++ if (!($Cmd =~ /c\+\+-analyzer/) and !defined $ENV{"CCC_CXX"}) { ++ $ENV{"CCC_CXX"} = $1; ++ } ++ shift @$Args; ++ unshift @$Args, $CXXAnalyzer; ++ } ++ elsif ($Cmd eq "make" or $Cmd eq "gmake" or $Cmd eq "mingw32-make") { ++ AddIfNotPresent($Args, "CC=$CCAnalyzer"); ++ AddIfNotPresent($Args, "CXX=$CXXAnalyzer"); ++ if ($IgnoreErrors) { ++ AddIfNotPresent($Args,"-k"); ++ AddIfNotPresent($Args,"-i"); ++ } ++ } ++ ++ return (system(@$Args) >> 8); ++} ++ ++##----------------------------------------------------------------------------## ++# DisplayHelp - Utility function to display all help options. ++##----------------------------------------------------------------------------## ++ ++sub DisplayHelp { ++ ++ my $ArgClangNotFoundErrMsg = shift; ++print < [build options] ++ ++ENDTEXT ++ ++ if (defined $BuildName) { ++ print "ANALYZER BUILD: $BuildName ($BuildDate)\n\n"; ++ } ++ ++print < ++ ++ Specifies the output directory for analyzer reports. Subdirectories will be ++ created as needed to represent separate "runs" of the analyzer. If this ++ option is not specified, a directory is created in /tmp (TMPDIR on Mac OS X) ++ to store the reports. ++ ++ -h ++ --help ++ ++ Display this message. ++ ++ -k ++ --keep-going ++ ++ Add a "keep on going" option to the specified build command. This option ++ currently supports make and xcodebuild. This is a convenience option; one ++ can specify this behavior directly using build options. ++ ++ --html-title [title] ++ --html-title=[title] ++ ++ Specify the title used on generated HTML pages. If not specified, a default ++ title will be used. ++ ++ -plist ++ ++ By default the output of scan-build is a set of HTML files. This option ++ outputs the results as a set of .plist files. ++ ++ -plist-html ++ ++ By default the output of scan-build is a set of HTML files. This option ++ outputs the results as a set of HTML and .plist files. ++ ++ --status-bugs ++ ++ By default, the exit status of scan-build is the same as the executed build ++ command. Specifying this option causes the exit status of scan-build to be 1 ++ if it found potential bugs and 0 otherwise. ++ ++ --use-cc [compiler path] ++ --use-cc=[compiler path] ++ ++ scan-build analyzes a project by interposing a "fake compiler", which ++ executes a real compiler for compilation and the static analyzer for analysis. ++ Because of the current implementation of interposition, scan-build does not ++ know what compiler your project normally uses. Instead, it simply overrides ++ the CC environment variable, and guesses your default compiler. ++ ++ In the future, this interposition mechanism to be improved, but if you need ++ scan-build to use a specific compiler for *compilation* then you can use ++ this option to specify a path to that compiler. ++ ++ If the given compiler is a cross compiler, you may also need to provide ++ --analyzer-target option to properly analyze the source code because static ++ analyzer runs as if the code is compiled for the host machine by default. ++ ++ --use-c++ [compiler path] ++ --use-c++=[compiler path] ++ ++ This is the same as "--use-cc" but for C++ code. ++ ++ --analyzer-target [target triple name for analysis] ++ --analyzer-target=[target triple name for analysis] ++ ++ This provides target triple information to clang static analyzer. ++ It only changes the target for analysis but doesn't change the target of a ++ real compiler given by --use-cc and --use-c++ options. ++ ++ -v ++ ++ Enable verbose output from scan-build. A second and third '-v' increases ++ verbosity. ++ ++ -V ++ --view ++ ++ View analysis results in a web browser when the build completes. ++ ++ADVANCED OPTIONS: ++ ++ -no-failure-reports ++ ++ Do not create a 'failures' subdirectory that includes analyzer crash reports ++ and preprocessed source files. ++ ++ -stats ++ ++ Generates visitation statistics for the project being analyzed. ++ ++ -maxloop ++ ++ Specifiy the number of times a block can be visited before giving up. ++ Default is 4. Increase for more comprehensive coverage at a cost of speed. ++ ++ -internal-stats ++ ++ Generate internal analyzer statistics. ++ ++ --use-analyzer [Xcode|path to clang] ++ --use-analyzer=[Xcode|path to clang] ++ ++ scan-build uses the 'clang' executable relative to itself for static ++ analysis. One can override this behavior with this option by using the ++ 'clang' packaged with Xcode (on OS X) or from the PATH. ++ ++ --keep-empty ++ ++ Don't remove the build results directory even if no issues were reported. ++ ++ --override-compiler ++ Always resort to the ccc-analyzer even when better interposition methods ++ are available. ++ ++ -analyzer-config ++ ++ Provide options to pass through to the analyzer's -analyzer-config flag. ++ Several options are separated with comma: 'key1=val1,key2=val2' ++ ++ Available options: ++ * stable-report-filename=true or false (default) ++ Switch the page naming to: ++ report---.html ++ instead of report-XXXXXX.html ++ ++CONTROLLING CHECKERS: ++ ++ A default group of checkers are always run unless explicitly disabled. ++ Checkers may be enabled/disabled using the following options: ++ ++ -enable-checker [checker name] ++ -disable-checker [checker name] ++ ++LOADING CHECKERS: ++ ++ Loading external checkers using the clang plugin interface: ++ ++ -load-plugin [plugin library] ++ENDTEXT ++ ++ if (defined $Clang && -x $Clang) { ++ # Query clang for list of checkers that are enabled. ++ ++ # create a list to load the plugins via the 'Xclang' command line ++ # argument ++ my @PluginLoadCommandline_xclang; ++ foreach my $param ( @{$Options{PluginsToLoad}} ) { ++ push ( @PluginLoadCommandline_xclang, "-Xclang" ); ++ push ( @PluginLoadCommandline_xclang, "-load" ); ++ push ( @PluginLoadCommandline_xclang, "-Xclang" ); ++ push ( @PluginLoadCommandline_xclang, $param ); ++ } ++ ++ my %EnabledCheckers; ++ foreach my $lang ("c", "objective-c", "objective-c++", "c++") { ++ my $ExecLine = join(' ', qq/"$Clang"/, @PluginLoadCommandline_xclang, "--analyze", "-x", $lang, "-", "-###", "2>&1", "|"); ++ open(PS, $ExecLine); ++ while () { ++ foreach my $val (split /\s+/) { ++ $val =~ s/\"//g; ++ if ($val =~ /-analyzer-checker\=([^\s]+)/) { ++ $EnabledCheckers{$1} = 1; ++ } ++ } ++ } ++ } ++ ++ # Query clang for complete list of checkers. ++ my @PluginLoadCommandline; ++ foreach my $param ( @{$Options{PluginsToLoad}} ) { ++ push ( @PluginLoadCommandline, "-load" ); ++ push ( @PluginLoadCommandline, $param ); ++ } ++ ++ my $ExecLine = join(' ', qq/"$Clang"/, "-cc1", @PluginLoadCommandline, "-analyzer-checker-help", "2>&1", "|"); ++ open(PS, $ExecLine); ++ my $foundCheckers = 0; ++ while () { ++ if (/CHECKERS:/) { ++ $foundCheckers = 1; ++ last; ++ } ++ } ++ if (!$foundCheckers) { ++ print " *** Could not query Clang for the list of available checkers."; ++ } ++ else { ++ print("\nAVAILABLE CHECKERS:\n\n"); ++ my $skip = 0; ++ while() { ++ if (/experimental/) { ++ $skip = 1; ++ next; ++ } ++ if ($skip) { ++ next if (!/^\s\s[^\s]/); ++ $skip = 0; ++ } ++ s/^\s\s//; ++ if (/^([^\s]+)/) { ++ # Is the checker enabled? ++ my $checker = $1; ++ my $enabled = 0; ++ my $aggregate = ""; ++ foreach my $domain (split /\./, $checker) { ++ $aggregate .= $domain; ++ if ($EnabledCheckers{$aggregate}) { ++ $enabled =1; ++ last; ++ } ++ # append a dot, if an additional domain is added in the next iteration ++ $aggregate .= "."; ++ } ++ ++ if ($enabled) { ++ print " + "; ++ } ++ else { ++ print " "; ++ } ++ } ++ else { ++ print " "; ++ } ++ print $_; ++ } ++ print "\nNOTE: \"+\" indicates that an analysis is enabled by default.\n"; ++ } ++ close PS; ++ } ++ else { ++ print " *** Could not query Clang for the list of available checkers.\n"; ++ if (defined $ArgClangNotFoundErrMsg) { ++ print " *** Reason: $ArgClangNotFoundErrMsg\n"; ++ } ++ } ++ ++print </>/g; ++ return $tmp; ++} ++ ++##----------------------------------------------------------------------------## ++# ShellEscape - backslash escape characters that are special to the shell ++##----------------------------------------------------------------------------## ++ ++sub ShellEscape { ++ # copy argument to new variable so we don't clobber the original ++ my $arg = shift || ''; ++ if ($arg =~ /["\s]/) { return "'" . $arg . "'"; } ++ return $arg; ++} ++ ++##----------------------------------------------------------------------------## ++# FindClang - searches for 'clang' executable. ++##----------------------------------------------------------------------------## ++ ++sub FindClang { ++ if (!defined $Options{AnalyzerDiscoveryMethod}) { ++ $Clang = Cwd::realpath("$RealBin/bin/clang") if (-f "$RealBin/bin/clang"); ++ if (!defined $Clang || ! -x $Clang) { ++ $Clang = Cwd::realpath("$RealBin/clang") if (-f "$RealBin/clang"); ++ } ++ if (!defined $Clang || ! -x $Clang) { ++ return "error: Cannot find an executable 'clang' relative to" . ++ " scan-build. Consider using --use-analyzer to pick a version of" . ++ " 'clang' to use for static analysis.\n"; ++ } ++ } ++ else { ++ if ($Options{AnalyzerDiscoveryMethod} =~ /^[Xx]code$/) { ++ my $xcrun = `which xcrun`; ++ chomp $xcrun; ++ if ($xcrun eq "") { ++ return "Cannot find 'xcrun' to find 'clang' for analysis.\n"; ++ } ++ $Clang = `$xcrun -toolchain XcodeDefault -find clang`; ++ chomp $Clang; ++ if ($Clang eq "") { ++ return "No 'clang' executable found by 'xcrun'\n"; ++ } ++ } ++ else { ++ $Clang = $Options{AnalyzerDiscoveryMethod}; ++ if (!defined $Clang or not -x $Clang) { ++ return "Cannot find an executable clang at '$Options{AnalyzerDiscoveryMethod}'\n"; ++ } ++ } ++ } ++ return undef; ++} ++ ++##----------------------------------------------------------------------------## ++# Process command-line arguments. ++##----------------------------------------------------------------------------## ++ ++my $RequestDisplayHelp = 0; ++my $ForceDisplayHelp = 0; ++ ++sub ProcessArgs { ++ my $Args = shift; ++ my $NumArgs = 0; ++ ++ while (@$Args) { ++ ++ $NumArgs++; ++ ++ # Scan for options we recognize. ++ ++ my $arg = $Args->[0]; ++ ++ if ($arg eq "-h" or $arg eq "--help") { ++ $RequestDisplayHelp = 1; ++ shift @$Args; ++ next; ++ } ++ ++ if ($arg eq '-analyze-headers') { ++ shift @$Args; ++ $Options{AnalyzeHeaders} = 1; ++ next; ++ } ++ ++ if ($arg eq "-o") { ++ shift @$Args; ++ ++ if (!@$Args) { ++ DieDiag("'-o' option requires a target directory name.\n"); ++ } ++ ++ # Construct an absolute path. Uses the current working directory ++ # as a base if the original path was not absolute. ++ my $OutDir = shift @$Args; ++ mkpath($OutDir) unless (-e $OutDir); # abs_path wants existing dir ++ $Options{OutputDir} = abs_path($OutDir); ++ ++ next; ++ } ++ ++ if ($arg =~ /^--html-title(=(.+))?$/) { ++ shift @$Args; ++ ++ if (!defined $2 || $2 eq '') { ++ if (!@$Args) { ++ DieDiag("'--html-title' option requires a string.\n"); ++ } ++ ++ $Options{HtmlTitle} = shift @$Args; ++ } else { ++ $Options{HtmlTitle} = $2; ++ } ++ ++ next; ++ } ++ ++ if ($arg eq "-k" or $arg eq "--keep-going") { ++ shift @$Args; ++ $Options{IgnoreErrors} = 1; ++ next; ++ } ++ ++ if ($arg =~ /^--use-cc(=(.+))?$/) { ++ shift @$Args; ++ my $cc; ++ ++ if (!defined $2 || $2 eq "") { ++ if (!@$Args) { ++ DieDiag("'--use-cc' option requires a compiler executable name.\n"); ++ } ++ $cc = shift @$Args; ++ } ++ else { ++ $cc = $2; ++ } ++ ++ $Options{UseCC} = $cc; ++ next; ++ } ++ ++ if ($arg =~ /^--use-c\+\+(=(.+))?$/) { ++ shift @$Args; ++ my $cxx; ++ ++ if (!defined $2 || $2 eq "") { ++ if (!@$Args) { ++ DieDiag("'--use-c++' option requires a compiler executable name.\n"); ++ } ++ $cxx = shift @$Args; ++ } ++ else { ++ $cxx = $2; ++ } ++ ++ $Options{UseCXX} = $cxx; ++ next; ++ } ++ ++ if ($arg =~ /^--analyzer-target(=(.+))?$/) { ++ shift @ARGV; ++ my $AnalyzerTarget; ++ ++ if (!defined $2 || $2 eq "") { ++ if (!@ARGV) { ++ DieDiag("'--analyzer-target' option requires a target triple name.\n"); ++ } ++ $AnalyzerTarget = shift @ARGV; ++ } ++ else { ++ $AnalyzerTarget = $2; ++ } ++ ++ $Options{AnalyzerTarget} = $AnalyzerTarget; ++ next; ++ } ++ ++ if ($arg eq "-v") { ++ shift @$Args; ++ $Options{Verbose}++; ++ next; ++ } ++ ++ if ($arg eq "-V" or $arg eq "--view") { ++ shift @$Args; ++ $Options{ViewResults} = 1; ++ next; ++ } ++ ++ if ($arg eq "--status-bugs") { ++ shift @$Args; ++ $Options{ExitStatusFoundBugs} = 1; ++ next; ++ } ++ ++ if ($arg eq "-store") { ++ shift @$Args; ++ $Options{StoreModel} = shift @$Args; ++ next; ++ } ++ ++ if ($arg eq "-constraints") { ++ shift @$Args; ++ $Options{ConstraintsModel} = shift @$Args; ++ next; ++ } ++ ++ if ($arg eq "-internal-stats") { ++ shift @$Args; ++ $Options{InternalStats} = 1; ++ next; ++ } ++ ++ if ($arg eq "-plist") { ++ shift @$Args; ++ $Options{OutputFormat} = "plist"; ++ next; ++ } ++ ++ if ($arg eq "-plist-html") { ++ shift @$Args; ++ $Options{OutputFormat} = "plist-html"; ++ next; ++ } ++ ++ if ($arg eq "-analyzer-config") { ++ shift @$Args; ++ push @{$Options{ConfigOptions}}, shift @$Args; ++ next; ++ } ++ ++ if ($arg eq "-no-failure-reports") { ++ shift @$Args; ++ $Options{ReportFailures} = 0; ++ next; ++ } ++ ++ if ($arg eq "-stats") { ++ shift @$Args; ++ $Options{AnalyzerStats} = 1; ++ next; ++ } ++ ++ if ($arg eq "-maxloop") { ++ shift @$Args; ++ $Options{MaxLoop} = shift @$Args; ++ next; ++ } ++ ++ if ($arg eq "-enable-checker") { ++ shift @$Args; ++ my $Checker = shift @$Args; ++ # Store $NumArgs to preserve the order the checkers were enabled. ++ $Options{EnableCheckers}{$Checker} = $NumArgs; ++ delete $Options{DisableCheckers}{$Checker}; ++ next; ++ } ++ ++ if ($arg eq "-disable-checker") { ++ shift @$Args; ++ my $Checker = shift @$Args; ++ # Store $NumArgs to preserve the order the checkers were disabled. ++ $Options{DisableCheckers}{$Checker} = $NumArgs; ++ delete $Options{EnableCheckers}{$Checker}; ++ next; ++ } ++ ++ if ($arg eq "-load-plugin") { ++ shift @$Args; ++ push @{$Options{PluginsToLoad}}, shift @$Args; ++ next; ++ } ++ ++ if ($arg eq "--use-analyzer") { ++ shift @$Args; ++ $Options{AnalyzerDiscoveryMethod} = shift @$Args; ++ next; ++ } ++ ++ if ($arg =~ /^--use-analyzer=(.+)$/) { ++ shift @$Args; ++ $Options{AnalyzerDiscoveryMethod} = $1; ++ next; ++ } ++ ++ if ($arg eq "--keep-empty") { ++ shift @$Args; ++ $Options{KeepEmpty} = 1; ++ next; ++ } ++ ++ if ($arg eq "--override-compiler") { ++ shift @$Args; ++ $Options{OverrideCompiler} = 1; ++ next; ++ } ++ ++ DieDiag("unrecognized option '$arg'\n") if ($arg =~ /^-/); ++ ++ $NumArgs--; ++ last; ++ } ++ return $NumArgs; ++} ++ ++if (!@ARGV) { ++ $ForceDisplayHelp = 1 ++} ++ ++ProcessArgs(\@ARGV); ++# All arguments are now shifted from @ARGV. The rest is a build command, if any. ++ ++if (!@ARGV and !$RequestDisplayHelp) { ++ ErrorDiag("No build command specified.\n\n"); ++ $ForceDisplayHelp = 1; ++} ++ ++my $ClangNotFoundErrMsg = FindClang(); ++ ++if ($ForceDisplayHelp || $RequestDisplayHelp) { ++ DisplayHelp($ClangNotFoundErrMsg); ++ exit $ForceDisplayHelp; ++} ++ ++DieDiag($ClangNotFoundErrMsg) if (defined $ClangNotFoundErrMsg); ++ ++$ClangCXX = $Clang; ++if ($Clang !~ /\+\+(\.exe)?$/) { ++ # If $Clang holds the name of the clang++ executable then we leave ++ # $ClangCXX and $Clang equal, otherwise construct the name of the clang++ ++ # executable from the clang executable name. ++ ++ # Determine operating system under which this copy of Perl was built. ++ my $IsWinBuild = ($^O =~/msys|cygwin|MSWin32/); ++ if($IsWinBuild) { ++ $ClangCXX =~ s/.exe$/++.exe/; ++ } ++ else { ++ $ClangCXX =~ s/\-\d+\.\d+$//; ++ $ClangCXX .= "++"; ++ } ++} ++ ++# Make sure to use "" to handle paths with spaces. ++$ClangVersion = HtmlEscape(`"$Clang" --version`); ++ ++# Determine where results go. ++$CmdArgs = HtmlEscape(join(' ', map(ShellEscape($_), @ARGV))); ++ ++# Determine the output directory for the HTML reports. ++my $BaseDir = $Options{OutputDir}; ++$Options{OutputDir} = GetHTMLRunDir($Options{OutputDir}); ++ ++# Determine the location of ccc-analyzer. ++my $AbsRealBin = Cwd::realpath($RealBin); ++my $Cmd = "$AbsRealBin/../libexec/ccc-analyzer"; ++my $CmdCXX = "$AbsRealBin/../libexec/c++-analyzer"; ++ ++# Portability: use less strict but portable check -e (file exists) instead of ++# non-portable -x (file is executable). On some windows ports -x just checks ++# file extension to determine if a file is executable (see Perl language ++# reference, perlport) ++if (!defined $Cmd || ! -e $Cmd) { ++ $Cmd = "$AbsRealBin/ccc-analyzer"; ++ DieDiag("'ccc-analyzer' does not exist at '$Cmd'\n") if(! -e $Cmd); ++} ++if (!defined $CmdCXX || ! -e $CmdCXX) { ++ $CmdCXX = "$AbsRealBin/c++-analyzer"; ++ DieDiag("'c++-analyzer' does not exist at '$CmdCXX'\n") if(! -e $CmdCXX); ++} ++ ++Diag("Using '$Clang' for static analysis\n"); ++ ++SetHtmlEnv(\@ARGV, $Options{OutputDir}); ++ ++my @AnalysesToRun; ++foreach (sort { $Options{EnableCheckers}{$a} <=> $Options{EnableCheckers}{$b} } ++ keys %{$Options{EnableCheckers}}) { ++ # Push checkers in order they were enabled. ++ push @AnalysesToRun, "-analyzer-checker", $_; ++} ++foreach (sort { $Options{DisableCheckers}{$a} <=> $Options{DisableCheckers}{$b} } ++ keys %{$Options{DisableCheckers}}) { ++ # Push checkers in order they were disabled. ++ push @AnalysesToRun, "-analyzer-disable-checker", $_; ++} ++if ($Options{AnalyzeHeaders}) { push @AnalysesToRun, "-analyzer-opt-analyze-headers"; } ++if ($Options{AnalyzerStats}) { push @AnalysesToRun, '-analyzer-checker=debug.Stats'; } ++if ($Options{MaxLoop} > 0) { push @AnalysesToRun, "-analyzer-max-loop $Options{MaxLoop}"; } ++ ++# Delay setting up other environment variables in case we can do true ++# interposition. ++my $CCC_ANALYZER_ANALYSIS = join ' ', @AnalysesToRun; ++my $CCC_ANALYZER_PLUGINS = join ' ', map { "-load ".$_ } @{$Options{PluginsToLoad}}; ++my $CCC_ANALYZER_CONFIG = join ' ', map { "-analyzer-config ".$_ } @{$Options{ConfigOptions}}; ++my %EnvVars = ( ++ 'CC' => $Cmd, ++ 'CXX' => $CmdCXX, ++ 'CLANG' => $Clang, ++ 'CLANG_CXX' => $ClangCXX, ++ 'VERBOSE' => $Options{Verbose}, ++ 'CCC_ANALYZER_ANALYSIS' => $CCC_ANALYZER_ANALYSIS, ++ 'CCC_ANALYZER_PLUGINS' => $CCC_ANALYZER_PLUGINS, ++ 'CCC_ANALYZER_CONFIG' => $CCC_ANALYZER_CONFIG, ++ 'OUTPUT_DIR' => $Options{OutputDir}, ++ 'CCC_CC' => $Options{UseCC}, ++ 'CCC_CXX' => $Options{UseCXX}, ++ 'CCC_REPORT_FAILURES' => $Options{ReportFailures}, ++ 'CCC_ANALYZER_STORE_MODEL' => $Options{StoreModel}, ++ 'CCC_ANALYZER_CONSTRAINTS_MODEL' => $Options{ConstraintsModel}, ++ 'CCC_ANALYZER_INTERNAL_STATS' => $Options{InternalStats}, ++ 'CCC_ANALYZER_OUTPUT_FORMAT' => $Options{OutputFormat}, ++ 'CLANG_ANALYZER_TARGET' => $Options{AnalyzerTarget} ++); ++ ++# Run the build. ++my $ExitStatus = RunBuildCommand(\@ARGV, $Options{IgnoreErrors}, $Cmd, $CmdCXX, ++ \%EnvVars); ++ ++if (defined $Options{OutputFormat}) { ++ if ($Options{OutputFormat} =~ /plist/) { ++ Diag "Analysis run complete.\n"; ++ Diag "Analysis results (plist files) deposited in '$Options{OutputDir}'\n"; ++ } ++ if ($Options{OutputFormat} =~ /html/) { ++ # Postprocess the HTML directory. ++ my $NumBugs = Postprocess($Options{OutputDir}, $BaseDir, ++ $Options{AnalyzerStats}, $Options{KeepEmpty}); ++ ++ if ($Options{ViewResults} and -r "$Options{OutputDir}/index.html") { ++ Diag "Analysis run complete.\n"; ++ Diag "Viewing analysis results in '$Options{OutputDir}' using scan-view.\n"; ++ my $ScanView = Cwd::realpath("$RealBin/scan-view"); ++ if (! -x $ScanView) { $ScanView = "scan-view"; } ++ if (! -x $ScanView) { $ScanView = Cwd::realpath("$RealBin/../../scan-view/bin/scan-view"); } ++ exec $ScanView, "$Options{OutputDir}"; ++ } ++ ++ if ($Options{ExitStatusFoundBugs}) { ++ exit 1 if ($NumBugs > 0); ++ exit 0; ++ } ++ } ++} ++ ++exit $ExitStatus; +diff --git tools/clang/tools/scan-build/bin/scan-build.bat tools/clang/tools/scan-build/bin/scan-build.bat.orig +new file mode 100644 +index 0000000..77be674 +--- /dev/null ++++ tools/clang/tools/scan-build/bin/scan-build.bat +@@ -0,0 +1 @@ ++perl -S scan-build %* +diff --git tools/clang/tools/scan-build/bin/set-xcode-analyzer tools/clang/tools/scan-build/bin/set-xcode-analyzer.orig +new file mode 100755 +index 0000000..8e67482 +--- /dev/null ++++ tools/clang/tools/scan-build/bin/set-xcode-analyzer +@@ -0,0 +1,114 @@ ++#!/usr/bin/python ++ ++# [PR 11661] Note that we hardwire to /usr/bin/python because we ++# want to the use the system version of Python on Mac OS X. ++# This one has the scripting bridge enabled. ++ ++import sys ++if sys.version_info < (2, 7): ++ print "set-xcode-analyzer requires Python 2.7 or later" ++ sys.exit(1) ++ ++import os ++import subprocess ++import re ++import tempfile ++import shutil ++import stat ++from AppKit import * ++ ++def FindClangSpecs(path): ++ print "(+) Searching for xcspec file in: ", path ++ for root, dirs, files in os.walk(path): ++ for f in files: ++ if f.endswith(".xcspec") and f.startswith("Clang LLVM"): ++ yield os.path.join(root, f) ++ ++def ModifySpec(path, isBuiltinAnalyzer, pathToChecker): ++ t = tempfile.NamedTemporaryFile(delete=False) ++ foundAnalyzer = False ++ with open(path) as f: ++ if isBuiltinAnalyzer: ++ # First search for CLANG_ANALYZER_EXEC. Newer ++ # versions of Xcode set EXEC_PATH to be CLANG_ANALYZER_EXEC. ++ with open(path) as f2: ++ for line in f2: ++ if line.find("CLANG_ANALYZER_EXEC") >= 0: ++ pathToChecker = "$(CLANG_ANALYZER_EXEC)" ++ break ++ # Now create a new file. ++ for line in f: ++ if not foundAnalyzer: ++ if line.find("Static Analyzer") >= 0: ++ foundAnalyzer = True ++ else: ++ m = re.search('^(\s*ExecPath\s*=\s*")', line) ++ if m: ++ line = "".join([m.group(0), pathToChecker, '";\n']) ++ # Do not modify further ExecPath's later in the xcspec. ++ foundAnalyzer = False ++ t.write(line) ++ t.close() ++ print "(+) processing:", path ++ try: ++ shutil.copy(t.name, path) ++ os.chmod(path, stat.S_IRUSR | stat.S_IWUSR | stat.S_IRGRP | stat.S_IROTH) ++ except IOError, why: ++ print " (-) Cannot update file:", why, "\n" ++ except OSError, why: ++ print " (-) Cannot update file:", why, "\n" ++ os.unlink(t.name) ++ ++def main(): ++ from optparse import OptionParser ++ parser = OptionParser('usage: %prog [options]') ++ parser.set_description(__doc__) ++ parser.add_option("--use-checker-build", dest="path", ++ help="Use the Clang located at the provided absolute path, e.g. /Users/foo/checker-1") ++ parser.add_option("--use-xcode-clang", action="store_const", ++ const="$(CLANG)", dest="default", ++ help="Use the Clang bundled with Xcode") ++ (options, args) = parser.parse_args() ++ if options.path is None and options.default is None: ++ parser.error("You must specify a version of Clang to use for static analysis. Specify '-h' for details") ++ ++ # determine if Xcode is running ++ for x in NSWorkspace.sharedWorkspace().runningApplications(): ++ if x.localizedName().find("Xcode") >= 0: ++ print "(-) You must quit Xcode first before modifying its configuration files." ++ sys.exit(1) ++ ++ isBuiltinAnalyzer = False ++ if options.path: ++ # Expand tildes. ++ path = os.path.expanduser(options.path) ++ if not path.endswith("clang"): ++ print "(+) Using Clang bundled with checker build:", path ++ path = os.path.join(path, "bin", "clang"); ++ else: ++ print "(+) Using Clang located at:", path ++ else: ++ print "(+) Using the Clang bundled with Xcode" ++ path = options.default ++ isBuiltinAnalyzer = True ++ ++ try: ++ xcode_path = subprocess.check_output(["xcode-select", "-print-path"]) ++ except AttributeError: ++ # Fall back to the default install location when using Python < 2.7.0 ++ xcode_path = "/Developer" ++ if (xcode_path.find(".app/") != -1): ++ # Cut off the 'Developer' dir, as the xcspec lies in another part ++ # of the Xcode.app subtree. ++ xcode_path = xcode_path.rsplit('/Developer', 1)[0] ++ ++ foundSpec = False ++ for x in FindClangSpecs(xcode_path): ++ foundSpec = True ++ ModifySpec(x, isBuiltinAnalyzer, path) ++ ++ if foundSpec == False: ++ print "(-) No compiler configuration file was found. Xcode's analyzer has not been updated." ++ ++if __name__ == '__main__': ++ main() +diff --git tools/clang/tools/scan-build/libexec/c++-analyzer tools/clang/tools/scan-build/libexec/c++-analyzer.orig +new file mode 100755 +index 0000000..dda5db9 +--- /dev/null ++++ tools/clang/tools/scan-build/libexec/c++-analyzer +@@ -0,0 +1,8 @@ ++#!/usr/bin/env perl ++ ++use Cwd qw/ abs_path /; ++use File::Basename qw/ dirname /; ++# Add scan-build dir to the list of places where perl looks for modules. ++use lib dirname(abs_path($0)); ++ ++do 'ccc-analyzer'; +diff --git tools/clang/tools/scan-build/libexec/c++-analyzer.bat tools/clang/tools/scan-build/libexec/c++-analyzer.bat.orig +new file mode 100644 +index 0000000..69f048a +--- /dev/null ++++ tools/clang/tools/scan-build/libexec/c++-analyzer.bat +@@ -0,0 +1 @@ ++perl -S c++-analyzer %* +diff --git tools/clang/tools/scan-build/libexec/ccc-analyzer tools/clang/tools/scan-build/libexec/ccc-analyzer.orig +new file mode 100755 +index 0000000..831dd42 +--- /dev/null ++++ tools/clang/tools/scan-build/libexec/ccc-analyzer +@@ -0,0 +1,777 @@ ++#!/usr/bin/env perl ++# ++# The LLVM Compiler Infrastructure ++# ++# This file is distributed under the University of Illinois Open Source ++# License. See LICENSE.TXT for details. ++# ++##===----------------------------------------------------------------------===## ++# ++# A script designed to interpose between the build system and gcc. It invokes ++# both gcc and the static analyzer. ++# ++##===----------------------------------------------------------------------===## ++ ++use strict; ++use warnings; ++use FindBin; ++use Cwd qw/ getcwd abs_path /; ++use File::Temp qw/ tempfile /; ++use File::Path qw / mkpath /; ++use File::Basename; ++use Text::ParseWords; ++ ++##===----------------------------------------------------------------------===## ++# List form 'system' with STDOUT and STDERR captured. ++##===----------------------------------------------------------------------===## ++ ++sub silent_system { ++ my $HtmlDir = shift; ++ my $Command = shift; ++ ++ # Save STDOUT and STDERR and redirect to a temporary file. ++ open OLDOUT, ">&", \*STDOUT; ++ open OLDERR, ">&", \*STDERR; ++ my ($TmpFH, $TmpFile) = tempfile("temp_buf_XXXXXX", ++ DIR => $HtmlDir, ++ UNLINK => 1); ++ open(STDOUT, ">$TmpFile"); ++ open(STDERR, ">&", \*STDOUT); ++ ++ # Invoke 'system', STDOUT and STDERR are output to a temporary file. ++ system $Command, @_; ++ ++ # Restore STDOUT and STDERR. ++ open STDOUT, ">&", \*OLDOUT; ++ open STDERR, ">&", \*OLDERR; ++ ++ return $TmpFH; ++} ++ ++##===----------------------------------------------------------------------===## ++# Compiler command setup. ++##===----------------------------------------------------------------------===## ++ ++# Search in the PATH if the compiler exists ++sub SearchInPath { ++ my $file = shift; ++ foreach my $dir (split (':', $ENV{PATH})) { ++ if (-x "$dir/$file") { ++ return 1; ++ } ++ } ++ return 0; ++} ++ ++my $Compiler; ++my $Clang; ++my $DefaultCCompiler; ++my $DefaultCXXCompiler; ++my $IsCXX; ++my $AnalyzerTarget; ++ ++# If on OSX, use xcrun to determine the SDK root. ++my $UseXCRUN = 0; ++ ++if (`uname -a` =~ m/Darwin/) { ++ $DefaultCCompiler = 'clang'; ++ $DefaultCXXCompiler = 'clang++'; ++ # Older versions of OSX do not have xcrun to ++ # query the SDK location. ++ if (-x "/usr/bin/xcrun") { ++ $UseXCRUN = 1; ++ } ++} else { ++ $DefaultCCompiler = 'gcc'; ++ $DefaultCXXCompiler = 'g++'; ++} ++ ++if ($FindBin::Script =~ /c\+\+-analyzer/) { ++ $Compiler = $ENV{'CCC_CXX'}; ++ if (!defined $Compiler || (! -x $Compiler && ! SearchInPath($Compiler))) { $Compiler = $DefaultCXXCompiler; } ++ ++ $Clang = $ENV{'CLANG_CXX'}; ++ if (!defined $Clang || ! -x $Clang) { $Clang = 'clang++'; } ++ ++ $IsCXX = 1 ++} ++else { ++ $Compiler = $ENV{'CCC_CC'}; ++ if (!defined $Compiler || (! -x $Compiler && ! SearchInPath($Compiler))) { $Compiler = $DefaultCCompiler; } ++ ++ $Clang = $ENV{'CLANG'}; ++ if (!defined $Clang || ! -x $Clang) { $Clang = 'clang'; } ++ ++ $IsCXX = 0 ++} ++ ++$AnalyzerTarget = $ENV{'CLANG_ANALYZER_TARGET'}; ++ ++##===----------------------------------------------------------------------===## ++# Cleanup. ++##===----------------------------------------------------------------------===## ++ ++my $ReportFailures = $ENV{'CCC_REPORT_FAILURES'}; ++if (!defined $ReportFailures) { $ReportFailures = 1; } ++ ++my $CleanupFile; ++my $ResultFile; ++ ++# Remove any stale files at exit. ++END { ++ if (defined $ResultFile && -z $ResultFile) { ++ unlink($ResultFile); ++ } ++ if (defined $CleanupFile) { ++ unlink($CleanupFile); ++ } ++} ++ ++##----------------------------------------------------------------------------## ++# Process Clang Crashes. ++##----------------------------------------------------------------------------## ++ ++sub GetPPExt { ++ my $Lang = shift; ++ if ($Lang =~ /objective-c\+\+/) { return ".mii" }; ++ if ($Lang =~ /objective-c/) { return ".mi"; } ++ if ($Lang =~ /c\+\+/) { return ".ii"; } ++ return ".i"; ++} ++ ++# Set this to 1 if we want to include 'parser rejects' files. ++my $IncludeParserRejects = 0; ++my $ParserRejects = "Parser Rejects"; ++my $AttributeIgnored = "Attribute Ignored"; ++my $OtherError = "Other Error"; ++ ++sub ProcessClangFailure { ++ my ($Clang, $Lang, $file, $Args, $HtmlDir, $ErrorType, $ofile) = @_; ++ my $Dir = "$HtmlDir/failures"; ++ mkpath $Dir; ++ ++ my $prefix = "clang_crash"; ++ if ($ErrorType eq $ParserRejects) { ++ $prefix = "clang_parser_rejects"; ++ } ++ elsif ($ErrorType eq $AttributeIgnored) { ++ $prefix = "clang_attribute_ignored"; ++ } ++ elsif ($ErrorType eq $OtherError) { ++ $prefix = "clang_other_error"; ++ } ++ ++ # Generate the preprocessed file with Clang. ++ my ($PPH, $PPFile) = tempfile( $prefix . "_XXXXXX", ++ SUFFIX => GetPPExt($Lang), ++ DIR => $Dir); ++ close ($PPH); ++ system $Clang, @$Args, "-E", "-o", $PPFile; ++ ++ # Create the info file. ++ open (OUT, ">", "$PPFile.info.txt") or die "Cannot open $PPFile.info.txt\n"; ++ print OUT abs_path($file), "\n"; ++ print OUT "$ErrorType\n"; ++ print OUT "@$Args\n"; ++ close OUT; ++ `uname -a >> $PPFile.info.txt 2>&1`; ++ `"$Compiler" -v >> $PPFile.info.txt 2>&1`; ++ rename($ofile, "$PPFile.stderr.txt"); ++ return (basename $PPFile); ++} ++ ++##----------------------------------------------------------------------------## ++# Running the analyzer. ++##----------------------------------------------------------------------------## ++ ++sub GetCCArgs { ++ my $HtmlDir = shift; ++ my $mode = shift; ++ my $Args = shift; ++ my $line; ++ my $OutputStream = silent_system($HtmlDir, $Clang, "-###", $mode, @$Args); ++ while (<$OutputStream>) { ++ next if (!/\s"?-cc1"?\s/); ++ $line = $_; ++ } ++ die "could not find clang line\n" if (!defined $line); ++ # Strip leading and trailing whitespace characters. ++ $line =~ s/^\s+|\s+$//g; ++ my @items = quotewords('\s+', 0, $line); ++ my $cmd = shift @items; ++ die "cannot find 'clang' in 'clang' command\n" if (!($cmd =~ /clang/)); ++ return \@items; ++} ++ ++sub Analyze { ++ my ($Clang, $OriginalArgs, $AnalyzeArgs, $Lang, $Output, $Verbose, $HtmlDir, ++ $file) = @_; ++ ++ my @Args = @$OriginalArgs; ++ my $Cmd; ++ my @CmdArgs; ++ my @CmdArgsSansAnalyses; ++ ++ if ($Lang =~ /header/) { ++ exit 0 if (!defined ($Output)); ++ $Cmd = 'cp'; ++ push @CmdArgs, $file; ++ # Remove the PCH extension. ++ $Output =~ s/[.]gch$//; ++ push @CmdArgs, $Output; ++ @CmdArgsSansAnalyses = @CmdArgs; ++ } ++ else { ++ $Cmd = $Clang; ++ ++ # Create arguments for doing regular parsing. ++ my $SyntaxArgs = GetCCArgs($HtmlDir, "-fsyntax-only", \@Args); ++ @CmdArgsSansAnalyses = @$SyntaxArgs; ++ ++ # Create arguments for doing static analysis. ++ if (defined $ResultFile) { ++ push @Args, '-o', $ResultFile; ++ } ++ elsif (defined $HtmlDir) { ++ push @Args, '-o', $HtmlDir; ++ } ++ if ($Verbose) { ++ push @Args, "-Xclang", "-analyzer-display-progress"; ++ } ++ ++ foreach my $arg (@$AnalyzeArgs) { ++ push @Args, "-Xclang", $arg; ++ } ++ ++ # Display Ubiviz graph? ++ if (defined $ENV{'CCC_UBI'}) { ++ push @Args, "-Xclang", "-analyzer-viz-egraph-ubigraph"; ++ } ++ ++ if (defined $AnalyzerTarget) { ++ push @Args, "-target", $AnalyzerTarget; ++ } ++ ++ my $AnalysisArgs = GetCCArgs($HtmlDir, "--analyze", \@Args); ++ @CmdArgs = @$AnalysisArgs; ++ } ++ ++ my @PrintArgs; ++ my $dir; ++ ++ if ($Verbose) { ++ $dir = getcwd(); ++ print STDERR "\n[LOCATION]: $dir\n"; ++ push @PrintArgs,"'$Cmd'"; ++ foreach my $arg (@CmdArgs) { ++ push @PrintArgs,"\'$arg\'"; ++ } ++ } ++ if ($Verbose == 1) { ++ # We MUST print to stderr. Some clients use the stdout output of ++ # gcc for various purposes. ++ print STDERR join(' ', @PrintArgs); ++ print STDERR "\n"; ++ } ++ elsif ($Verbose == 2) { ++ print STDERR "#SHELL (cd '$dir' && @PrintArgs)\n"; ++ } ++ ++ # Save STDOUT and STDERR of clang to a temporary file and reroute ++ # all clang output to ccc-analyzer's STDERR. ++ # We save the output file in the 'crashes' directory if clang encounters ++ # any problems with the file. ++ my ($ofh, $ofile) = tempfile("clang_output_XXXXXX", DIR => $HtmlDir); ++ ++ my $OutputStream = silent_system($HtmlDir, $Cmd, @CmdArgs); ++ while ( <$OutputStream> ) { ++ print $ofh $_; ++ print STDERR $_; ++ } ++ my $Result = $?; ++ close $ofh; ++ ++ # Did the command die because of a signal? ++ if ($ReportFailures) { ++ if ($Result & 127 and $Cmd eq $Clang and defined $HtmlDir) { ++ ProcessClangFailure($Clang, $Lang, $file, \@CmdArgsSansAnalyses, ++ $HtmlDir, "Crash", $ofile); ++ } ++ elsif ($Result) { ++ if ($IncludeParserRejects && !($file =~/conftest/)) { ++ ProcessClangFailure($Clang, $Lang, $file, \@CmdArgsSansAnalyses, ++ $HtmlDir, $ParserRejects, $ofile); ++ } else { ++ ProcessClangFailure($Clang, $Lang, $file, \@CmdArgsSansAnalyses, ++ $HtmlDir, $OtherError, $ofile); ++ } ++ } ++ else { ++ # Check if there were any unhandled attributes. ++ if (open(CHILD, $ofile)) { ++ my %attributes_not_handled; ++ ++ # Don't flag warnings about the following attributes that we ++ # know are currently not supported by Clang. ++ $attributes_not_handled{"cdecl"} = 1; ++ ++ my $ppfile; ++ while () { ++ next if (! /warning: '([^\']+)' attribute ignored/); ++ ++ # Have we already spotted this unhandled attribute? ++ next if (defined $attributes_not_handled{$1}); ++ $attributes_not_handled{$1} = 1; ++ ++ # Get the name of the attribute file. ++ my $dir = "$HtmlDir/failures"; ++ my $afile = "$dir/attribute_ignored_$1.txt"; ++ ++ # Only create another preprocessed file if the attribute file ++ # doesn't exist yet. ++ next if (-e $afile); ++ ++ # Add this file to the list of files that contained this attribute. ++ # Generate a preprocessed file if we haven't already. ++ if (!(defined $ppfile)) { ++ $ppfile = ProcessClangFailure($Clang, $Lang, $file, ++ \@CmdArgsSansAnalyses, ++ $HtmlDir, $AttributeIgnored, $ofile); ++ } ++ ++ mkpath $dir; ++ open(AFILE, ">$afile"); ++ print AFILE "$ppfile\n"; ++ close(AFILE); ++ } ++ close CHILD; ++ } ++ } ++ } ++ ++ unlink($ofile); ++} ++ ++##----------------------------------------------------------------------------## ++# Lookup tables. ++##----------------------------------------------------------------------------## ++ ++my %CompileOptionMap = ( ++ '-nostdinc' => 0, ++ '-include' => 1, ++ '-idirafter' => 1, ++ '-imacros' => 1, ++ '-iprefix' => 1, ++ '-iquote' => 1, ++ '-iwithprefix' => 1, ++ '-iwithprefixbefore' => 1 ++); ++ ++my %LinkerOptionMap = ( ++ '-framework' => 1, ++ '-fobjc-link-runtime' => 0 ++); ++ ++my %CompilerLinkerOptionMap = ( ++ '-Wwrite-strings' => 0, ++ '-ftrapv-handler' => 1, # specifically call out separated -f flag ++ '-mios-simulator-version-min' => 0, # This really has 1 argument, but always has '=' ++ '-isysroot' => 1, ++ '-arch' => 1, ++ '-m32' => 0, ++ '-m64' => 0, ++ '-stdlib' => 0, # This is really a 1 argument, but always has '=' ++ '--sysroot' => 1, ++ '-target' => 1, ++ '-v' => 0, ++ '-mmacosx-version-min' => 0, # This is really a 1 argument, but always has '=' ++ '-miphoneos-version-min' => 0 # This is really a 1 argument, but always has '=' ++); ++ ++my %IgnoredOptionMap = ( ++ '-MT' => 1, # Ignore these preprocessor options. ++ '-MF' => 1, ++ ++ '-fsyntax-only' => 0, ++ '-save-temps' => 0, ++ '-install_name' => 1, ++ '-exported_symbols_list' => 1, ++ '-current_version' => 1, ++ '-compatibility_version' => 1, ++ '-init' => 1, ++ '-e' => 1, ++ '-seg1addr' => 1, ++ '-bundle_loader' => 1, ++ '-multiply_defined' => 1, ++ '-sectorder' => 3, ++ '--param' => 1, ++ '-u' => 1, ++ '--serialize-diagnostics' => 1 ++); ++ ++my %LangMap = ( ++ 'c' => $IsCXX ? 'c++' : 'c', ++ 'cp' => 'c++', ++ 'cpp' => 'c++', ++ 'cxx' => 'c++', ++ 'txx' => 'c++', ++ 'cc' => 'c++', ++ 'C' => 'c++', ++ 'ii' => 'c++-cpp-output', ++ 'i' => $IsCXX ? 'c++-cpp-output' : 'c-cpp-output', ++ 'm' => 'objective-c', ++ 'mi' => 'objective-c-cpp-output', ++ 'mm' => 'objective-c++', ++ 'mii' => 'objective-c++-cpp-output', ++); ++ ++my %UniqueOptions = ( ++ '-isysroot' => 0 ++); ++ ++##----------------------------------------------------------------------------## ++# Languages accepted. ++##----------------------------------------------------------------------------## ++ ++my %LangsAccepted = ( ++ "objective-c" => 1, ++ "c" => 1, ++ "c++" => 1, ++ "objective-c++" => 1, ++ "c-cpp-output" => 1, ++ "objective-c-cpp-output" => 1, ++ "c++-cpp-output" => 1 ++); ++ ++##----------------------------------------------------------------------------## ++# Main Logic. ++##----------------------------------------------------------------------------## ++ ++my $Action = 'link'; ++my @CompileOpts; ++my @LinkOpts; ++my @Files; ++my $Lang; ++my $Output; ++my %Uniqued; ++ ++# Forward arguments to gcc. ++my $Status = system($Compiler,@ARGV); ++if (defined $ENV{'CCC_ANALYZER_LOG'}) { ++ print STDERR "$Compiler @ARGV\n"; ++} ++if ($Status) { exit($Status >> 8); } ++ ++# Get the analysis options. ++my $Analyses = $ENV{'CCC_ANALYZER_ANALYSIS'}; ++ ++# Get the plugins to load. ++my $Plugins = $ENV{'CCC_ANALYZER_PLUGINS'}; ++ ++# Get the store model. ++my $StoreModel = $ENV{'CCC_ANALYZER_STORE_MODEL'}; ++ ++# Get the constraints engine. ++my $ConstraintsModel = $ENV{'CCC_ANALYZER_CONSTRAINTS_MODEL'}; ++ ++#Get the internal stats setting. ++my $InternalStats = $ENV{'CCC_ANALYZER_INTERNAL_STATS'}; ++ ++# Get the output format. ++my $OutputFormat = $ENV{'CCC_ANALYZER_OUTPUT_FORMAT'}; ++if (!defined $OutputFormat) { $OutputFormat = "html"; } ++ ++# Get the config options. ++my $ConfigOptions = $ENV{'CCC_ANALYZER_CONFIG'}; ++ ++# Determine the level of verbosity. ++my $Verbose = 0; ++if (defined $ENV{'CCC_ANALYZER_VERBOSE'}) { $Verbose = 1; } ++if (defined $ENV{'CCC_ANALYZER_LOG'}) { $Verbose = 2; } ++ ++# Get the HTML output directory. ++my $HtmlDir = $ENV{'CCC_ANALYZER_HTML'}; ++ ++my %DisabledArchs = ('ppc' => 1, 'ppc64' => 1); ++my %ArchsSeen; ++my $HadArch = 0; ++my $HasSDK = 0; ++ ++# Process the arguments. ++foreach (my $i = 0; $i < scalar(@ARGV); ++$i) { ++ my $Arg = $ARGV[$i]; ++ my ($ArgKey) = split /=/,$Arg,2; ++ ++ # Be friendly to "" in the argument list. ++ if (!defined($ArgKey)) { ++ next; ++ } ++ ++ # Modes ccc-analyzer supports ++ if ($Arg =~ /^-(E|MM?)$/) { $Action = 'preprocess'; } ++ elsif ($Arg eq '-c') { $Action = 'compile'; } ++ elsif ($Arg =~ /^-print-prog-name/) { exit 0; } ++ ++ # Specially handle duplicate cases of -arch ++ if ($Arg eq "-arch") { ++ my $arch = $ARGV[$i+1]; ++ # We don't want to process 'ppc' because of Clang's lack of support ++ # for Altivec (also some #defines won't likely be defined correctly, etc.) ++ if (!(defined $DisabledArchs{$arch})) { $ArchsSeen{$arch} = 1; } ++ $HadArch = 1; ++ ++$i; ++ next; ++ } ++ ++ # On OSX/iOS, record if an SDK path was specified. This ++ # is innocuous for other platforms, so the check just happens. ++ if ($Arg =~ /^-isysroot/) { ++ $HasSDK = 1; ++ } ++ ++ # Options with possible arguments that should pass through to compiler. ++ if (defined $CompileOptionMap{$ArgKey}) { ++ my $Cnt = $CompileOptionMap{$ArgKey}; ++ push @CompileOpts,$Arg; ++ while ($Cnt > 0) { ++$i; --$Cnt; push @CompileOpts, $ARGV[$i]; } ++ next; ++ } ++ # Handle the case where there isn't a space after -iquote ++ if ($Arg =~ /^-iquote.*/) { ++ push @CompileOpts,$Arg; ++ next; ++ } ++ ++ # Options with possible arguments that should pass through to linker. ++ if (defined $LinkerOptionMap{$ArgKey}) { ++ my $Cnt = $LinkerOptionMap{$ArgKey}; ++ push @LinkOpts,$Arg; ++ while ($Cnt > 0) { ++$i; --$Cnt; push @LinkOpts, $ARGV[$i]; } ++ next; ++ } ++ ++ # Options with possible arguments that should pass through to both compiler ++ # and the linker. ++ if (defined $CompilerLinkerOptionMap{$ArgKey}) { ++ my $Cnt = $CompilerLinkerOptionMap{$ArgKey}; ++ ++ # Check if this is an option that should have a unique value, and if so ++ # determine if the value was checked before. ++ if ($UniqueOptions{$Arg}) { ++ if (defined $Uniqued{$Arg}) { ++ $i += $Cnt; ++ next; ++ } ++ $Uniqued{$Arg} = 1; ++ } ++ ++ push @CompileOpts,$Arg; ++ push @LinkOpts,$Arg; ++ ++ while ($Cnt > 0) { ++ ++$i; --$Cnt; ++ push @CompileOpts, $ARGV[$i]; ++ push @LinkOpts, $ARGV[$i]; ++ } ++ next; ++ } ++ ++ # Ignored options. ++ if (defined $IgnoredOptionMap{$ArgKey}) { ++ my $Cnt = $IgnoredOptionMap{$ArgKey}; ++ while ($Cnt > 0) { ++ ++$i; --$Cnt; ++ } ++ next; ++ } ++ ++ # Compile mode flags. ++ if ($Arg =~ /^-(?:[DIU]|isystem)(.*)$/) { ++ my $Tmp = $Arg; ++ if ($1 eq '') { ++ # FIXME: Check if we are going off the end. ++ ++$i; ++ $Tmp = $Arg . $ARGV[$i]; ++ } ++ push @CompileOpts,$Tmp; ++ next; ++ } ++ ++ if ($Arg =~ /^-m.*/) { ++ push @CompileOpts,$Arg; ++ next; ++ } ++ ++ # Language. ++ if ($Arg eq '-x') { ++ $Lang = $ARGV[$i+1]; ++ ++$i; next; ++ } ++ ++ # Output file. ++ if ($Arg eq '-o') { ++ ++$i; ++ $Output = $ARGV[$i]; ++ next; ++ } ++ ++ # Get the link mode. ++ if ($Arg =~ /^-[l,L,O]/) { ++ if ($Arg eq '-O') { push @LinkOpts,'-O1'; } ++ elsif ($Arg eq '-Os') { push @LinkOpts,'-O2'; } ++ else { push @LinkOpts,$Arg; } ++ ++ # Must pass this along for the __OPTIMIZE__ macro ++ if ($Arg =~ /^-O/) { push @CompileOpts,$Arg; } ++ next; ++ } ++ ++ if ($Arg =~ /^-std=/) { ++ push @CompileOpts,$Arg; ++ next; ++ } ++ ++ # Get the compiler/link mode. ++ if ($Arg =~ /^-F(.+)$/) { ++ my $Tmp = $Arg; ++ if ($1 eq '') { ++ # FIXME: Check if we are going off the end. ++ ++$i; ++ $Tmp = $Arg . $ARGV[$i]; ++ } ++ push @CompileOpts,$Tmp; ++ push @LinkOpts,$Tmp; ++ next; ++ } ++ ++ # Input files. ++ if ($Arg eq '-filelist') { ++ # FIXME: Make sure we aren't walking off the end. ++ open(IN, $ARGV[$i+1]); ++ while () { s/\015?\012//; push @Files,$_; } ++ close(IN); ++ ++$i; ++ next; ++ } ++ ++ if ($Arg =~ /^-f/) { ++ push @CompileOpts,$Arg; ++ push @LinkOpts,$Arg; ++ next; ++ } ++ ++ # Handle -Wno-. We don't care about extra warnings, but ++ # we should suppress ones that we don't want to see. ++ if ($Arg =~ /^-Wno-/) { ++ push @CompileOpts, $Arg; ++ next; ++ } ++ ++ # Handle -Xclang some-arg. Add both arguments to the compiler options. ++ if ($Arg =~ /^-Xclang$/) { ++ # FIXME: Check if we are going off the end. ++ ++$i; ++ push @CompileOpts, $Arg; ++ push @CompileOpts, $ARGV[$i]; ++ next; ++ } ++ ++ if (!($Arg =~ /^-/)) { ++ push @Files, $Arg; ++ next; ++ } ++} ++ ++# If we are on OSX and have an installation where the ++# default SDK is inferred by xcrun use xcrun to infer ++# the SDK. ++if (not $HasSDK and $UseXCRUN) { ++ my $sdk = `/usr/bin/xcrun --show-sdk-path -sdk macosx`; ++ chomp $sdk; ++ push @CompileOpts, "-isysroot", $sdk; ++} ++ ++if ($Action eq 'compile' or $Action eq 'link') { ++ my @Archs = keys %ArchsSeen; ++ # Skip the file if we don't support the architectures specified. ++ exit 0 if ($HadArch && scalar(@Archs) == 0); ++ ++ foreach my $file (@Files) { ++ # Determine the language for the file. ++ my $FileLang = $Lang; ++ ++ if (!defined($FileLang)) { ++ # Infer the language from the extension. ++ if ($file =~ /[.]([^.]+)$/) { ++ $FileLang = $LangMap{$1}; ++ } ++ } ++ ++ # FileLang still not defined? Skip the file. ++ next if (!defined $FileLang); ++ ++ # Language not accepted? ++ next if (!defined $LangsAccepted{$FileLang}); ++ ++ my @CmdArgs; ++ my @AnalyzeArgs; ++ ++ if ($FileLang ne 'unknown') { ++ push @CmdArgs, '-x', $FileLang; ++ } ++ ++ if (defined $StoreModel) { ++ push @AnalyzeArgs, "-analyzer-store=$StoreModel"; ++ } ++ ++ if (defined $ConstraintsModel) { ++ push @AnalyzeArgs, "-analyzer-constraints=$ConstraintsModel"; ++ } ++ ++ if (defined $InternalStats) { ++ push @AnalyzeArgs, "-analyzer-stats"; ++ } ++ ++ if (defined $Analyses) { ++ push @AnalyzeArgs, split '\s+', $Analyses; ++ } ++ ++ if (defined $Plugins) { ++ push @AnalyzeArgs, split '\s+', $Plugins; ++ } ++ ++ if (defined $OutputFormat) { ++ push @AnalyzeArgs, "-analyzer-output=" . $OutputFormat; ++ if ($OutputFormat =~ /plist/) { ++ # Change "Output" to be a file. ++ my ($h, $f) = tempfile("report-XXXXXX", SUFFIX => ".plist", ++ DIR => $HtmlDir); ++ $ResultFile = $f; ++ # If the HtmlDir is not set, we should clean up the plist files. ++ if (!defined $HtmlDir || -z $HtmlDir) { ++ $CleanupFile = $f; ++ } ++ } ++ } ++ if (defined $ConfigOptions) { ++ push @AnalyzeArgs, split '\s+', $ConfigOptions; ++ } ++ ++ push @CmdArgs, @CompileOpts; ++ push @CmdArgs, $file; ++ ++ if (scalar @Archs) { ++ foreach my $arch (@Archs) { ++ my @NewArgs; ++ push @NewArgs, '-arch', $arch; ++ push @NewArgs, @CmdArgs; ++ Analyze($Clang, \@NewArgs, \@AnalyzeArgs, $FileLang, $Output, ++ $Verbose, $HtmlDir, $file); ++ } ++ } ++ else { ++ Analyze($Clang, \@CmdArgs, \@AnalyzeArgs, $FileLang, $Output, ++ $Verbose, $HtmlDir, $file); ++ } ++ } ++} +diff --git tools/clang/tools/scan-build/libexec/ccc-analyzer.bat tools/clang/tools/scan-build/libexec/ccc-analyzer.bat.orig +new file mode 100644 +index 0000000..2a85376 +--- /dev/null ++++ tools/clang/tools/scan-build/libexec/ccc-analyzer.bat +@@ -0,0 +1 @@ ++perl -S ccc-analyzer %* +diff --git tools/clang/tools/scan-build/man/scan-build.1 tools/clang/tools/scan-build/man/scan-build.1.orig +new file mode 100644 +index 0000000..3d3a9f8 +--- /dev/null ++++ tools/clang/tools/scan-build/man/scan-build.1 +@@ -0,0 +1,349 @@ ++.\" This file is distributed under the University of Illinois Open Source ++.\" License. See LICENSE.TXT for details. ++.\" $Id$ ++.Dd May 25, 2012 ++.Dt SCAN-BUILD 1 ++.Os "clang" "3.5" ++.Sh NAME ++.Nm scan-build ++.Nd Clang static analyzer ++.Sh SYNOPSIS ++.Nm ++.Op Fl ohkvV ++.Op Fl analyze-headers ++.Op Fl enable-checker Op Ar checker_name ++.Op Fl disable-checker Op Ar checker_name ++.Op Fl Fl help ++.Op Fl Fl help-checkers ++.Op Fl Fl html-title Op Ar =title ++.Op Fl Fl keep-going ++.Op Fl plist ++.Op Fl plist-html ++.Op Fl Fl status-bugs ++.Op Fl Fl use-c++ Op Ar =compiler_path ++.Op Fl Fl use-cc Op Ar =compiler_path ++.Op Fl Fl view ++.Op Fl constraints Op Ar model ++.Op Fl maxloop Ar N ++.Op Fl no-failure-reports ++.Op Fl stats ++.Op Fl store Op Ar model ++.Ar build_command ++.Op build_options ++.\" ++.\" Sh DESCRIPTION ++.Sh DESCRIPTION ++.Nm ++is a Perl script that invokes the Clang static analyzer. Options used by ++.Nm ++or by the analyzer appear first, followed by the ++.Ar build_command ++and any ++.Ar build_options ++normally used to build the target system. ++.Pp ++The static analyzer employs a long list of checking algorithms, see ++.Sx CHECKERS . ++Output can be written in standard ++.Li .plist ++and/or HTML format. ++.Pp ++The following options are supported: ++.Bl -tag -width indent ++.It Fl analyze-headers ++Also analyze functions in #included files. ++.It Fl enable-checker Ar checker_name , Fl disable-checker Ar checker_name ++Enable/disable ++.Ar checker_name . ++See ++.Sx CHECKERS . ++.It Fl h , Fl Fl help ++Display this message. ++.It Fl Fl help-checkers ++List default checkers, see ++.Sx CHECKERS . ++.It Fl Fl html-title Ns Op = Ns Ar title ++Specify the title used on generated HTML pages. ++A default title is generated if ++.Ar title ++is not specified. ++.It Fl k , Fl Fl keep-going ++Add a ++.Dq keep on going ++option to ++.Ar build_command . ++Currently supports make and xcodebuild. This is a convenience option; ++one can specify this behavior directly using build options. ++.It Fl o ++Target directory for HTML report files. Subdirectories will be ++created as needed to represent separate invocations ++of the analyzer. If this option is not specified, a directory is ++created in /tmp (TMPDIR on Mac OS X) to store the reports. ++.It Fl plist ++Output the results as a set of ++.Li .plist ++files. (By default the output of ++.Nm ++is a set of HTML files.) ++.It Fl plist-html ++Output the results as a set of HTML and .plist files ++.It Fl Fl status-bugs ++Set exit status to 1 if it found potential bugs and 0 otherwise. By ++default the exit status of ++.Nm ++is that returned by ++.Ar build_command . ++.It Fl Fl use-c++ Ns Op = Ns Ar compiler_path ++Guess the default compiler for your C++ and Objective-C++ code. Use this ++option to specify an alternate compiler. ++.It Fl Fl use-cc Ns Op = Ns Ar compiler_path ++Guess the default compiler for your C and Objective-C code. Use this ++option to specify an alternate compiler. ++.It Fl v ++Verbose output from ++.Nm ++and the analyzer. A second and ++third ++.Ar v ++increases verbosity. ++.It Fl V , Fl Fl view ++View analysis results in a web browser when the build completes. ++.It Fl constraints Op Ar model ++Specify the contraint engine used by the analyzer. By default the ++.Ql range ++model is used. Specifying ++.Ql basic ++uses a simpler, less powerful constraint model used by checker-0.160 ++and earlier. ++.It Fl maxloop Ar N ++Specifiy the number of times a block can be visited before giving ++up. Default is 4. Increase for more comprehensive coverage at a ++cost of speed. ++.It Fl no-failure-reports ++Do not create a ++.Ql failures ++subdirectory that includes analyzer crash reports and preprocessed ++source files. ++.It Fl stats ++Generates visitation statistics for the project being analyzed. ++.It Fl store Op Ar model ++Specify the store model used by the analyzer. By default, the ++.Ql region ++store model is used. ++.Ql region ++specifies a field- ++sensitive store model. Users can also specify ++.Ql basic ++which is far less precise but can more quickly analyze code. ++.Ql basic ++was the default store model for checker-0.221 and earlier. ++.\" ++.El ++.Sh EXIT STATUS ++.Nm ++returns the value returned by ++.Ar build_command ++unless ++.Fl Fl status-bugs ++or ++.Fl Fl keep-going ++is used. ++.\" ++.\" Other sections not yet used ... ++.\" .Sh ENVIRONMENT ++.\" .Sh FILES ++.\" .Sh DIAGNOSTICS ++.\" .Sh COMPATIBILITY ++.\" .Sh HISTORY ++.\" .Sh BUGS ++.\" ++.Sh CHECKERS ++The checkers listed below may be enabled/disabled using the ++.Fl enable-checker ++and ++.Fl disable-checker ++options. ++A default group of checkers is run unless explicitly disabled. ++Exactly which checkers constitute the default group is a function ++of the operating system in use; they are listed with ++.Fl Fl help-checkers . ++.Bl -tag -width indent. ++.It core.AdjustedReturnValue ++Check to see if the return value of a function call is different than ++the caller expects (e.g., from calls through function pointers). ++.It core.AttributeNonNull ++Check for null pointers passed as arguments to a function whose arguments are marked with the ++.Ql nonnull ++attribute. ++.It core.CallAndMessage ++Check for logical errors for function calls and Objective-C message expressions (e.g., uninitialized arguments, null function pointers). ++.It core.DivideZero ++Check for division by zero. ++.It core.NullDereference ++Check for dereferences of null pointers. ++.It core.StackAddressEscape ++Check that addresses to stack memory do not escape the function. ++.It core.UndefinedBinaryOperatorResult ++Check for undefined results of binary operators. ++.It core.VLASize ++Check for declarations of VLA of undefined or zero size. ++.It core.builtin.BuiltinFunctions ++Evaluate compiler builtin functions, e.g. ++.Fn alloca . ++.It core.builtin.NoReturnFunctions ++Evaluate ++.Ql panic ++functions that are known to not return to the caller. ++.It core.uninitialized.ArraySubscript ++Check for uninitialized values used as array subscripts. ++.It core.uninitialized.Assign ++Check for assigning uninitialized values. ++.It core.uninitialized.Branch ++Check for uninitialized values used as branch conditions. ++.It core.uninitialized.CapturedBlockVariable ++Check for blocks that capture uninitialized values. ++.It core.uninitialized.UndefReturn ++Check for uninitialized values being returned to the caller. ++.It deadcode.DeadStores ++Check for values stored to variables that are never read afterwards. ++.It debug.DumpCFG ++Display Control-Flow Graphs. ++.It debug.DumpCallGraph ++Display Call Graph. ++.It debug.DumpDominators ++Print the dominance tree for a given Control-Flow Graph. ++.It debug.DumpLiveVars ++Print results of live variable analysis. ++.It debug.Stats ++Emit warnings with analyzer statistics. ++.It debug.TaintTest ++Mark tainted symbols as such. ++.It debug.ViewCFG ++View Control-Flow Graphs using ++.Ic GraphViz . ++.It debug.ViewCallGraph ++View Call Graph using ++.Ic GraphViz . ++.It llvm.Conventions ++Check code for LLVM codebase conventions. ++.It osx.API ++Check for proper uses of various Mac OS X APIs. ++.It osx.AtomicCAS ++Evaluate calls to ++.Vt OSAtomic ++functions. ++.It osx.SecKeychainAPI ++Check for proper uses of Secure Keychain APIs. ++.It osx.cocoa.AtSync ++Check for null pointers used as mutexes for @synchronized. ++.It osx.cocoa.ClassRelease ++Check for sending ++.Ql retain , ++.Ql release, ++or ++.Ql autorelease ++directly to a Class. ++.It osx.cocoa.IncompatibleMethodTypes ++Warn about Objective-C method signatures with type incompatibilities. ++.It osx.cocoa.NSAutoreleasePool ++Warn for suboptimal uses of ++.Vt NSAutoreleasePool ++in Objective-C GC mode. ++.It osx.cocoa.NSError ++Check usage of NSError** parameters. ++.It osx.cocoa.NilArg ++Check for prohibited nil arguments to Objective-C method calls. ++.It osx.cocoa.RetainCount ++Check for leaks and improper reference count management. ++.It osx.cocoa.SelfInit ++Check that ++.Ql self ++is properly initialized inside an initializer method. ++.It osx.cocoa.UnusedIvars ++Warn about private ivars that are never used. ++.It osx.cocoa.VariadicMethodTypes ++Check for passing non-Objective-C types to variadic methods that expect only Objective-C types. ++.It osx.coreFoundation.CFError ++Check usage of CFErrorRef* parameters. ++.It osx.coreFoundation.CFNumber ++Check for proper uses of ++.Fn CFNumberCreate . ++.It osx.coreFoundation.CFRetainRelease ++Check for null arguments to ++.Fn CFRetain , ++.Fn CFRelease , ++and ++.Fn CFMakeCollectable . ++.It osx.coreFoundation.containers.OutOfBounds ++Checks for index out-of-bounds when using the ++.Vt CFArray ++API. ++.It osx.coreFoundation.containers.PointerSizedValues ++Warns if ++.Vt CFArray , ++.Vt CFDictionary , ++or ++.Vt CFSet ++are created with non-pointer-size values. ++.It security.FloatLoopCounter ++Warn on using a floating point value as a loop counter (CERT: FLP30-C, FLP30-CPP). ++.It security.insecureAPI.UncheckedReturn ++Warn on uses of functions whose return values must be always checked. ++.It security.insecureAPI.getpw ++Warn on uses of ++.Fn getpw . ++.It security.insecureAPI.gets ++Warn on uses of ++.Fn gets . ++.It security.insecureAPI.mkstemp ++Warn when ++.Fn mkstemp ++is passed fewer than 6 X's in the format string. ++.It security.insecureAPI.mktemp ++Warn on uses of ++.Fn mktemp . ++.It security.insecureAPI.rand ++Warn on uses of ++.Fn rand , ++.Fn random , ++and related functions. ++.It security.insecureAPI.strcpy ++Warn on uses of ++.Fn strcpy ++and ++.Fn strcat . ++.It security.insecureAPI.vfork ++Warn on uses of ++.Fn vfork . ++.It unix.API ++Check calls to various UNIX/Posix functions. ++.It unix.Malloc ++Check for memory leaks, double free, and use-after-free. ++.It unix.cstring.BadSizeArg ++Check the size argument passed into C string functions for common ++erroneous patterns. ++.It unix.cstring.NullArg ++Check for null pointers being passed as arguments to C string functions. ++.El ++.\" ++.Sh EXAMPLE ++.Ic scan-build -o /tmp/myhtmldir make -j4 ++.Pp ++The above example causes analysis reports to be deposited into ++a subdirectory of ++.Pa /tmp/myhtmldir ++and to run ++.Ic make ++with the ++.Fl j4 ++option. ++A different subdirectory is created each time ++.Nm ++analyzes a project. ++The analyzer should support most parallel builds, but not distributed builds. ++.Sh AUTHORS ++.Nm ++was written by ++.An "Ted Kremenek" . ++Documentation contributed by ++.An "James K. Lowden" Aq jklowden@schemamania.org . +diff --git tools/clang/tools/scan-build/share/scan-build/scanview.css tools/clang/tools/scan-build/share/scan-build/scanview.css.orig +new file mode 100644 +index 0000000..cf8a5a6 +--- /dev/null ++++ tools/clang/tools/scan-build/share/scan-build/scanview.css +@@ -0,0 +1,62 @@ ++body { color:#000000; background-color:#ffffff } ++body { font-family: Helvetica, sans-serif; font-size:9pt } ++h1 { font-size: 14pt; } ++h2 { font-size: 12pt; } ++table { font-size:9pt } ++table { border-spacing: 0px; border: 1px solid black } ++th, table thead { ++ background-color:#eee; color:#666666; ++ font-weight: bold; cursor: default; ++ text-align:center; ++ font-weight: bold; font-family: Verdana; ++ white-space:nowrap; ++} ++.W { font-size:0px } ++th, td { padding:5px; padding-left:8px; text-align:left } ++td.SUMM_DESC { padding-left:12px } ++td.DESC { white-space:pre } ++td.Q { text-align:right } ++td { text-align:left } ++tbody.scrollContent { overflow:auto } ++ ++table.form_group { ++ background-color: #ccc; ++ border: 1px solid #333; ++ padding: 2px; ++} ++ ++table.form_inner_group { ++ background-color: #ccc; ++ border: 1px solid #333; ++ padding: 0px; ++} ++ ++table.form { ++ background-color: #999; ++ border: 1px solid #333; ++ padding: 2px; ++} ++ ++td.form_label { ++ text-align: right; ++ vertical-align: top; ++} ++/* For one line entires */ ++td.form_clabel { ++ text-align: right; ++ vertical-align: center; ++} ++td.form_value { ++ text-align: left; ++ vertical-align: top; ++} ++td.form_submit { ++ text-align: right; ++ vertical-align: top; ++} ++ ++h1.SubmitFail { ++ color: #f00; ++} ++h1.SubmitOk { ++} +diff --git tools/clang/tools/scan-build/share/scan-build/sorttable.js tools/clang/tools/scan-build/share/scan-build/sorttable.js.orig +new file mode 100644 +index 0000000..32faa07 +--- /dev/null ++++ tools/clang/tools/scan-build/share/scan-build/sorttable.js +@@ -0,0 +1,492 @@ ++/* ++ SortTable ++ version 2 ++ 7th April 2007 ++ Stuart Langridge, http://www.kryogenix.org/code/browser/sorttable/ ++ ++ Instructions: ++ Download this file ++ Add to your HTML ++ Add class="sortable" to any table you'd like to make sortable ++ Click on the headers to sort ++ ++ Thanks to many, many people for contributions and suggestions. ++ Licenced as X11: http://www.kryogenix.org/code/browser/licence.html ++ This basically means: do what you want with it. ++*/ ++ ++ ++var stIsIE = /*@cc_on!@*/false; ++ ++sorttable = { ++ init: function() { ++ // quit if this function has already been called ++ if (arguments.callee.done) return; ++ // flag this function so we don't do the same thing twice ++ arguments.callee.done = true; ++ // kill the timer ++ if (_timer) clearInterval(_timer); ++ ++ if (!document.createElement || !document.getElementsByTagName) return; ++ ++ sorttable.DATE_RE = /^(\d\d?)[\/\.-](\d\d?)[\/\.-]((\d\d)?\d\d)$/; ++ ++ forEach(document.getElementsByTagName('table'), function(table) { ++ if (table.className.search(/\bsortable\b/) != -1) { ++ sorttable.makeSortable(table); ++ } ++ }); ++ ++ }, ++ ++ makeSortable: function(table) { ++ if (table.getElementsByTagName('thead').length == 0) { ++ // table doesn't have a tHead. Since it should have, create one and ++ // put the first table row in it. ++ the = document.createElement('thead'); ++ the.appendChild(table.rows[0]); ++ table.insertBefore(the,table.firstChild); ++ } ++ // Safari doesn't support table.tHead, sigh ++ if (table.tHead == null) table.tHead = table.getElementsByTagName('thead')[0]; ++ ++ if (table.tHead.rows.length != 1) return; // can't cope with two header rows ++ ++ // Sorttable v1 put rows with a class of "sortbottom" at the bottom (as ++ // "total" rows, for example). This is B&R, since what you're supposed ++ // to do is put them in a tfoot. So, if there are sortbottom rows, ++ // for backward compatibility, move them to tfoot (creating it if needed). ++ sortbottomrows = []; ++ for (var i=0; i5' : ' ▴'; ++ this.appendChild(sortrevind); ++ return; ++ } ++ if (this.className.search(/\bsorttable_sorted_reverse\b/) != -1) { ++ // if we're already sorted by this column in reverse, just ++ // re-reverse the table, which is quicker ++ sorttable.reverse(this.sorttable_tbody); ++ this.className = this.className.replace('sorttable_sorted_reverse', ++ 'sorttable_sorted'); ++ this.removeChild(document.getElementById('sorttable_sortrevind')); ++ sortfwdind = document.createElement('span'); ++ sortfwdind.id = "sorttable_sortfwdind"; ++ sortfwdind.innerHTML = stIsIE ? ' 6' : ' ▾'; ++ this.appendChild(sortfwdind); ++ return; ++ } ++ ++ // remove sorttable_sorted classes ++ theadrow = this.parentNode; ++ forEach(theadrow.childNodes, function(cell) { ++ if (cell.nodeType == 1) { // an element ++ cell.className = cell.className.replace('sorttable_sorted_reverse',''); ++ cell.className = cell.className.replace('sorttable_sorted',''); ++ } ++ }); ++ sortfwdind = document.getElementById('sorttable_sortfwdind'); ++ if (sortfwdind) { sortfwdind.parentNode.removeChild(sortfwdind); } ++ sortrevind = document.getElementById('sorttable_sortrevind'); ++ if (sortrevind) { sortrevind.parentNode.removeChild(sortrevind); } ++ ++ this.className += ' sorttable_sorted'; ++ sortfwdind = document.createElement('span'); ++ sortfwdind.id = "sorttable_sortfwdind"; ++ sortfwdind.innerHTML = stIsIE ? ' 6' : ' ▾'; ++ this.appendChild(sortfwdind); ++ ++ // build an array to sort. This is a Schwartzian transform thing, ++ // i.e., we "decorate" each row with the actual sort key, ++ // sort based on the sort keys, and then put the rows back in order ++ // which is a lot faster because you only do getInnerText once per row ++ row_array = []; ++ col = this.sorttable_columnindex; ++ rows = this.sorttable_tbody.rows; ++ for (var j=0; j 12) { ++ // definitely dd/mm ++ return sorttable.sort_ddmm; ++ } else if (second > 12) { ++ return sorttable.sort_mmdd; ++ } else { ++ // looks like a date, but we can't tell which, so assume ++ // that it's dd/mm (English imperialism!) and keep looking ++ sortfn = sorttable.sort_ddmm; ++ } ++ } ++ } ++ } ++ return sortfn; ++ }, ++ ++ getInnerText: function(node) { ++ // gets the text we want to use for sorting for a cell. ++ // strips leading and trailing whitespace. ++ // this is *not* a generic getInnerText function; it's special to sorttable. ++ // for example, you can override the cell text with a customkey attribute. ++ // it also gets .value for fields. ++ ++ hasInputs = (typeof node.getElementsByTagName == 'function') && ++ node.getElementsByTagName('input').length; ++ ++ if (node.getAttribute("sorttable_customkey") != null) { ++ return node.getAttribute("sorttable_customkey"); ++ } ++ else if (typeof node.textContent != 'undefined' && !hasInputs) { ++ return node.textContent.replace(/^\s+|\s+$/g, ''); ++ } ++ else if (typeof node.innerText != 'undefined' && !hasInputs) { ++ return node.innerText.replace(/^\s+|\s+$/g, ''); ++ } ++ else if (typeof node.text != 'undefined' && !hasInputs) { ++ return node.text.replace(/^\s+|\s+$/g, ''); ++ } ++ else { ++ switch (node.nodeType) { ++ case 3: ++ if (node.nodeName.toLowerCase() == 'input') { ++ return node.value.replace(/^\s+|\s+$/g, ''); ++ } ++ case 4: ++ return node.nodeValue.replace(/^\s+|\s+$/g, ''); ++ break; ++ case 1: ++ case 11: ++ var innerText = ''; ++ for (var i = 0; i < node.childNodes.length; i++) { ++ innerText += sorttable.getInnerText(node.childNodes[i]); ++ } ++ return innerText.replace(/^\s+|\s+$/g, ''); ++ break; ++ default: ++ return ''; ++ } ++ } ++ }, ++ ++ reverse: function(tbody) { ++ // reverse the rows in a tbody ++ newrows = []; ++ for (var i=0; i=0; i--) { ++ tbody.appendChild(newrows[i]); ++ } ++ delete newrows; ++ }, ++ ++ /* sort functions ++ each sort function takes two parameters, a and b ++ you are comparing a[0] and b[0] */ ++ sort_numeric: function(a,b) { ++ aa = parseFloat(a[0].replace(/[^0-9.-]/g,'')); ++ if (isNaN(aa)) aa = 0; ++ bb = parseFloat(b[0].replace(/[^0-9.-]/g,'')); ++ if (isNaN(bb)) bb = 0; ++ return aa-bb; ++ }, ++ sort_alpha: function(a,b) { ++ if (a[0]==b[0]) return 0; ++ if (a[0] 0 ) { ++ var q = list[i]; list[i] = list[i+1]; list[i+1] = q; ++ swap = true; ++ } ++ } // for ++ t--; ++ ++ if (!swap) break; ++ ++ for(var i = t; i > b; --i) { ++ if ( comp_func(list[i], list[i-1]) < 0 ) { ++ var q = list[i]; list[i] = list[i-1]; list[i-1] = q; ++ swap = true; ++ } ++ } // for ++ b++; ++ ++ } // while(swap) ++ } ++} ++ ++/* ****************************************************************** ++ Supporting functions: bundled here to avoid depending on a library ++ ****************************************************************** */ ++ ++// Dean Edwards/Matthias Miller/John Resig ++ ++/* for Mozilla/Opera9 */ ++if (document.addEventListener) { ++ document.addEventListener("DOMContentLoaded", sorttable.init, false); ++} ++ ++/* for Internet Explorer */ ++/*@cc_on @*/ ++/*@if (@_win32) ++ document.write("""")) ++ ++# Insert additional columns. ++kReportReplacements.append((re.compile(''), ++ '')) ++ ++# Insert report bug and open file links. ++kReportReplacements.append((re.compile(''), ++ ('Report Bug' + ++ 'Open File'))) ++ ++kReportReplacements.append((re.compile(''), ++ '

Summary > Report %(report)s

')) ++ ++kReportReplacements.append((re.compile(''), ++ 'Report Bug')) ++ ++# Insert report crashes link. ++ ++# Disabled for the time being until we decide exactly when this should ++# be enabled. Also the radar reporter needs to be fixed to report ++# multiple files. ++ ++#kReportReplacements.append((re.compile(''), ++# '
These files will automatically be attached to ' + ++# 'reports filed here: Report Crashes.')) ++ ++### ++# Other simple parameters ++ ++kShare = posixpath.join(posixpath.dirname(__file__), '../share/scan-view') ++kConfigPath = os.path.expanduser('~/.scanview.cfg') ++ ++### ++ ++__version__ = "0.1" ++ ++__all__ = ["create_server"] ++ ++class ReporterThread(threading.Thread): ++ def __init__(self, report, reporter, parameters, server): ++ threading.Thread.__init__(self) ++ self.report = report ++ self.server = server ++ self.reporter = reporter ++ self.parameters = parameters ++ self.success = False ++ self.status = None ++ ++ def run(self): ++ result = None ++ try: ++ if self.server.options.debug: ++ print >>sys.stderr, "%s: SERVER: submitting bug."%(sys.argv[0],) ++ self.status = self.reporter.fileReport(self.report, self.parameters) ++ self.success = True ++ time.sleep(3) ++ if self.server.options.debug: ++ print >>sys.stderr, "%s: SERVER: submission complete."%(sys.argv[0],) ++ except Reporter.ReportFailure,e: ++ self.status = e.value ++ except Exception,e: ++ s = StringIO.StringIO() ++ import traceback ++ print >>s,'Unhandled Exception
'
++            traceback.print_exc(e,file=s)
++            print >>s,'
' ++ self.status = s.getvalue() ++ ++class ScanViewServer(BaseHTTPServer.HTTPServer): ++ def __init__(self, address, handler, root, reporters, options): ++ BaseHTTPServer.HTTPServer.__init__(self, address, handler) ++ self.root = root ++ self.reporters = reporters ++ self.options = options ++ self.halted = False ++ self.config = None ++ self.load_config() ++ ++ def load_config(self): ++ self.config = ConfigParser.RawConfigParser() ++ ++ # Add defaults ++ self.config.add_section('ScanView') ++ for r in self.reporters: ++ self.config.add_section(r.getName()) ++ for p in r.getParameters(): ++ if p.saveConfigValue(): ++ self.config.set(r.getName(), p.getName(), '') ++ ++ # Ignore parse errors ++ try: ++ self.config.read([kConfigPath]) ++ except: ++ pass ++ ++ # Save on exit ++ import atexit ++ atexit.register(lambda: self.save_config()) ++ ++ def save_config(self): ++ # Ignore errors (only called on exit). ++ try: ++ f = open(kConfigPath,'w') ++ self.config.write(f) ++ f.close() ++ except: ++ pass ++ ++ def halt(self): ++ self.halted = True ++ if self.options.debug: ++ print >>sys.stderr, "%s: SERVER: halting." % (sys.argv[0],) ++ ++ def serve_forever(self): ++ while not self.halted: ++ if self.options.debug > 1: ++ print >>sys.stderr, "%s: SERVER: waiting..." % (sys.argv[0],) ++ try: ++ self.handle_request() ++ except OSError,e: ++ print 'OSError',e.errno ++ ++ def finish_request(self, request, client_address): ++ if self.options.autoReload: ++ import ScanView ++ self.RequestHandlerClass = reload(ScanView).ScanViewRequestHandler ++ BaseHTTPServer.HTTPServer.finish_request(self, request, client_address) ++ ++ def handle_error(self, request, client_address): ++ # Ignore socket errors ++ info = sys.exc_info() ++ if info and isinstance(info[1], socket.error): ++ if self.options.debug > 1: ++ print >>sys.stderr, "%s: SERVER: ignored socket error." % (sys.argv[0],) ++ return ++ BaseHTTPServer.HTTPServer.handle_error(self, request, client_address) ++ ++# Borrowed from Quixote, with simplifications. ++def parse_query(qs, fields=None): ++ if fields is None: ++ fields = {} ++ for chunk in filter(None, qs.split('&')): ++ if '=' not in chunk: ++ name = chunk ++ value = '' ++ else: ++ name, value = chunk.split('=', 1) ++ name = urllib.unquote(name.replace('+', ' ')) ++ value = urllib.unquote(value.replace('+', ' ')) ++ item = fields.get(name) ++ if item is None: ++ fields[name] = [value] ++ else: ++ item.append(value) ++ return fields ++ ++class ScanViewRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler): ++ server_version = "ScanViewServer/" + __version__ ++ dynamic_mtime = time.time() ++ ++ def do_HEAD(self): ++ try: ++ SimpleHTTPServer.SimpleHTTPRequestHandler.do_HEAD(self) ++ except Exception,e: ++ self.handle_exception(e) ++ ++ def do_GET(self): ++ try: ++ SimpleHTTPServer.SimpleHTTPRequestHandler.do_GET(self) ++ except Exception,e: ++ self.handle_exception(e) ++ ++ def do_POST(self): ++ """Serve a POST request.""" ++ try: ++ length = self.headers.getheader('content-length') or "0" ++ try: ++ length = int(length) ++ except: ++ length = 0 ++ content = self.rfile.read(length) ++ fields = parse_query(content) ++ f = self.send_head(fields) ++ if f: ++ self.copyfile(f, self.wfile) ++ f.close() ++ except Exception,e: ++ self.handle_exception(e) ++ ++ def log_message(self, format, *args): ++ if self.server.options.debug: ++ sys.stderr.write("%s: SERVER: %s - - [%s] %s\n" % ++ (sys.argv[0], ++ self.address_string(), ++ self.log_date_time_string(), ++ format%args)) ++ ++ def load_report(self, report): ++ path = os.path.join(self.server.root, 'report-%s.html'%report) ++ data = open(path).read() ++ keys = {} ++ for item in kBugKeyValueRE.finditer(data): ++ k,v = item.groups() ++ keys[k] = v ++ return keys ++ ++ def load_crashes(self): ++ path = posixpath.join(self.server.root, 'index.html') ++ data = open(path).read() ++ problems = [] ++ for item in kReportCrashEntryRE.finditer(data): ++ fieldData = item.group(1) ++ fields = dict([i.groups() for i in ++ kReportCrashEntryKeyValueRE.finditer(fieldData)]) ++ problems.append(fields) ++ return problems ++ ++ def handle_exception(self, exc): ++ import traceback ++ s = StringIO.StringIO() ++ print >>s, "INTERNAL ERROR\n" ++ traceback.print_exc(exc, s) ++ f = self.send_string(s.getvalue(), 'text/plain') ++ if f: ++ self.copyfile(f, self.wfile) ++ f.close() ++ ++ def get_scalar_field(self, name): ++ if name in self.fields: ++ return self.fields[name][0] ++ else: ++ return None ++ ++ def submit_bug(self, c): ++ title = self.get_scalar_field('title') ++ description = self.get_scalar_field('description') ++ report = self.get_scalar_field('report') ++ reporterIndex = self.get_scalar_field('reporter') ++ files = [] ++ for fileID in self.fields.get('files',[]): ++ try: ++ i = int(fileID) ++ except: ++ i = None ++ if i is None or i<0 or i>=len(c.files): ++ return (False, 'Invalid file ID') ++ files.append(c.files[i]) ++ ++ if not title: ++ return (False, "Missing title.") ++ if not description: ++ return (False, "Missing description.") ++ try: ++ reporterIndex = int(reporterIndex) ++ except: ++ return (False, "Invalid report method.") ++ ++ # Get the reporter and parameters. ++ reporter = self.server.reporters[reporterIndex] ++ parameters = {} ++ for o in reporter.getParameters(): ++ name = '%s_%s'%(reporter.getName(),o.getName()) ++ if name not in self.fields: ++ return (False, ++ 'Missing field "%s" for %s report method.'%(name, ++ reporter.getName())) ++ parameters[o.getName()] = self.get_scalar_field(name) ++ ++ # Update config defaults. ++ if report != 'None': ++ self.server.config.set('ScanView', 'reporter', reporterIndex) ++ for o in reporter.getParameters(): ++ if o.saveConfigValue(): ++ name = o.getName() ++ self.server.config.set(reporter.getName(), name, parameters[name]) ++ ++ # Create the report. ++ bug = Reporter.BugReport(title, description, files) ++ ++ # Kick off a reporting thread. ++ t = ReporterThread(bug, reporter, parameters, self.server) ++ t.start() ++ ++ # Wait for thread to die... ++ while t.isAlive(): ++ time.sleep(.25) ++ submitStatus = t.status ++ ++ return (t.success, t.status) ++ ++ def send_report_submit(self): ++ report = self.get_scalar_field('report') ++ c = self.get_report_context(report) ++ if c.reportSource is None: ++ reportingFor = "Report Crashes > " ++ fileBug = """\ ++File Bug > """%locals() ++ else: ++ reportingFor = 'Report %s > ' % (c.reportSource, ++ report) ++ fileBug = 'File Bug > ' % report ++ title = self.get_scalar_field('title') ++ description = self.get_scalar_field('description') ++ ++ res,message = self.submit_bug(c) ++ ++ if res: ++ statusClass = 'SubmitOk' ++ statusName = 'Succeeded' ++ else: ++ statusClass = 'SubmitFail' ++ statusName = 'Failed' ++ ++ result = """ ++ ++ Bug Submission ++ ++ ++ ++

++Summary > ++%(reportingFor)s ++%(fileBug)s ++Submit

++
++ ++ ++
++ ++ ++ ++ ++ ++ ++ ++ ++
Title: ++ ++
Description: ++ ++
++
++
++

Submission %(statusName)s

++%(message)s ++

++


++Return to Summary ++ ++"""%locals() ++ return self.send_string(result) ++ ++ def send_open_report(self, report): ++ try: ++ keys = self.load_report(report) ++ except IOError: ++ return self.send_error(400, 'Invalid report.') ++ ++ file = keys.get('FILE') ++ if not file or not posixpath.exists(file): ++ return self.send_error(400, 'File does not exist: "%s"' % file) ++ ++ import startfile ++ if self.server.options.debug: ++ print >>sys.stderr, '%s: SERVER: opening "%s"'%(sys.argv[0], ++ file) ++ ++ status = startfile.open(file) ++ if status: ++ res = 'Opened: "%s"' % file ++ else: ++ res = 'Open failed: "%s"' % file ++ ++ return self.send_string(res, 'text/plain') ++ ++ def get_report_context(self, report): ++ class Context: ++ pass ++ if report is None or report == 'None': ++ data = self.load_crashes() ++ # Don't allow empty reports. ++ if not data: ++ raise ValueError, 'No crashes detected!' ++ c = Context() ++ c.title = 'clang static analyzer failures' ++ ++ stderrSummary = "" ++ for item in data: ++ if 'stderr' in item: ++ path = posixpath.join(self.server.root, item['stderr']) ++ if os.path.exists(path): ++ lns = itertools.islice(open(path), 0, 10) ++ stderrSummary += '%s\n--\n%s' % (item.get('src', ++ ''), ++ ''.join(lns)) ++ ++ c.description = """\ ++The clang static analyzer failed on these inputs: ++%s ++ ++STDERR Summary ++-------------- ++%s ++""" % ('\n'.join([item.get('src','') for item in data]), ++ stderrSummary) ++ c.reportSource = None ++ c.navMarkup = "Report Crashes > " ++ c.files = [] ++ for item in data: ++ c.files.append(item.get('src','')) ++ c.files.append(posixpath.join(self.server.root, ++ item.get('file',''))) ++ c.files.append(posixpath.join(self.server.root, ++ item.get('clangfile',''))) ++ c.files.append(posixpath.join(self.server.root, ++ item.get('stderr',''))) ++ c.files.append(posixpath.join(self.server.root, ++ item.get('info',''))) ++ # Just in case something failed, ignore files which don't ++ # exist. ++ c.files = [f for f in c.files ++ if os.path.exists(f) and os.path.isfile(f)] ++ else: ++ # Check that this is a valid report. ++ path = posixpath.join(self.server.root, 'report-%s.html' % report) ++ if not posixpath.exists(path): ++ raise ValueError, 'Invalid report ID' ++ keys = self.load_report(report) ++ c = Context() ++ c.title = keys.get('DESC','clang error (unrecognized') ++ c.description = """\ ++Bug reported by the clang static analyzer. ++ ++Description: %s ++File: %s ++Line: %s ++"""%(c.title, keys.get('FILE',''), keys.get('LINE', '')) ++ c.reportSource = 'report-%s.html' % report ++ c.navMarkup = """Report %s > """ % (c.reportSource, ++ report) ++ ++ c.files = [path] ++ return c ++ ++ def send_report(self, report, configOverrides=None): ++ def getConfigOption(section, field): ++ if (configOverrides is not None and ++ section in configOverrides and ++ field in configOverrides[section]): ++ return configOverrides[section][field] ++ return self.server.config.get(section, field) ++ ++ # report is None is used for crashes ++ try: ++ c = self.get_report_context(report) ++ except ValueError, e: ++ return self.send_error(400, e.message) ++ ++ title = c.title ++ description= c.description ++ reportingFor = c.navMarkup ++ if c.reportSource is None: ++ extraIFrame = "" ++ else: ++ extraIFrame = """\ ++""" % (c.reportSource, c.reportSource) ++ ++ reporterSelections = [] ++ reporterOptions = [] ++ ++ try: ++ active = int(getConfigOption('ScanView','reporter')) ++ except: ++ active = 0 ++ for i,r in enumerate(self.server.reporters): ++ selected = (i == active) ++ if selected: ++ selectedStr = ' selected' ++ else: ++ selectedStr = '' ++ reporterSelections.append(''%(i,selectedStr,r.getName())) ++ options = '\n'.join([ o.getHTML(r,title,getConfigOption) for o in r.getParameters()]) ++ display = ('none','')[selected] ++ reporterOptions.append("""\ ++ ++ %s Options ++ ++ ++%s ++
++ ++ ++"""%(r.getName(),display,r.getName(),options)) ++ reporterSelections = '\n'.join(reporterSelections) ++ reporterOptionsDivs = '\n'.join(reporterOptions) ++ reportersArray = '[%s]'%(','.join([`r.getName()` for r in self.server.reporters])) ++ ++ if c.files: ++ fieldSize = min(5, len(c.files)) ++ attachFileOptions = '\n'.join(["""\ ++""" % (i,v) for i,v in enumerate(c.files)]) ++ attachFileRow = """\ ++ ++ Attach: ++ ++ ++ ++ ++""" % (min(5, len(c.files)), attachFileOptions) ++ else: ++ attachFileRow = "" ++ ++ result = """ ++ ++ File Bug ++ ++ ++ ++ ++

++Summary > ++%(reportingFor)s ++File Bug

++
++ ++ ++ ++ ++ ++
++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++%(attachFileRow)s ++ ++
Title: ++ ++
Description: ++ ++
++
++ ++ ++ ++ ++ ++%(reporterOptionsDivs)s ++
Method: ++ ++
++
++
++ ++
++
++ ++%(extraIFrame)s ++ ++ ++"""%locals() ++ ++ return self.send_string(result) ++ ++ def send_head(self, fields=None): ++ if (self.server.options.onlyServeLocal and ++ self.client_address[0] != '127.0.0.1'): ++ return self.send_error(401, 'Unauthorized host.') ++ ++ if fields is None: ++ fields = {} ++ self.fields = fields ++ ++ o = urlparse.urlparse(self.path) ++ self.fields = parse_query(o.query, fields) ++ path = posixpath.normpath(urllib.unquote(o.path)) ++ ++ # Split the components and strip the root prefix. ++ components = path.split('/')[1:] ++ ++ # Special case some top-level entries. ++ if components: ++ name = components[0] ++ if len(components)==2: ++ if name=='report': ++ return self.send_report(components[1]) ++ elif name=='open': ++ return self.send_open_report(components[1]) ++ elif len(components)==1: ++ if name=='quit': ++ self.server.halt() ++ return self.send_string('Goodbye.', 'text/plain') ++ elif name=='report_submit': ++ return self.send_report_submit() ++ elif name=='report_crashes': ++ overrides = { 'ScanView' : {}, ++ 'Radar' : {}, ++ 'Email' : {} } ++ for i,r in enumerate(self.server.reporters): ++ if r.getName() == 'Radar': ++ overrides['ScanView']['reporter'] = i ++ break ++ overrides['Radar']['Component'] = 'llvm - checker' ++ overrides['Radar']['Component Version'] = 'X' ++ return self.send_report(None, overrides) ++ elif name=='favicon.ico': ++ return self.send_path(posixpath.join(kShare,'bugcatcher.ico')) ++ ++ # Match directory entries. ++ if components[-1] == '': ++ components[-1] = 'index.html' ++ ++ relpath = '/'.join(components) ++ path = posixpath.join(self.server.root, relpath) ++ ++ if self.server.options.debug > 1: ++ print >>sys.stderr, '%s: SERVER: sending path "%s"'%(sys.argv[0], ++ path) ++ return self.send_path(path) ++ ++ def send_404(self): ++ self.send_error(404, "File not found") ++ return None ++ ++ def send_path(self, path): ++ # If the requested path is outside the root directory, do not open it ++ rel = os.path.abspath(path) ++ if not rel.startswith(os.path.abspath(self.server.root)): ++ return self.send_404() ++ ++ ctype = self.guess_type(path) ++ if ctype.startswith('text/'): ++ # Patch file instead ++ return self.send_patched_file(path, ctype) ++ else: ++ mode = 'rb' ++ try: ++ f = open(path, mode) ++ except IOError: ++ return self.send_404() ++ return self.send_file(f, ctype) ++ ++ def send_file(self, f, ctype): ++ # Patch files to add links, but skip binary files. ++ self.send_response(200) ++ self.send_header("Content-type", ctype) ++ fs = os.fstat(f.fileno()) ++ self.send_header("Content-Length", str(fs[6])) ++ self.send_header("Last-Modified", self.date_time_string(fs.st_mtime)) ++ self.end_headers() ++ return f ++ ++ def send_string(self, s, ctype='text/html', headers=True, mtime=None): ++ if headers: ++ self.send_response(200) ++ self.send_header("Content-type", ctype) ++ self.send_header("Content-Length", str(len(s))) ++ if mtime is None: ++ mtime = self.dynamic_mtime ++ self.send_header("Last-Modified", self.date_time_string(mtime)) ++ self.end_headers() ++ return StringIO.StringIO(s) ++ ++ def send_patched_file(self, path, ctype): ++ # Allow a very limited set of variables. This is pretty gross. ++ variables = {} ++ variables['report'] = '' ++ m = kReportFileRE.match(path) ++ if m: ++ variables['report'] = m.group(2) ++ ++ try: ++ f = open(path,'r') ++ except IOError: ++ return self.send_404() ++ fs = os.fstat(f.fileno()) ++ data = f.read() ++ for a,b in kReportReplacements: ++ data = a.sub(b % variables, data) ++ return self.send_string(data, ctype, mtime=fs.st_mtime) ++ ++ ++def create_server(address, options, root): ++ import Reporter ++ ++ reporters = Reporter.getReporters() ++ ++ return ScanViewServer(address, ScanViewRequestHandler, ++ root, ++ reporters, ++ options) +diff --git tools/clang/tools/scan-view/share/startfile.py tools/clang/tools/scan-view/share/startfile.py.orig +new file mode 100644 +index 0000000..e8fbe2d +--- /dev/null ++++ tools/clang/tools/scan-view/share/startfile.py +@@ -0,0 +1,203 @@ ++"""Utility for opening a file using the default application in a cross-platform ++manner. Modified from http://code.activestate.com/recipes/511443/. ++""" ++ ++__version__ = '1.1x' ++__all__ = ['open'] ++ ++import os ++import sys ++import webbrowser ++import subprocess ++ ++_controllers = {} ++_open = None ++ ++ ++class BaseController(object): ++ '''Base class for open program controllers.''' ++ ++ def __init__(self, name): ++ self.name = name ++ ++ def open(self, filename): ++ raise NotImplementedError ++ ++ ++class Controller(BaseController): ++ '''Controller for a generic open program.''' ++ ++ def __init__(self, *args): ++ super(Controller, self).__init__(os.path.basename(args[0])) ++ self.args = list(args) ++ ++ def _invoke(self, cmdline): ++ if sys.platform[:3] == 'win': ++ closefds = False ++ startupinfo = subprocess.STARTUPINFO() ++ startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW ++ else: ++ closefds = True ++ startupinfo = None ++ ++ if (os.environ.get('DISPLAY') or sys.platform[:3] == 'win' or ++ sys.platform == 'darwin'): ++ inout = file(os.devnull, 'r+') ++ else: ++ # for TTY programs, we need stdin/out ++ inout = None ++ ++ # if possible, put the child precess in separate process group, ++ # so keyboard interrupts don't affect child precess as well as ++ # Python ++ setsid = getattr(os, 'setsid', None) ++ if not setsid: ++ setsid = getattr(os, 'setpgrp', None) ++ ++ pipe = subprocess.Popen(cmdline, stdin=inout, stdout=inout, ++ stderr=inout, close_fds=closefds, ++ preexec_fn=setsid, startupinfo=startupinfo) ++ ++ # It is assumed that this kind of tools (gnome-open, kfmclient, ++ # exo-open, xdg-open and open for OSX) immediately exit after lauching ++ # the specific application ++ returncode = pipe.wait() ++ if hasattr(self, 'fixreturncode'): ++ returncode = self.fixreturncode(returncode) ++ return not returncode ++ ++ def open(self, filename): ++ if isinstance(filename, basestring): ++ cmdline = self.args + [filename] ++ else: ++ # assume it is a sequence ++ cmdline = self.args + filename ++ try: ++ return self._invoke(cmdline) ++ except OSError: ++ return False ++ ++ ++# Platform support for Windows ++if sys.platform[:3] == 'win': ++ ++ class Start(BaseController): ++ '''Controller for the win32 start progam through os.startfile.''' ++ ++ def open(self, filename): ++ try: ++ os.startfile(filename) ++ except WindowsError: ++ # [Error 22] No application is associated with the specified ++ # file for this operation: '' ++ return False ++ else: ++ return True ++ ++ _controllers['windows-default'] = Start('start') ++ _open = _controllers['windows-default'].open ++ ++ ++# Platform support for MacOS ++elif sys.platform == 'darwin': ++ _controllers['open']= Controller('open') ++ _open = _controllers['open'].open ++ ++ ++# Platform support for Unix ++else: ++ ++ import commands ++ ++ # @WARNING: use the private API of the webbrowser module ++ from webbrowser import _iscommand ++ ++ class KfmClient(Controller): ++ '''Controller for the KDE kfmclient program.''' ++ ++ def __init__(self, kfmclient='kfmclient'): ++ super(KfmClient, self).__init__(kfmclient, 'exec') ++ self.kde_version = self.detect_kde_version() ++ ++ def detect_kde_version(self): ++ kde_version = None ++ try: ++ info = commands.getoutput('kde-config --version') ++ ++ for line in info.splitlines(): ++ if line.startswith('KDE'): ++ kde_version = line.split(':')[-1].strip() ++ break ++ except (OSError, RuntimeError): ++ pass ++ ++ return kde_version ++ ++ def fixreturncode(self, returncode): ++ if returncode is not None and self.kde_version > '3.5.4': ++ return returncode ++ else: ++ return os.EX_OK ++ ++ def detect_desktop_environment(): ++ '''Checks for known desktop environments ++ ++ Return the desktop environments name, lowercase (kde, gnome, xfce) ++ or "generic" ++ ++ ''' ++ ++ desktop_environment = 'generic' ++ ++ if os.environ.get('KDE_FULL_SESSION') == 'true': ++ desktop_environment = 'kde' ++ elif os.environ.get('GNOME_DESKTOP_SESSION_ID'): ++ desktop_environment = 'gnome' ++ else: ++ try: ++ info = commands.getoutput('xprop -root _DT_SAVE_MODE') ++ if ' = "xfce4"' in info: ++ desktop_environment = 'xfce' ++ except (OSError, RuntimeError): ++ pass ++ ++ return desktop_environment ++ ++ ++ def register_X_controllers(): ++ if _iscommand('kfmclient'): ++ _controllers['kde-open'] = KfmClient() ++ ++ for command in ('gnome-open', 'exo-open', 'xdg-open'): ++ if _iscommand(command): ++ _controllers[command] = Controller(command) ++ ++ def get(): ++ controllers_map = { ++ 'gnome': 'gnome-open', ++ 'kde': 'kde-open', ++ 'xfce': 'exo-open', ++ } ++ ++ desktop_environment = detect_desktop_environment() ++ ++ try: ++ controller_name = controllers_map[desktop_environment] ++ return _controllers[controller_name].open ++ ++ except KeyError: ++ if _controllers.has_key('xdg-open'): ++ return _controllers['xdg-open'].open ++ else: ++ return webbrowser.open ++ ++ ++ if os.environ.get("DISPLAY"): ++ register_X_controllers() ++ _open = get() ++ ++ ++def open(filename): ++ '''Open a file or an URL in the registered default application.''' ++ ++ return _open(filename) Property changes on: head/devel/llvm37/files/clang-patch-static-analizer.diff ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/devel/llvm37/pkg-plist =================================================================== --- head/devel/llvm37/pkg-plist (revision 405901) +++ head/devel/llvm37/pkg-plist (revision 405902) @@ -1,2473 +1,2489 @@ bin/bugpoint37 bin/llc37 bin/lli37 bin/llvm-ar37 bin/llvm-as37 bin/llvm-bcanalyzer37 bin/llvm-config37 bin/llvm-cov37 bin/llvm-diff37 bin/llvm-dis37 bin/llvm-dwarfdump37 bin/llvm-extract37 bin/llvm-link37 bin/llvm-mc37 bin/llvm-mcmarkup37 bin/llvm-nm37 bin/llvm-objdump37 bin/llvm-profdata37 bin/llvm-ranlib37 bin/llvm-readobj37 bin/llvm-rtdyld37 bin/llvm-size37 bin/llvm-stress37 bin/llvm-symbolizer37 bin/llvm-tblgen37 bin/macho-dump37 bin/opt37 %%CLANG%%bin/clang37 %%CLANG%%bin/clang++37 %%CLANG%%bin/clang-check37 %%CLANG%%bin/clang-cpp37 %%CLANG%%bin/clang-format37 %%CLANG%%bin/clang-tblgen37 +%%CLANG%%bin/scan-build37 +%%CLANG%%bin/scan-view37 %%EXTRAS%%bin/clang-apply-replacements37 %%EXTRAS%%bin/clang-modernize37 %%EXTRAS%%bin/clang-rename37 %%EXTRAS%%bin/clang-tidy37 %%LLD%%bin/lld37 %%LLDB%%bin/argdumper37 %%LLDB%%bin/lldb37 %%LLDB%%bin/lldb-mi37 %%LLDB%%bin/lldb-server37 %%LIT%%bin/lit37 %%LIT%%llvm37/bin/lit %%LIT%%bin/llvm-lit37 %%LIT%%llvm37/bin/llvm-lit %%LIT%%bin/FileCheck37 %%LIT%%llvm37/bin/FileCheck %%LLDB%%llvm37/bin/argdumper llvm37/bin/bugpoint %%CLANG%%llvm37/bin/clang %%CLANG%%llvm37/bin/clang++ %%CLANG%%llvm37/bin/clang-3.7 %%EXTRAS%%llvm37/bin/clang-apply-replacements %%CLANG%%llvm37/bin/clang-check %%CLANG%%llvm37/bin/clang-cl %%CLANG%%llvm37/bin/clang-cpp %%CLANG%%llvm37/bin/clang-format %%EXTRAS%%llvm37/bin/clang-modernize %%EXTRAS%%llvm37/bin/clang-rename %%CLANG%%llvm37/bin/clang-tblgen %%EXTRAS%%llvm37/bin/clang-tidy %%CLANG%%llvm37/bin/git-clang-format llvm37/bin/llc %%LLD%%llvm37/bin/lld %%LLDB%%llvm37/bin/lldb %%LLDB%%llvm37/bin/lldb-%%LLVM_RELEASE%% %%LLDB%%llvm37/bin/lldb-mi %%LLDB%%llvm37/bin/lldb-mi-%%LLVM_RELEASE%% %%LLDB%%llvm37/bin/lldb-server %%LLDB%%llvm37/bin/lldb-server-%%LLVM_RELEASE%% llvm37/bin/lli llvm37/bin/llvm-ar llvm37/bin/llvm-as llvm37/bin/llvm-bcanalyzer llvm37/bin/llvm-c-test llvm37/bin/llvm-config llvm37/bin/llvm-cov llvm37/bin/llvm-cxxdump llvm37/bin/llvm-diff llvm37/bin/llvm-dis llvm37/bin/llvm-dsymutil llvm37/bin/llvm-dwarfdump llvm37/bin/llvm-extract llvm37/bin/llvm-lib llvm37/bin/llvm-link llvm37/bin/llvm-lto llvm37/bin/llvm-mc llvm37/bin/llvm-mcmarkup llvm37/bin/llvm-nm llvm37/bin/llvm-objdump llvm37/bin/llvm-pdbdump llvm37/bin/llvm-profdata llvm37/bin/llvm-ranlib llvm37/bin/llvm-readobj llvm37/bin/llvm-rtdyld llvm37/bin/llvm-size llvm37/bin/llvm-stress llvm37/bin/llvm-symbolizer llvm37/bin/llvm-tblgen llvm37/bin/macho-dump llvm37/bin/obj2yaml llvm37/bin/opt +%%CLANG%%llvm37/bin/scan-build +%%CLANG%%llvm37/bin/scan-view llvm37/bin/verify-uselistorder llvm37/bin/yaml2obj %%CLANG%%llvm37/include/clang-c/BuildSystem.h %%CLANG%%llvm37/include/clang-c/CXCompilationDatabase.h %%CLANG%%llvm37/include/clang-c/CXErrorCode.h %%CLANG%%llvm37/include/clang-c/CXString.h %%CLANG%%llvm37/include/clang-c/Documentation.h %%CLANG%%llvm37/include/clang-c/Index.h %%CLANG%%llvm37/include/clang-c/Platform.h %%CLANG%%llvm37/include/clang/ARCMigrate/ARCMT.h %%CLANG%%llvm37/include/clang/ARCMigrate/ARCMTActions.h %%CLANG%%llvm37/include/clang/ARCMigrate/FileRemapper.h %%CLANG%%llvm37/include/clang/AST/APValue.h %%CLANG%%llvm37/include/clang/AST/AST.h %%CLANG%%llvm37/include/clang/AST/ASTConsumer.h %%CLANG%%llvm37/include/clang/AST/ASTContext.h %%CLANG%%llvm37/include/clang/AST/ASTDiagnostic.h %%CLANG%%llvm37/include/clang/AST/ASTFwd.h %%CLANG%%llvm37/include/clang/AST/ASTImporter.h %%CLANG%%llvm37/include/clang/AST/ASTLambda.h %%CLANG%%llvm37/include/clang/AST/ASTMutationListener.h %%CLANG%%llvm37/include/clang/AST/ASTTypeTraits.h %%CLANG%%llvm37/include/clang/AST/ASTUnresolvedSet.h %%CLANG%%llvm37/include/clang/AST/ASTVector.h %%CLANG%%llvm37/include/clang/AST/Attr.h %%CLANG%%llvm37/include/clang/AST/AttrDump.inc %%CLANG%%llvm37/include/clang/AST/AttrImpl.inc %%CLANG%%llvm37/include/clang/AST/AttrIterator.h %%CLANG%%llvm37/include/clang/AST/AttrVisitor.inc %%CLANG%%llvm37/include/clang/AST/Attrs.inc %%CLANG%%llvm37/include/clang/AST/BaseSubobject.h %%CLANG%%llvm37/include/clang/AST/BuiltinTypes.def %%CLANG%%llvm37/include/clang/AST/CXXInheritance.h %%CLANG%%llvm37/include/clang/AST/CanonicalType.h %%CLANG%%llvm37/include/clang/AST/CharUnits.h %%CLANG%%llvm37/include/clang/AST/Comment.h %%CLANG%%llvm37/include/clang/AST/CommentBriefParser.h %%CLANG%%llvm37/include/clang/AST/CommentCommandInfo.inc %%CLANG%%llvm37/include/clang/AST/CommentCommandList.inc %%CLANG%%llvm37/include/clang/AST/CommentCommandTraits.h %%CLANG%%llvm37/include/clang/AST/CommentDiagnostic.h %%CLANG%%llvm37/include/clang/AST/CommentHTMLNamedCharacterReferences.inc %%CLANG%%llvm37/include/clang/AST/CommentHTMLTags.inc %%CLANG%%llvm37/include/clang/AST/CommentHTMLTagsProperties.inc %%CLANG%%llvm37/include/clang/AST/CommentLexer.h %%CLANG%%llvm37/include/clang/AST/CommentNodes.inc %%CLANG%%llvm37/include/clang/AST/CommentParser.h %%CLANG%%llvm37/include/clang/AST/CommentSema.h %%CLANG%%llvm37/include/clang/AST/CommentVisitor.h %%CLANG%%llvm37/include/clang/AST/DataRecursiveASTVisitor.h %%CLANG%%llvm37/include/clang/AST/Decl.h %%CLANG%%llvm37/include/clang/AST/DeclAccessPair.h %%CLANG%%llvm37/include/clang/AST/DeclBase.h %%CLANG%%llvm37/include/clang/AST/DeclCXX.h %%CLANG%%llvm37/include/clang/AST/DeclContextInternals.h %%CLANG%%llvm37/include/clang/AST/DeclFriend.h %%CLANG%%llvm37/include/clang/AST/DeclGroup.h %%CLANG%%llvm37/include/clang/AST/DeclLookups.h %%CLANG%%llvm37/include/clang/AST/DeclNodes.inc %%CLANG%%llvm37/include/clang/AST/DeclObjC.h %%CLANG%%llvm37/include/clang/AST/DeclOpenMP.h %%CLANG%%llvm37/include/clang/AST/DeclTemplate.h %%CLANG%%llvm37/include/clang/AST/DeclVisitor.h %%CLANG%%llvm37/include/clang/AST/DeclarationName.h %%CLANG%%llvm37/include/clang/AST/DependentDiagnostic.h %%CLANG%%llvm37/include/clang/AST/EvaluatedExprVisitor.h %%CLANG%%llvm37/include/clang/AST/Expr.h %%CLANG%%llvm37/include/clang/AST/ExprCXX.h %%CLANG%%llvm37/include/clang/AST/ExprObjC.h %%CLANG%%llvm37/include/clang/AST/ExternalASTSource.h %%CLANG%%llvm37/include/clang/AST/GlobalDecl.h %%CLANG%%llvm37/include/clang/AST/LambdaCapture.h %%CLANG%%llvm37/include/clang/AST/Mangle.h %%CLANG%%llvm37/include/clang/AST/MangleNumberingContext.h %%CLANG%%llvm37/include/clang/AST/NSAPI.h %%CLANG%%llvm37/include/clang/AST/NestedNameSpecifier.h %%CLANG%%llvm37/include/clang/AST/OpenMPClause.h %%CLANG%%llvm37/include/clang/AST/OperationKinds.h %%CLANG%%llvm37/include/clang/AST/ParentMap.h %%CLANG%%llvm37/include/clang/AST/PrettyPrinter.h %%CLANG%%llvm37/include/clang/AST/RawCommentList.h %%CLANG%%llvm37/include/clang/AST/RecordLayout.h %%CLANG%%llvm37/include/clang/AST/RecursiveASTVisitor.h %%CLANG%%llvm37/include/clang/AST/Redeclarable.h %%CLANG%%llvm37/include/clang/AST/SelectorLocationsKind.h %%CLANG%%llvm37/include/clang/AST/Stmt.h %%CLANG%%llvm37/include/clang/AST/StmtCXX.h %%CLANG%%llvm37/include/clang/AST/StmtGraphTraits.h %%CLANG%%llvm37/include/clang/AST/StmtIterator.h %%CLANG%%llvm37/include/clang/AST/StmtNodes.inc %%CLANG%%llvm37/include/clang/AST/StmtObjC.h %%CLANG%%llvm37/include/clang/AST/StmtOpenMP.h %%CLANG%%llvm37/include/clang/AST/StmtVisitor.h %%CLANG%%llvm37/include/clang/AST/TemplateBase.h %%CLANG%%llvm37/include/clang/AST/TemplateName.h %%CLANG%%llvm37/include/clang/AST/Type.h %%CLANG%%llvm37/include/clang/AST/TypeLoc.h %%CLANG%%llvm37/include/clang/AST/TypeLocNodes.def %%CLANG%%llvm37/include/clang/AST/TypeLocVisitor.h %%CLANG%%llvm37/include/clang/AST/TypeNodes.def %%CLANG%%llvm37/include/clang/AST/TypeOrdering.h %%CLANG%%llvm37/include/clang/AST/TypeVisitor.h %%CLANG%%llvm37/include/clang/AST/UnresolvedSet.h %%CLANG%%llvm37/include/clang/AST/VTTBuilder.h %%CLANG%%llvm37/include/clang/AST/VTableBuilder.h %%CLANG%%llvm37/include/clang/ASTMatchers/ASTMatchFinder.h %%CLANG%%llvm37/include/clang/ASTMatchers/ASTMatchers.h %%CLANG%%llvm37/include/clang/ASTMatchers/ASTMatchersInternal.h %%CLANG%%llvm37/include/clang/ASTMatchers/ASTMatchersMacros.h %%CLANG%%llvm37/include/clang/ASTMatchers/Dynamic/Diagnostics.h %%CLANG%%llvm37/include/clang/ASTMatchers/Dynamic/Parser.h %%CLANG%%llvm37/include/clang/ASTMatchers/Dynamic/Registry.h %%CLANG%%llvm37/include/clang/ASTMatchers/Dynamic/VariantValue.h %%CLANG%%llvm37/include/clang/Analysis/Analyses/CFGReachabilityAnalysis.h %%CLANG%%llvm37/include/clang/Analysis/Analyses/Consumed.h %%CLANG%%llvm37/include/clang/Analysis/Analyses/Dominators.h %%CLANG%%llvm37/include/clang/Analysis/Analyses/FormatString.h %%CLANG%%llvm37/include/clang/Analysis/Analyses/LiveVariables.h %%CLANG%%llvm37/include/clang/Analysis/Analyses/PostOrderCFGView.h %%CLANG%%llvm37/include/clang/Analysis/Analyses/PseudoConstantAnalysis.h %%CLANG%%llvm37/include/clang/Analysis/Analyses/ReachableCode.h %%CLANG%%llvm37/include/clang/Analysis/Analyses/ThreadSafety.h %%CLANG%%llvm37/include/clang/Analysis/Analyses/ThreadSafetyCommon.h %%CLANG%%llvm37/include/clang/Analysis/Analyses/ThreadSafetyLogical.h %%CLANG%%llvm37/include/clang/Analysis/Analyses/ThreadSafetyOps.def %%CLANG%%llvm37/include/clang/Analysis/Analyses/ThreadSafetyTIL.h %%CLANG%%llvm37/include/clang/Analysis/Analyses/ThreadSafetyTraverse.h %%CLANG%%llvm37/include/clang/Analysis/Analyses/ThreadSafetyUtil.h %%CLANG%%llvm37/include/clang/Analysis/Analyses/UninitializedValues.h %%CLANG%%llvm37/include/clang/Analysis/AnalysisContext.h %%CLANG%%llvm37/include/clang/Analysis/AnalysisDiagnostic.h %%CLANG%%llvm37/include/clang/Analysis/CFG.h %%CLANG%%llvm37/include/clang/Analysis/CFGStmtMap.h %%CLANG%%llvm37/include/clang/Analysis/CallGraph.h %%CLANG%%llvm37/include/clang/Analysis/CodeInjector.h %%CLANG%%llvm37/include/clang/Analysis/DomainSpecific/CocoaConventions.h %%CLANG%%llvm37/include/clang/Analysis/DomainSpecific/ObjCNoReturn.h %%CLANG%%llvm37/include/clang/Analysis/FlowSensitive/DataflowValues.h %%CLANG%%llvm37/include/clang/Analysis/ProgramPoint.h %%CLANG%%llvm37/include/clang/Analysis/Support/BumpVector.h %%CLANG%%llvm37/include/clang/Basic/ABI.h %%CLANG%%llvm37/include/clang/Basic/AddressSpaces.h %%CLANG%%llvm37/include/clang/Basic/AllDiagnostics.h %%CLANG%%llvm37/include/clang/Basic/AttrHasAttributeImpl.inc %%CLANG%%llvm37/include/clang/Basic/AttrKinds.h %%CLANG%%llvm37/include/clang/Basic/AttrList.inc %%CLANG%%llvm37/include/clang/Basic/Attributes.h %%CLANG%%llvm37/include/clang/Basic/Builtins.def %%CLANG%%llvm37/include/clang/Basic/Builtins.h %%CLANG%%llvm37/include/clang/Basic/BuiltinsAArch64.def %%CLANG%%llvm37/include/clang/Basic/BuiltinsAMDGPU.def %%CLANG%%llvm37/include/clang/Basic/BuiltinsARM.def %%CLANG%%llvm37/include/clang/Basic/BuiltinsHexagon.def %%CLANG%%llvm37/include/clang/Basic/BuiltinsLe64.def %%CLANG%%llvm37/include/clang/Basic/BuiltinsMips.def %%CLANG%%llvm37/include/clang/Basic/BuiltinsNEON.def %%CLANG%%llvm37/include/clang/Basic/BuiltinsNVPTX.def %%CLANG%%llvm37/include/clang/Basic/BuiltinsPPC.def %%CLANG%%llvm37/include/clang/Basic/BuiltinsSystemZ.def %%CLANG%%llvm37/include/clang/Basic/BuiltinsX86.def %%CLANG%%llvm37/include/clang/Basic/BuiltinsXCore.def %%CLANG%%llvm37/include/clang/Basic/CapturedStmt.h %%CLANG%%llvm37/include/clang/Basic/CharInfo.h %%CLANG%%llvm37/include/clang/Basic/CommentOptions.h %%CLANG%%llvm37/include/clang/Basic/Diagnostic.h %%CLANG%%llvm37/include/clang/Basic/DiagnosticASTKinds.inc %%CLANG%%llvm37/include/clang/Basic/DiagnosticAnalysisKinds.inc %%CLANG%%llvm37/include/clang/Basic/DiagnosticCategories.h %%CLANG%%llvm37/include/clang/Basic/DiagnosticCommentKinds.inc %%CLANG%%llvm37/include/clang/Basic/DiagnosticCommonKinds.inc %%CLANG%%llvm37/include/clang/Basic/DiagnosticDriverKinds.inc %%CLANG%%llvm37/include/clang/Basic/DiagnosticFrontendKinds.inc %%CLANG%%llvm37/include/clang/Basic/DiagnosticGroups.inc %%CLANG%%llvm37/include/clang/Basic/DiagnosticIDs.h %%CLANG%%llvm37/include/clang/Basic/DiagnosticIndexName.inc %%CLANG%%llvm37/include/clang/Basic/DiagnosticLexKinds.inc %%CLANG%%llvm37/include/clang/Basic/DiagnosticOptions.def %%CLANG%%llvm37/include/clang/Basic/DiagnosticOptions.h %%CLANG%%llvm37/include/clang/Basic/DiagnosticParseKinds.inc %%CLANG%%llvm37/include/clang/Basic/DiagnosticSemaKinds.inc %%CLANG%%llvm37/include/clang/Basic/DiagnosticSerializationKinds.inc %%CLANG%%llvm37/include/clang/Basic/ExceptionSpecificationType.h %%CLANG%%llvm37/include/clang/Basic/ExpressionTraits.h %%CLANG%%llvm37/include/clang/Basic/FileManager.h %%CLANG%%llvm37/include/clang/Basic/FileSystemOptions.h %%CLANG%%llvm37/include/clang/Basic/FileSystemStatCache.h %%CLANG%%llvm37/include/clang/Basic/IdentifierTable.h %%CLANG%%llvm37/include/clang/Basic/LLVM.h %%CLANG%%llvm37/include/clang/Basic/Lambda.h %%CLANG%%llvm37/include/clang/Basic/LangOptions.def %%CLANG%%llvm37/include/clang/Basic/LangOptions.h %%CLANG%%llvm37/include/clang/Basic/Linkage.h %%CLANG%%llvm37/include/clang/Basic/MacroBuilder.h %%CLANG%%llvm37/include/clang/Basic/Module.h %%CLANG%%llvm37/include/clang/Basic/ObjCRuntime.h %%CLANG%%llvm37/include/clang/Basic/OpenCLExtensions.def %%CLANG%%llvm37/include/clang/Basic/OpenMPKinds.def %%CLANG%%llvm37/include/clang/Basic/OpenMPKinds.h %%CLANG%%llvm37/include/clang/Basic/OperatorKinds.def %%CLANG%%llvm37/include/clang/Basic/OperatorKinds.h %%CLANG%%llvm37/include/clang/Basic/OperatorPrecedence.h %%CLANG%%llvm37/include/clang/Basic/PartialDiagnostic.h %%CLANG%%llvm37/include/clang/Basic/PlistSupport.h %%CLANG%%llvm37/include/clang/Basic/PrettyStackTrace.h %%CLANG%%llvm37/include/clang/Basic/SanitizerBlacklist.h %%CLANG%%llvm37/include/clang/Basic/Sanitizers.def %%CLANG%%llvm37/include/clang/Basic/Sanitizers.h %%CLANG%%llvm37/include/clang/Basic/SourceLocation.h %%CLANG%%llvm37/include/clang/Basic/SourceManager.h %%CLANG%%llvm37/include/clang/Basic/SourceManagerInternals.h %%CLANG%%llvm37/include/clang/Basic/Specifiers.h %%CLANG%%llvm37/include/clang/Basic/TargetBuiltins.h %%CLANG%%llvm37/include/clang/Basic/TargetCXXABI.h %%CLANG%%llvm37/include/clang/Basic/TargetInfo.h %%CLANG%%llvm37/include/clang/Basic/TargetOptions.h %%CLANG%%llvm37/include/clang/Basic/TemplateKinds.h %%CLANG%%llvm37/include/clang/Basic/TokenKinds.def %%CLANG%%llvm37/include/clang/Basic/TokenKinds.h %%CLANG%%llvm37/include/clang/Basic/TypeTraits.h %%CLANG%%llvm37/include/clang/Basic/Version.h %%CLANG%%llvm37/include/clang/Basic/Version.inc %%CLANG%%llvm37/include/clang/Basic/VersionTuple.h %%CLANG%%llvm37/include/clang/Basic/VirtualFileSystem.h %%CLANG%%llvm37/include/clang/Basic/Visibility.h %%CLANG%%llvm37/include/clang/Basic/arm_neon.inc %%CLANG%%llvm37/include/clang/CodeGen/BackendUtil.h %%CLANG%%llvm37/include/clang/CodeGen/CGFunctionInfo.h %%CLANG%%llvm37/include/clang/CodeGen/CodeGenABITypes.h %%CLANG%%llvm37/include/clang/CodeGen/CodeGenAction.h %%CLANG%%llvm37/include/clang/CodeGen/ModuleBuilder.h %%CLANG%%llvm37/include/clang/CodeGen/ObjectFilePCHContainerOperations.h %%CLANG%%llvm37/include/clang/Config/config.h %%CLANG%%llvm37/include/clang/Driver/Action.h %%CLANG%%llvm37/include/clang/Driver/Compilation.h %%CLANG%%llvm37/include/clang/Driver/Driver.h %%CLANG%%llvm37/include/clang/Driver/DriverDiagnostic.h %%CLANG%%llvm37/include/clang/Driver/Job.h %%CLANG%%llvm37/include/clang/Driver/Multilib.h %%CLANG%%llvm37/include/clang/Driver/Options.h %%CLANG%%llvm37/include/clang/Driver/Options.inc %%CLANG%%llvm37/include/clang/Driver/Phases.h %%CLANG%%llvm37/include/clang/Driver/SanitizerArgs.h %%CLANG%%llvm37/include/clang/Driver/Tool.h %%CLANG%%llvm37/include/clang/Driver/ToolChain.h %%CLANG%%llvm37/include/clang/Driver/Types.def %%CLANG%%llvm37/include/clang/Driver/Types.h %%CLANG%%llvm37/include/clang/Driver/Util.h %%CLANG%%llvm37/include/clang/Edit/Commit.h %%CLANG%%llvm37/include/clang/Edit/EditedSource.h %%CLANG%%llvm37/include/clang/Edit/EditsReceiver.h %%CLANG%%llvm37/include/clang/Edit/FileOffset.h %%CLANG%%llvm37/include/clang/Edit/Rewriters.h %%CLANG%%llvm37/include/clang/Format/Format.h %%CLANG%%llvm37/include/clang/Frontend/ASTConsumers.h %%CLANG%%llvm37/include/clang/Frontend/ASTUnit.h %%CLANG%%llvm37/include/clang/Frontend/ChainedDiagnosticConsumer.h %%CLANG%%llvm37/include/clang/Frontend/CodeGenOptions.def %%CLANG%%llvm37/include/clang/Frontend/CodeGenOptions.h %%CLANG%%llvm37/include/clang/Frontend/CommandLineSourceLoc.h %%CLANG%%llvm37/include/clang/Frontend/CompilerInstance.h %%CLANG%%llvm37/include/clang/Frontend/CompilerInvocation.h %%CLANG%%llvm37/include/clang/Frontend/DependencyOutputOptions.h %%CLANG%%llvm37/include/clang/Frontend/DiagnosticRenderer.h %%CLANG%%llvm37/include/clang/Frontend/FrontendAction.h %%CLANG%%llvm37/include/clang/Frontend/FrontendActions.h %%CLANG%%llvm37/include/clang/Frontend/FrontendDiagnostic.h %%CLANG%%llvm37/include/clang/Frontend/FrontendOptions.h %%CLANG%%llvm37/include/clang/Frontend/FrontendPluginRegistry.h %%CLANG%%llvm37/include/clang/Frontend/LangStandard.h %%CLANG%%llvm37/include/clang/Frontend/LangStandards.def %%CLANG%%llvm37/include/clang/Frontend/LayoutOverrideSource.h %%CLANG%%llvm37/include/clang/Frontend/LogDiagnosticPrinter.h %%CLANG%%llvm37/include/clang/Frontend/MigratorOptions.h %%CLANG%%llvm37/include/clang/Frontend/MultiplexConsumer.h %%CLANG%%llvm37/include/clang/Frontend/PCHContainerOperations.h %%CLANG%%llvm37/include/clang/Frontend/PreprocessorOutputOptions.h %%CLANG%%llvm37/include/clang/Frontend/SerializedDiagnosticPrinter.h %%CLANG%%llvm37/include/clang/Frontend/SerializedDiagnosticReader.h %%CLANG%%llvm37/include/clang/Frontend/SerializedDiagnostics.h %%CLANG%%llvm37/include/clang/Frontend/TextDiagnostic.h %%CLANG%%llvm37/include/clang/Frontend/TextDiagnosticBuffer.h %%CLANG%%llvm37/include/clang/Frontend/TextDiagnosticPrinter.h %%CLANG%%llvm37/include/clang/Frontend/Utils.h %%CLANG%%llvm37/include/clang/Frontend/VerifyDiagnosticConsumer.h %%CLANG%%llvm37/include/clang/FrontendTool/Utils.h %%CLANG%%llvm37/include/clang/Index/CommentToXML.h %%CLANG%%llvm37/include/clang/Index/USRGeneration.h %%CLANG%%llvm37/include/clang/Lex/CodeCompletionHandler.h %%CLANG%%llvm37/include/clang/Lex/DirectoryLookup.h %%CLANG%%llvm37/include/clang/Lex/ExternalPreprocessorSource.h %%CLANG%%llvm37/include/clang/Lex/HeaderMap.h %%CLANG%%llvm37/include/clang/Lex/HeaderSearch.h %%CLANG%%llvm37/include/clang/Lex/HeaderSearchOptions.h %%CLANG%%llvm37/include/clang/Lex/LexDiagnostic.h %%CLANG%%llvm37/include/clang/Lex/Lexer.h %%CLANG%%llvm37/include/clang/Lex/LiteralSupport.h %%CLANG%%llvm37/include/clang/Lex/MacroArgs.h %%CLANG%%llvm37/include/clang/Lex/MacroInfo.h %%CLANG%%llvm37/include/clang/Lex/ModuleLoader.h %%CLANG%%llvm37/include/clang/Lex/ModuleMap.h %%CLANG%%llvm37/include/clang/Lex/MultipleIncludeOpt.h %%CLANG%%llvm37/include/clang/Lex/PPCallbacks.h %%CLANG%%llvm37/include/clang/Lex/PPConditionalDirectiveRecord.h %%CLANG%%llvm37/include/clang/Lex/PTHLexer.h %%CLANG%%llvm37/include/clang/Lex/PTHManager.h %%CLANG%%llvm37/include/clang/Lex/Pragma.h %%CLANG%%llvm37/include/clang/Lex/PreprocessingRecord.h %%CLANG%%llvm37/include/clang/Lex/Preprocessor.h %%CLANG%%llvm37/include/clang/Lex/PreprocessorLexer.h %%CLANG%%llvm37/include/clang/Lex/PreprocessorOptions.h %%CLANG%%llvm37/include/clang/Lex/ScratchBuffer.h %%CLANG%%llvm37/include/clang/Lex/Token.h %%CLANG%%llvm37/include/clang/Lex/TokenConcatenation.h %%CLANG%%llvm37/include/clang/Lex/TokenLexer.h %%CLANG%%llvm37/include/clang/Parse/AttrParserStringSwitches.inc %%CLANG%%llvm37/include/clang/Parse/ParseAST.h %%CLANG%%llvm37/include/clang/Parse/ParseDiagnostic.h %%CLANG%%llvm37/include/clang/Parse/Parser.h %%CLANG%%llvm37/include/clang/Rewrite/Core/DeltaTree.h %%CLANG%%llvm37/include/clang/Rewrite/Core/HTMLRewrite.h %%CLANG%%llvm37/include/clang/Rewrite/Core/RewriteBuffer.h %%CLANG%%llvm37/include/clang/Rewrite/Core/RewriteRope.h %%CLANG%%llvm37/include/clang/Rewrite/Core/Rewriter.h %%CLANG%%llvm37/include/clang/Rewrite/Core/TokenRewriter.h %%CLANG%%llvm37/include/clang/Rewrite/Frontend/ASTConsumers.h %%CLANG%%llvm37/include/clang/Rewrite/Frontend/FixItRewriter.h %%CLANG%%llvm37/include/clang/Rewrite/Frontend/FrontendActions.h %%CLANG%%llvm37/include/clang/Rewrite/Frontend/Rewriters.h %%CLANG%%llvm37/include/clang/Sema/AnalysisBasedWarnings.h %%CLANG%%llvm37/include/clang/Sema/AttrParsedAttrImpl.inc %%CLANG%%llvm37/include/clang/Sema/AttrParsedAttrKinds.inc %%CLANG%%llvm37/include/clang/Sema/AttrParsedAttrList.inc %%CLANG%%llvm37/include/clang/Sema/AttrSpellingListIndex.inc %%CLANG%%llvm37/include/clang/Sema/AttrTemplateInstantiate.inc %%CLANG%%llvm37/include/clang/Sema/AttributeList.h %%CLANG%%llvm37/include/clang/Sema/CXXFieldCollector.h %%CLANG%%llvm37/include/clang/Sema/CodeCompleteConsumer.h %%CLANG%%llvm37/include/clang/Sema/CodeCompleteOptions.h %%CLANG%%llvm37/include/clang/Sema/DeclSpec.h %%CLANG%%llvm37/include/clang/Sema/DelayedDiagnostic.h %%CLANG%%llvm37/include/clang/Sema/Designator.h %%CLANG%%llvm37/include/clang/Sema/ExternalSemaSource.h %%CLANG%%llvm37/include/clang/Sema/IdentifierResolver.h %%CLANG%%llvm37/include/clang/Sema/Initialization.h %%CLANG%%llvm37/include/clang/Sema/LocInfoType.h %%CLANG%%llvm37/include/clang/Sema/Lookup.h %%CLANG%%llvm37/include/clang/Sema/LoopHint.h %%CLANG%%llvm37/include/clang/Sema/MultiplexExternalSemaSource.h %%CLANG%%llvm37/include/clang/Sema/ObjCMethodList.h %%CLANG%%llvm37/include/clang/Sema/Overload.h %%CLANG%%llvm37/include/clang/Sema/Ownership.h %%CLANG%%llvm37/include/clang/Sema/ParsedTemplate.h %%CLANG%%llvm37/include/clang/Sema/PrettyDeclStackTrace.h %%CLANG%%llvm37/include/clang/Sema/Scope.h %%CLANG%%llvm37/include/clang/Sema/ScopeInfo.h %%CLANG%%llvm37/include/clang/Sema/Sema.h %%CLANG%%llvm37/include/clang/Sema/SemaConsumer.h %%CLANG%%llvm37/include/clang/Sema/SemaDiagnostic.h %%CLANG%%llvm37/include/clang/Sema/SemaFixItUtils.h %%CLANG%%llvm37/include/clang/Sema/SemaInternal.h %%CLANG%%llvm37/include/clang/Sema/SemaLambda.h %%CLANG%%llvm37/include/clang/Sema/Template.h %%CLANG%%llvm37/include/clang/Sema/TemplateDeduction.h %%CLANG%%llvm37/include/clang/Sema/TypoCorrection.h %%CLANG%%llvm37/include/clang/Sema/Weak.h %%CLANG%%llvm37/include/clang/Serialization/ASTBitCodes.h %%CLANG%%llvm37/include/clang/Serialization/ASTDeserializationListener.h %%CLANG%%llvm37/include/clang/Serialization/ASTReader.h %%CLANG%%llvm37/include/clang/Serialization/ASTWriter.h %%CLANG%%llvm37/include/clang/Serialization/AttrPCHRead.inc %%CLANG%%llvm37/include/clang/Serialization/AttrPCHWrite.inc %%CLANG%%llvm37/include/clang/Serialization/ContinuousRangeMap.h %%CLANG%%llvm37/include/clang/Serialization/GlobalModuleIndex.h %%CLANG%%llvm37/include/clang/Serialization/Module.h %%CLANG%%llvm37/include/clang/Serialization/ModuleManager.h %%CLANG%%llvm37/include/clang/Serialization/SerializationDiagnostic.h %%CLANG%%llvm37/include/clang/StaticAnalyzer/Checkers/ClangCheckers.h %%CLANG%%llvm37/include/clang/StaticAnalyzer/Checkers/LocalCheckers.h %%CLANG%%llvm37/include/clang/StaticAnalyzer/Checkers/ObjCRetainCount.h %%CLANG%%llvm37/include/clang/StaticAnalyzer/Core/Analyses.def %%CLANG%%llvm37/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h %%CLANG%%llvm37/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h %%CLANG%%llvm37/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitor.h %%CLANG%%llvm37/include/clang/StaticAnalyzer/Core/BugReporter/BugType.h %%CLANG%%llvm37/include/clang/StaticAnalyzer/Core/BugReporter/CommonBugCategories.h %%CLANG%%llvm37/include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h %%CLANG%%llvm37/include/clang/StaticAnalyzer/Core/Checker.h %%CLANG%%llvm37/include/clang/StaticAnalyzer/Core/CheckerManager.h %%CLANG%%llvm37/include/clang/StaticAnalyzer/Core/CheckerOptInfo.h %%CLANG%%llvm37/include/clang/StaticAnalyzer/Core/CheckerRegistry.h %%CLANG%%llvm37/include/clang/StaticAnalyzer/Core/PathDiagnosticConsumers.h %%CLANG%%llvm37/include/clang/StaticAnalyzer/Core/PathSensitive/APSIntType.h %%CLANG%%llvm37/include/clang/StaticAnalyzer/Core/PathSensitive/AnalysisManager.h %%CLANG%%llvm37/include/clang/StaticAnalyzer/Core/PathSensitive/BasicValueFactory.h %%CLANG%%llvm37/include/clang/StaticAnalyzer/Core/PathSensitive/BlockCounter.h %%CLANG%%llvm37/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h %%CLANG%%llvm37/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h %%CLANG%%llvm37/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerHelpers.h %%CLANG%%llvm37/include/clang/StaticAnalyzer/Core/PathSensitive/ConstraintManager.h %%CLANG%%llvm37/include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h %%CLANG%%llvm37/include/clang/StaticAnalyzer/Core/PathSensitive/DynamicTypeInfo.h %%CLANG%%llvm37/include/clang/StaticAnalyzer/Core/PathSensitive/Environment.h %%CLANG%%llvm37/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h %%CLANG%%llvm37/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h %%CLANG%%llvm37/include/clang/StaticAnalyzer/Core/PathSensitive/FunctionSummary.h %%CLANG%%llvm37/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h %%CLANG%%llvm37/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h %%CLANG%%llvm37/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramStateTrait.h %%CLANG%%llvm37/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState_Fwd.h %%CLANG%%llvm37/include/clang/StaticAnalyzer/Core/PathSensitive/SValBuilder.h %%CLANG%%llvm37/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h %%CLANG%%llvm37/include/clang/StaticAnalyzer/Core/PathSensitive/Store.h %%CLANG%%llvm37/include/clang/StaticAnalyzer/Core/PathSensitive/StoreRef.h %%CLANG%%llvm37/include/clang/StaticAnalyzer/Core/PathSensitive/SubEngine.h %%CLANG%%llvm37/include/clang/StaticAnalyzer/Core/PathSensitive/SummaryManager.h %%CLANG%%llvm37/include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h %%CLANG%%llvm37/include/clang/StaticAnalyzer/Core/PathSensitive/TaintManager.h %%CLANG%%llvm37/include/clang/StaticAnalyzer/Core/PathSensitive/TaintTag.h %%CLANG%%llvm37/include/clang/StaticAnalyzer/Core/PathSensitive/WorkList.h %%CLANG%%llvm37/include/clang/StaticAnalyzer/Frontend/AnalysisConsumer.h %%CLANG%%llvm37/include/clang/StaticAnalyzer/Frontend/CheckerRegistration.h %%CLANG%%llvm37/include/clang/StaticAnalyzer/Frontend/FrontendActions.h %%CLANG%%llvm37/include/clang/StaticAnalyzer/Frontend/ModelConsumer.h %%CLANG%%llvm37/include/clang/Tooling/ArgumentsAdjusters.h %%CLANG%%llvm37/include/clang/Tooling/CommonOptionsParser.h %%CLANG%%llvm37/include/clang/Tooling/CompilationDatabase.h %%CLANG%%llvm37/include/clang/Tooling/CompilationDatabasePluginRegistry.h %%CLANG%%llvm37/include/clang/Tooling/Core/Replacement.h %%CLANG%%llvm37/include/clang/Tooling/FileMatchTrie.h %%CLANG%%llvm37/include/clang/Tooling/JSONCompilationDatabase.h %%CLANG%%llvm37/include/clang/Tooling/Refactoring.h %%CLANG%%llvm37/include/clang/Tooling/RefactoringCallbacks.h %%CLANG%%llvm37/include/clang/Tooling/ReplacementsYaml.h %%CLANG%%llvm37/include/clang/Tooling/Tooling.h %%LLD%%llvm37/include/lld/Config/Version.h %%LLD%%llvm37/include/lld/Core/AbsoluteAtom.h %%LLD%%llvm37/include/lld/Core/Alias.h %%LLD%%llvm37/include/lld/Core/ArchiveLibraryFile.h %%LLD%%llvm37/include/lld/Core/Atom.h %%LLD%%llvm37/include/lld/Core/DefinedAtom.h %%LLD%%llvm37/include/lld/Core/Error.h %%LLD%%llvm37/include/lld/Core/File.h %%LLD%%llvm37/include/lld/Core/Instrumentation.h %%LLD%%llvm37/include/lld/Core/LLVM.h %%LLD%%llvm37/include/lld/Core/LinkingContext.h %%LLD%%llvm37/include/lld/Core/Node.h %%LLD%%llvm37/include/lld/Core/Parallel.h %%LLD%%llvm37/include/lld/Core/Pass.h %%LLD%%llvm37/include/lld/Core/PassManager.h %%LLD%%llvm37/include/lld/Core/Reader.h %%LLD%%llvm37/include/lld/Core/Reference.h %%LLD%%llvm37/include/lld/Core/Resolver.h %%LLD%%llvm37/include/lld/Core/STDExtras.h %%LLD%%llvm37/include/lld/Core/SharedLibraryAtom.h %%LLD%%llvm37/include/lld/Core/SharedLibraryFile.h %%LLD%%llvm37/include/lld/Core/Simple.h %%LLD%%llvm37/include/lld/Core/SymbolTable.h %%LLD%%llvm37/include/lld/Core/UndefinedAtom.h %%LLD%%llvm37/include/lld/Core/Writer.h %%LLD%%llvm37/include/lld/Core/range.h %%LLD%%llvm37/include/lld/Driver/Driver.h %%LLD%%llvm37/include/lld/Driver/WinLinkModuleDef.h %%LLD%%llvm37/include/lld/ReaderWriter/AtomLayout.h %%LLD%%llvm37/include/lld/ReaderWriter/CoreLinkingContext.h %%LLD%%llvm37/include/lld/ReaderWriter/ELFLinkingContext.h %%LLD%%llvm37/include/lld/ReaderWriter/LinkerScript.h %%LLD%%llvm37/include/lld/ReaderWriter/MachOLinkingContext.h %%LLD%%llvm37/include/lld/ReaderWriter/PECOFFLinkingContext.h %%LLD%%llvm37/include/lld/ReaderWriter/YamlContext.h %%LLDB%%llvm37/include/lldb/API/LLDB.h %%LLDB%%llvm37/include/lldb/API/SBAddress.h %%LLDB%%llvm37/include/lldb/API/SBAttachInfo.h %%LLDB%%llvm37/include/lldb/API/SBBlock.h %%LLDB%%llvm37/include/lldb/API/SBBreakpoint.h %%LLDB%%llvm37/include/lldb/API/SBBreakpointLocation.h %%LLDB%%llvm37/include/lldb/API/SBBroadcaster.h %%LLDB%%llvm37/include/lldb/API/SBCommandInterpreter.h %%LLDB%%llvm37/include/lldb/API/SBCommandReturnObject.h %%LLDB%%llvm37/include/lldb/API/SBCommunication.h %%LLDB%%llvm37/include/lldb/API/SBCompileUnit.h %%LLDB%%llvm37/include/lldb/API/SBData.h %%LLDB%%llvm37/include/lldb/API/SBDebugger.h %%LLDB%%llvm37/include/lldb/API/SBDeclaration.h %%LLDB%%llvm37/include/lldb/API/SBDefines.h %%LLDB%%llvm37/include/lldb/API/SBError.h %%LLDB%%llvm37/include/lldb/API/SBEvent.h %%LLDB%%llvm37/include/lldb/API/SBExecutionContext.h %%LLDB%%llvm37/include/lldb/API/SBExpressionOptions.h %%LLDB%%llvm37/include/lldb/API/SBFileSpec.h %%LLDB%%llvm37/include/lldb/API/SBFileSpecList.h %%LLDB%%llvm37/include/lldb/API/SBFrame.h %%LLDB%%llvm37/include/lldb/API/SBFunction.h %%LLDB%%llvm37/include/lldb/API/SBHostOS.h %%LLDB%%llvm37/include/lldb/API/SBInstruction.h %%LLDB%%llvm37/include/lldb/API/SBInstructionList.h %%LLDB%%llvm37/include/lldb/API/SBLanguageRuntime.h %%LLDB%%llvm37/include/lldb/API/SBLaunchInfo.h %%LLDB%%llvm37/include/lldb/API/SBLineEntry.h %%LLDB%%llvm37/include/lldb/API/SBListener.h %%LLDB%%llvm37/include/lldb/API/SBModule.h %%LLDB%%llvm37/include/lldb/API/SBModuleSpec.h %%LLDB%%llvm37/include/lldb/API/SBPlatform.h %%LLDB%%llvm37/include/lldb/API/SBProcess.h %%LLDB%%llvm37/include/lldb/API/SBQueue.h %%LLDB%%llvm37/include/lldb/API/SBQueueItem.h %%LLDB%%llvm37/include/lldb/API/SBSection.h %%LLDB%%llvm37/include/lldb/API/SBSourceManager.h %%LLDB%%llvm37/include/lldb/API/SBStream.h %%LLDB%%llvm37/include/lldb/API/SBStringList.h %%LLDB%%llvm37/include/lldb/API/SBSymbol.h %%LLDB%%llvm37/include/lldb/API/SBSymbolContext.h %%LLDB%%llvm37/include/lldb/API/SBSymbolContextList.h %%LLDB%%llvm37/include/lldb/API/SBTarget.h %%LLDB%%llvm37/include/lldb/API/SBThread.h %%LLDB%%llvm37/include/lldb/API/SBThreadCollection.h %%LLDB%%llvm37/include/lldb/API/SBThreadPlan.h %%LLDB%%llvm37/include/lldb/API/SBType.h %%LLDB%%llvm37/include/lldb/API/SBTypeCategory.h %%LLDB%%llvm37/include/lldb/API/SBTypeEnumMember.h %%LLDB%%llvm37/include/lldb/API/SBTypeFilter.h %%LLDB%%llvm37/include/lldb/API/SBTypeFormat.h %%LLDB%%llvm37/include/lldb/API/SBTypeNameSpecifier.h %%LLDB%%llvm37/include/lldb/API/SBTypeSummary.h %%LLDB%%llvm37/include/lldb/API/SBTypeSynthetic.h %%LLDB%%llvm37/include/lldb/API/SBUnixSignals.h %%LLDB%%llvm37/include/lldb/API/SBValue.h %%LLDB%%llvm37/include/lldb/API/SBValueList.h %%LLDB%%llvm37/include/lldb/API/SBVariablesOptions.h %%LLDB%%llvm37/include/lldb/API/SBWatchpoint.h %%LLDB%%llvm37/include/lldb/API/SystemInitializerFull.h %%LLDB%%llvm37/include/lldb/Breakpoint/Breakpoint.h %%LLDB%%llvm37/include/lldb/Breakpoint/BreakpointID.h %%LLDB%%llvm37/include/lldb/Breakpoint/BreakpointIDList.h %%LLDB%%llvm37/include/lldb/Breakpoint/BreakpointList.h %%LLDB%%llvm37/include/lldb/Breakpoint/BreakpointLocation.h %%LLDB%%llvm37/include/lldb/Breakpoint/BreakpointLocationCollection.h %%LLDB%%llvm37/include/lldb/Breakpoint/BreakpointLocationList.h %%LLDB%%llvm37/include/lldb/Breakpoint/BreakpointOptions.h %%LLDB%%llvm37/include/lldb/Breakpoint/BreakpointResolver.h %%LLDB%%llvm37/include/lldb/Breakpoint/BreakpointResolverAddress.h %%LLDB%%llvm37/include/lldb/Breakpoint/BreakpointResolverFileLine.h %%LLDB%%llvm37/include/lldb/Breakpoint/BreakpointResolverFileRegex.h %%LLDB%%llvm37/include/lldb/Breakpoint/BreakpointResolverName.h %%LLDB%%llvm37/include/lldb/Breakpoint/BreakpointSite.h %%LLDB%%llvm37/include/lldb/Breakpoint/BreakpointSiteList.h %%LLDB%%llvm37/include/lldb/Breakpoint/Stoppoint.h %%LLDB%%llvm37/include/lldb/Breakpoint/StoppointCallbackContext.h %%LLDB%%llvm37/include/lldb/Breakpoint/StoppointLocation.h %%LLDB%%llvm37/include/lldb/Breakpoint/Watchpoint.h %%LLDB%%llvm37/include/lldb/Breakpoint/WatchpointList.h %%LLDB%%llvm37/include/lldb/Breakpoint/WatchpointOptions.h %%LLDB%%llvm37/include/lldb/Core/Address.h %%LLDB%%llvm37/include/lldb/Core/AddressRange.h %%LLDB%%llvm37/include/lldb/Core/AddressResolver.h %%LLDB%%llvm37/include/lldb/Core/AddressResolverFileLine.h %%LLDB%%llvm37/include/lldb/Core/AddressResolverName.h %%LLDB%%llvm37/include/lldb/Core/ArchSpec.h %%LLDB%%llvm37/include/lldb/Core/Baton.h %%LLDB%%llvm37/include/lldb/Core/Broadcaster.h %%LLDB%%llvm37/include/lldb/Core/ClangForward.h %%LLDB%%llvm37/include/lldb/Core/Communication.h %%LLDB%%llvm37/include/lldb/Core/Connection.h %%LLDB%%llvm37/include/lldb/Core/ConnectionMachPort.h %%LLDB%%llvm37/include/lldb/Core/ConnectionSharedMemory.h %%LLDB%%llvm37/include/lldb/Core/ConstString.h %%LLDB%%llvm37/include/lldb/Core/CxaDemangle.h %%LLDB%%llvm37/include/lldb/Core/DataBuffer.h %%LLDB%%llvm37/include/lldb/Core/DataBufferHeap.h %%LLDB%%llvm37/include/lldb/Core/DataBufferMemoryMap.h %%LLDB%%llvm37/include/lldb/Core/DataEncoder.h %%LLDB%%llvm37/include/lldb/Core/DataExtractor.h %%LLDB%%llvm37/include/lldb/Core/Debugger.h %%LLDB%%llvm37/include/lldb/Core/Disassembler.h %%LLDB%%llvm37/include/lldb/Core/EmulateInstruction.h %%LLDB%%llvm37/include/lldb/Core/Error.h %%LLDB%%llvm37/include/lldb/Core/Event.h %%LLDB%%llvm37/include/lldb/Core/FastDemangle.h %%LLDB%%llvm37/include/lldb/Core/FileLineResolver.h %%LLDB%%llvm37/include/lldb/Core/FileSpecList.h %%LLDB%%llvm37/include/lldb/Core/Flags.h %%LLDB%%llvm37/include/lldb/Core/FormatEntity.h %%LLDB%%llvm37/include/lldb/Core/History.h %%LLDB%%llvm37/include/lldb/Core/IOHandler.h %%LLDB%%llvm37/include/lldb/Core/IOStreamMacros.h %%LLDB%%llvm37/include/lldb/Core/Language.h %%LLDB%%llvm37/include/lldb/Core/Listener.h %%LLDB%%llvm37/include/lldb/Core/Log.h %%LLDB%%llvm37/include/lldb/Core/Logging.h %%LLDB%%llvm37/include/lldb/Core/Mangled.h %%LLDB%%llvm37/include/lldb/Core/MappedHash.h %%LLDB%%llvm37/include/lldb/Core/Module.h %%LLDB%%llvm37/include/lldb/Core/ModuleChild.h %%LLDB%%llvm37/include/lldb/Core/ModuleList.h %%LLDB%%llvm37/include/lldb/Core/ModuleSpec.h %%LLDB%%llvm37/include/lldb/Core/Opcode.h %%LLDB%%llvm37/include/lldb/Core/PluginInterface.h %%LLDB%%llvm37/include/lldb/Core/PluginManager.h %%LLDB%%llvm37/include/lldb/Core/RangeMap.h %%LLDB%%llvm37/include/lldb/Core/RegisterValue.h %%LLDB%%llvm37/include/lldb/Core/RegularExpression.h %%LLDB%%llvm37/include/lldb/Core/STLUtils.h %%LLDB%%llvm37/include/lldb/Core/Scalar.h %%LLDB%%llvm37/include/lldb/Core/SearchFilter.h %%LLDB%%llvm37/include/lldb/Core/Section.h %%LLDB%%llvm37/include/lldb/Core/SourceManager.h %%LLDB%%llvm37/include/lldb/Core/State.h %%LLDB%%llvm37/include/lldb/Core/Stream.h %%LLDB%%llvm37/include/lldb/Core/StreamAsynchronousIO.h %%LLDB%%llvm37/include/lldb/Core/StreamBuffer.h %%LLDB%%llvm37/include/lldb/Core/StreamCallback.h %%LLDB%%llvm37/include/lldb/Core/StreamFile.h %%LLDB%%llvm37/include/lldb/Core/StreamGDBRemote.h %%LLDB%%llvm37/include/lldb/Core/StreamString.h %%LLDB%%llvm37/include/lldb/Core/StreamTee.h %%LLDB%%llvm37/include/lldb/Core/StringList.h %%LLDB%%llvm37/include/lldb/Core/StructuredData.h %%LLDB%%llvm37/include/lldb/Core/ThreadSafeDenseMap.h %%LLDB%%llvm37/include/lldb/Core/ThreadSafeDenseSet.h %%LLDB%%llvm37/include/lldb/Core/ThreadSafeSTLMap.h %%LLDB%%llvm37/include/lldb/Core/ThreadSafeValue.h %%LLDB%%llvm37/include/lldb/Core/Timer.h %%LLDB%%llvm37/include/lldb/Core/UUID.h %%LLDB%%llvm37/include/lldb/Core/UniqueCStringMap.h %%LLDB%%llvm37/include/lldb/Core/UserID.h %%LLDB%%llvm37/include/lldb/Core/UserSettingsController.h %%LLDB%%llvm37/include/lldb/Core/VMRange.h %%LLDB%%llvm37/include/lldb/Core/Value.h %%LLDB%%llvm37/include/lldb/Core/ValueObject.h %%LLDB%%llvm37/include/lldb/Core/ValueObjectCast.h %%LLDB%%llvm37/include/lldb/Core/ValueObjectChild.h %%LLDB%%llvm37/include/lldb/Core/ValueObjectConstResult.h %%LLDB%%llvm37/include/lldb/Core/ValueObjectConstResultChild.h %%LLDB%%llvm37/include/lldb/Core/ValueObjectConstResultImpl.h %%LLDB%%llvm37/include/lldb/Core/ValueObjectDynamicValue.h %%LLDB%%llvm37/include/lldb/Core/ValueObjectList.h %%LLDB%%llvm37/include/lldb/Core/ValueObjectMemory.h %%LLDB%%llvm37/include/lldb/Core/ValueObjectRegister.h %%LLDB%%llvm37/include/lldb/Core/ValueObjectSyntheticFilter.h %%LLDB%%llvm37/include/lldb/Core/ValueObjectVariable.h %%LLDB%%llvm37/include/lldb/Core/dwarf.h %%LLDB%%llvm37/include/lldb/DataFormatters/CXXFormatterFunctions.h %%LLDB%%llvm37/include/lldb/DataFormatters/DataVisualization.h %%LLDB%%llvm37/include/lldb/DataFormatters/FormatCache.h %%LLDB%%llvm37/include/lldb/DataFormatters/FormatClasses.h %%LLDB%%llvm37/include/lldb/DataFormatters/FormatManager.h %%LLDB%%llvm37/include/lldb/DataFormatters/FormattersContainer.h %%LLDB%%llvm37/include/lldb/DataFormatters/StringPrinter.h %%LLDB%%llvm37/include/lldb/DataFormatters/TypeCategory.h %%LLDB%%llvm37/include/lldb/DataFormatters/TypeCategoryMap.h %%LLDB%%llvm37/include/lldb/DataFormatters/TypeFormat.h %%LLDB%%llvm37/include/lldb/DataFormatters/TypeSummary.h %%LLDB%%llvm37/include/lldb/DataFormatters/TypeSynthetic.h %%LLDB%%llvm37/include/lldb/DataFormatters/TypeValidator.h %%LLDB%%llvm37/include/lldb/DataFormatters/ValueObjectPrinter.h %%LLDB%%llvm37/include/lldb/DataFormatters/VectorType.h %%LLDB%%llvm37/include/lldb/Expression/ASTDumper.h %%LLDB%%llvm37/include/lldb/Expression/ASTResultSynthesizer.h %%LLDB%%llvm37/include/lldb/Expression/ASTStructExtractor.h %%LLDB%%llvm37/include/lldb/Expression/ClangASTSource.h %%LLDB%%llvm37/include/lldb/Expression/ClangExpression.h %%LLDB%%llvm37/include/lldb/Expression/ClangExpressionDeclMap.h %%LLDB%%llvm37/include/lldb/Expression/ClangExpressionParser.h %%LLDB%%llvm37/include/lldb/Expression/ClangExpressionVariable.h %%LLDB%%llvm37/include/lldb/Expression/ClangFunction.h %%LLDB%%llvm37/include/lldb/Expression/ClangModulesDeclVendor.h %%LLDB%%llvm37/include/lldb/Expression/ClangPersistentVariables.h %%LLDB%%llvm37/include/lldb/Expression/ClangUserExpression.h %%LLDB%%llvm37/include/lldb/Expression/ClangUtilityFunction.h %%LLDB%%llvm37/include/lldb/Expression/DWARFExpression.h %%LLDB%%llvm37/include/lldb/Expression/ExpressionSourceCode.h %%LLDB%%llvm37/include/lldb/Expression/IRDynamicChecks.h %%LLDB%%llvm37/include/lldb/Expression/IRExecutionUnit.h %%LLDB%%llvm37/include/lldb/Expression/IRForTarget.h %%LLDB%%llvm37/include/lldb/Expression/IRInterpreter.h %%LLDB%%llvm37/include/lldb/Expression/IRMemoryMap.h %%LLDB%%llvm37/include/lldb/Expression/IRToDWARF.h %%LLDB%%llvm37/include/lldb/Expression/Materializer.h %%LLDB%%llvm37/include/lldb/Host/Condition.h %%LLDB%%llvm37/include/lldb/Host/Config.h %%LLDB%%llvm37/include/lldb/Host/ConnectionFileDescriptor.h %%LLDB%%llvm37/include/lldb/Host/Debug.h %%LLDB%%llvm37/include/lldb/Host/Editline.h %%LLDB%%llvm37/include/lldb/Host/Endian.h %%LLDB%%llvm37/include/lldb/Host/File.h %%LLDB%%llvm37/include/lldb/Host/FileCache.h %%LLDB%%llvm37/include/lldb/Host/FileSpec.h %%LLDB%%llvm37/include/lldb/Host/FileSystem.h %%LLDB%%llvm37/include/lldb/Host/Host.h %%LLDB%%llvm37/include/lldb/Host/HostGetOpt.h %%LLDB%%llvm37/include/lldb/Host/HostInfo.h %%LLDB%%llvm37/include/lldb/Host/HostInfoBase.h %%LLDB%%llvm37/include/lldb/Host/HostNativeProcess.h %%LLDB%%llvm37/include/lldb/Host/HostNativeProcessBase.h %%LLDB%%llvm37/include/lldb/Host/HostNativeThread.h %%LLDB%%llvm37/include/lldb/Host/HostNativeThreadBase.h %%LLDB%%llvm37/include/lldb/Host/HostNativeThreadForward.h %%LLDB%%llvm37/include/lldb/Host/HostProcess.h %%LLDB%%llvm37/include/lldb/Host/HostThread.h %%LLDB%%llvm37/include/lldb/Host/IOObject.h %%LLDB%%llvm37/include/lldb/Host/LockFile.h %%LLDB%%llvm37/include/lldb/Host/LockFileBase.h %%LLDB%%llvm37/include/lldb/Host/MainLoop.h %%LLDB%%llvm37/include/lldb/Host/MainLoopBase.h %%LLDB%%llvm37/include/lldb/Host/MonitoringProcessLauncher.h %%LLDB%%llvm37/include/lldb/Host/Mutex.h %%LLDB%%llvm37/include/lldb/Host/OptionParser.h %%LLDB%%llvm37/include/lldb/Host/Pipe.h %%LLDB%%llvm37/include/lldb/Host/PipeBase.h %%LLDB%%llvm37/include/lldb/Host/Predicate.h %%LLDB%%llvm37/include/lldb/Host/ProcessLauncher.h %%LLDB%%llvm37/include/lldb/Host/ProcessRunLock.h %%LLDB%%llvm37/include/lldb/Host/Socket.h %%LLDB%%llvm37/include/lldb/Host/SocketAddress.h %%LLDB%%llvm37/include/lldb/Host/StringConvert.h %%LLDB%%llvm37/include/lldb/Host/Symbols.h %%LLDB%%llvm37/include/lldb/Host/Terminal.h %%LLDB%%llvm37/include/lldb/Host/ThisThread.h %%LLDB%%llvm37/include/lldb/Host/ThreadLauncher.h %%LLDB%%llvm37/include/lldb/Host/Time.h %%LLDB%%llvm37/include/lldb/Host/TimeValue.h %%LLDB%%llvm37/include/lldb/Host/XML.h %%LLDB%%llvm37/include/lldb/Host/android/Android.h %%LLDB%%llvm37/include/lldb/Host/android/Config.h %%LLDB%%llvm37/include/lldb/Host/android/HostInfoAndroid.h %%LLDB%%llvm37/include/lldb/Host/android/ProcessLauncherAndroid.h %%LLDB%%llvm37/include/lldb/Host/common/NativeBreakpoint.h %%LLDB%%llvm37/include/lldb/Host/common/NativeBreakpointList.h %%LLDB%%llvm37/include/lldb/Host/common/NativeProcessProtocol.h %%LLDB%%llvm37/include/lldb/Host/common/NativeRegisterContext.h %%LLDB%%llvm37/include/lldb/Host/common/NativeRegisterContextRegisterInfo.h %%LLDB%%llvm37/include/lldb/Host/common/NativeThreadProtocol.h %%LLDB%%llvm37/include/lldb/Host/common/NativeWatchpointList.h %%LLDB%%llvm37/include/lldb/Host/common/SoftwareBreakpoint.h %%LLDB%%llvm37/include/lldb/Host/freebsd/Config.h %%LLDB%%llvm37/include/lldb/Host/freebsd/HostInfoFreeBSD.h %%LLDB%%llvm37/include/lldb/Host/freebsd/HostThreadFreeBSD.h %%LLDB%%llvm37/include/lldb/Host/linux/Config.h %%LLDB%%llvm37/include/lldb/Host/linux/HostInfoLinux.h %%LLDB%%llvm37/include/lldb/Host/linux/HostThreadLinux.h %%LLDB%%llvm37/include/lldb/Host/linux/Personality.h %%LLDB%%llvm37/include/lldb/Host/linux/Ptrace.h %%LLDB%%llvm37/include/lldb/Host/linux/Signalfd.h %%LLDB%%llvm37/include/lldb/Host/linux/Uio.h %%LLDB%%llvm37/include/lldb/Host/macosx/Config.h %%LLDB%%llvm37/include/lldb/Host/macosx/HostInfoMacOSX.h %%LLDB%%llvm37/include/lldb/Host/macosx/HostThreadMacOSX.h %%LLDB%%llvm37/include/lldb/Host/mingw/Config.h %%LLDB%%llvm37/include/lldb/Host/msvc/Config.h %%LLDB%%llvm37/include/lldb/Host/posix/ConnectionFileDescriptorPosix.h %%LLDB%%llvm37/include/lldb/Host/posix/Fcntl.h %%LLDB%%llvm37/include/lldb/Host/posix/HostInfoPosix.h %%LLDB%%llvm37/include/lldb/Host/posix/HostProcessPosix.h %%LLDB%%llvm37/include/lldb/Host/posix/HostThreadPosix.h %%LLDB%%llvm37/include/lldb/Host/posix/LockFilePosix.h %%LLDB%%llvm37/include/lldb/Host/posix/MainLoopPosix.h %%LLDB%%llvm37/include/lldb/Host/posix/PipePosix.h %%LLDB%%llvm37/include/lldb/Host/posix/ProcessLauncherPosix.h %%LLDB%%llvm37/include/lldb/Host/windows/AutoHandle.h %%LLDB%%llvm37/include/lldb/Host/windows/ConnectionGenericFileWindows.h %%LLDB%%llvm37/include/lldb/Host/windows/HostInfoWindows.h %%LLDB%%llvm37/include/lldb/Host/windows/HostProcessWindows.h %%LLDB%%llvm37/include/lldb/Host/windows/HostThreadWindows.h %%LLDB%%llvm37/include/lldb/Host/windows/LockFileWindows.h %%LLDB%%llvm37/include/lldb/Host/windows/PipeWindows.h %%LLDB%%llvm37/include/lldb/Host/windows/ProcessLauncherWindows.h %%LLDB%%llvm37/include/lldb/Host/windows/editlinewin.h %%LLDB%%llvm37/include/lldb/Host/windows/getopt/GetOptInc.h %%LLDB%%llvm37/include/lldb/Host/windows/win32.h %%LLDB%%llvm37/include/lldb/Host/windows/windows.h %%LLDB%%llvm37/include/lldb/Initialization/SystemInitializer.h %%LLDB%%llvm37/include/lldb/Initialization/SystemInitializerCommon.h %%LLDB%%llvm37/include/lldb/Initialization/SystemLifetimeManager.h %%LLDB%%llvm37/include/lldb/Interpreter/Args.h %%LLDB%%llvm37/include/lldb/Interpreter/CommandCompletions.h %%LLDB%%llvm37/include/lldb/Interpreter/CommandHistory.h %%LLDB%%llvm37/include/lldb/Interpreter/CommandInterpreter.h %%LLDB%%llvm37/include/lldb/Interpreter/CommandObject.h %%LLDB%%llvm37/include/lldb/Interpreter/CommandObjectMultiword.h %%LLDB%%llvm37/include/lldb/Interpreter/CommandObjectRegexCommand.h %%LLDB%%llvm37/include/lldb/Interpreter/CommandOptionValidators.h %%LLDB%%llvm37/include/lldb/Interpreter/CommandReturnObject.h %%LLDB%%llvm37/include/lldb/Interpreter/OptionGroupArchitecture.h %%LLDB%%llvm37/include/lldb/Interpreter/OptionGroupBoolean.h %%LLDB%%llvm37/include/lldb/Interpreter/OptionGroupFile.h %%LLDB%%llvm37/include/lldb/Interpreter/OptionGroupFormat.h %%LLDB%%llvm37/include/lldb/Interpreter/OptionGroupOutputFile.h %%LLDB%%llvm37/include/lldb/Interpreter/OptionGroupPlatform.h %%LLDB%%llvm37/include/lldb/Interpreter/OptionGroupString.h %%LLDB%%llvm37/include/lldb/Interpreter/OptionGroupUInt64.h %%LLDB%%llvm37/include/lldb/Interpreter/OptionGroupUUID.h %%LLDB%%llvm37/include/lldb/Interpreter/OptionGroupValueObjectDisplay.h %%LLDB%%llvm37/include/lldb/Interpreter/OptionGroupVariable.h %%LLDB%%llvm37/include/lldb/Interpreter/OptionGroupWatchpoint.h %%LLDB%%llvm37/include/lldb/Interpreter/OptionValue.h %%LLDB%%llvm37/include/lldb/Interpreter/OptionValueArch.h %%LLDB%%llvm37/include/lldb/Interpreter/OptionValueArgs.h %%LLDB%%llvm37/include/lldb/Interpreter/OptionValueArray.h %%LLDB%%llvm37/include/lldb/Interpreter/OptionValueBoolean.h %%LLDB%%llvm37/include/lldb/Interpreter/OptionValueChar.h %%LLDB%%llvm37/include/lldb/Interpreter/OptionValueDictionary.h %%LLDB%%llvm37/include/lldb/Interpreter/OptionValueEnumeration.h %%LLDB%%llvm37/include/lldb/Interpreter/OptionValueFileSpec.h %%LLDB%%llvm37/include/lldb/Interpreter/OptionValueFileSpecList.h %%LLDB%%llvm37/include/lldb/Interpreter/OptionValueFormat.h %%LLDB%%llvm37/include/lldb/Interpreter/OptionValueFormatEntity.h %%LLDB%%llvm37/include/lldb/Interpreter/OptionValueLanguage.h %%LLDB%%llvm37/include/lldb/Interpreter/OptionValuePathMappings.h %%LLDB%%llvm37/include/lldb/Interpreter/OptionValueProperties.h %%LLDB%%llvm37/include/lldb/Interpreter/OptionValueRegex.h %%LLDB%%llvm37/include/lldb/Interpreter/OptionValueSInt64.h %%LLDB%%llvm37/include/lldb/Interpreter/OptionValueString.h %%LLDB%%llvm37/include/lldb/Interpreter/OptionValueUInt64.h %%LLDB%%llvm37/include/lldb/Interpreter/OptionValueUUID.h %%LLDB%%llvm37/include/lldb/Interpreter/OptionValues.h %%LLDB%%llvm37/include/lldb/Interpreter/Options.h %%LLDB%%llvm37/include/lldb/Interpreter/Property.h %%LLDB%%llvm37/include/lldb/Interpreter/PythonDataObjects.h %%LLDB%%llvm37/include/lldb/Interpreter/ScriptInterpreter.h %%LLDB%%llvm37/include/lldb/Interpreter/ScriptInterpreterNone.h %%LLDB%%llvm37/include/lldb/Interpreter/ScriptInterpreterPython.h %%LLDB%%llvm37/include/lldb/Symbol/Block.h %%LLDB%%llvm37/include/lldb/Symbol/ClangASTContext.h %%LLDB%%llvm37/include/lldb/Symbol/ClangASTImporter.h %%LLDB%%llvm37/include/lldb/Symbol/ClangASTType.h %%LLDB%%llvm37/include/lldb/Symbol/ClangExternalASTSourceCallbacks.h %%LLDB%%llvm37/include/lldb/Symbol/ClangExternalASTSourceCommon.h %%LLDB%%llvm37/include/lldb/Symbol/ClangNamespaceDecl.h %%LLDB%%llvm37/include/lldb/Symbol/CompactUnwindInfo.h %%LLDB%%llvm37/include/lldb/Symbol/CompileUnit.h %%LLDB%%llvm37/include/lldb/Symbol/DWARFCallFrameInfo.h %%LLDB%%llvm37/include/lldb/Symbol/DeclVendor.h %%LLDB%%llvm37/include/lldb/Symbol/Declaration.h %%LLDB%%llvm37/include/lldb/Symbol/FuncUnwinders.h %%LLDB%%llvm37/include/lldb/Symbol/Function.h %%LLDB%%llvm37/include/lldb/Symbol/LineEntry.h %%LLDB%%llvm37/include/lldb/Symbol/LineTable.h %%LLDB%%llvm37/include/lldb/Symbol/ObjectContainer.h %%LLDB%%llvm37/include/lldb/Symbol/ObjectFile.h %%LLDB%%llvm37/include/lldb/Symbol/Symbol.h %%LLDB%%llvm37/include/lldb/Symbol/SymbolContext.h %%LLDB%%llvm37/include/lldb/Symbol/SymbolContextScope.h %%LLDB%%llvm37/include/lldb/Symbol/SymbolFile.h %%LLDB%%llvm37/include/lldb/Symbol/SymbolVendor.h %%LLDB%%llvm37/include/lldb/Symbol/Symtab.h %%LLDB%%llvm37/include/lldb/Symbol/TaggedASTType.h %%LLDB%%llvm37/include/lldb/Symbol/Type.h %%LLDB%%llvm37/include/lldb/Symbol/TypeList.h %%LLDB%%llvm37/include/lldb/Symbol/UnwindPlan.h %%LLDB%%llvm37/include/lldb/Symbol/UnwindTable.h %%LLDB%%llvm37/include/lldb/Symbol/Variable.h %%LLDB%%llvm37/include/lldb/Symbol/VariableList.h %%LLDB%%llvm37/include/lldb/Symbol/VerifyDecl.h %%LLDB%%llvm37/include/lldb/Target/ABI.h %%LLDB%%llvm37/include/lldb/Target/CPPLanguageRuntime.h %%LLDB%%llvm37/include/lldb/Target/DynamicLoader.h %%LLDB%%llvm37/include/lldb/Target/ExecutionContext.h %%LLDB%%llvm37/include/lldb/Target/ExecutionContextScope.h %%LLDB%%llvm37/include/lldb/Target/FileAction.h %%LLDB%%llvm37/include/lldb/Target/InstrumentationRuntime.h %%LLDB%%llvm37/include/lldb/Target/InstrumentationRuntimeStopInfo.h %%LLDB%%llvm37/include/lldb/Target/JITLoader.h %%LLDB%%llvm37/include/lldb/Target/JITLoaderList.h %%LLDB%%llvm37/include/lldb/Target/LanguageRuntime.h %%LLDB%%llvm37/include/lldb/Target/Memory.h %%LLDB%%llvm37/include/lldb/Target/MemoryHistory.h %%LLDB%%llvm37/include/lldb/Target/MemoryRegionInfo.h %%LLDB%%llvm37/include/lldb/Target/ObjCLanguageRuntime.h %%LLDB%%llvm37/include/lldb/Target/OperatingSystem.h %%LLDB%%llvm37/include/lldb/Target/PathMappingList.h %%LLDB%%llvm37/include/lldb/Target/Platform.h %%LLDB%%llvm37/include/lldb/Target/Process.h %%LLDB%%llvm37/include/lldb/Target/ProcessInfo.h %%LLDB%%llvm37/include/lldb/Target/ProcessLaunchInfo.h %%LLDB%%llvm37/include/lldb/Target/Queue.h %%LLDB%%llvm37/include/lldb/Target/QueueItem.h %%LLDB%%llvm37/include/lldb/Target/QueueList.h %%LLDB%%llvm37/include/lldb/Target/RegisterCheckpoint.h %%LLDB%%llvm37/include/lldb/Target/RegisterContext.h %%LLDB%%llvm37/include/lldb/Target/SectionLoadHistory.h %%LLDB%%llvm37/include/lldb/Target/SectionLoadList.h %%LLDB%%llvm37/include/lldb/Target/StackFrame.h %%LLDB%%llvm37/include/lldb/Target/StackFrameList.h %%LLDB%%llvm37/include/lldb/Target/StackID.h %%LLDB%%llvm37/include/lldb/Target/StopInfo.h %%LLDB%%llvm37/include/lldb/Target/SystemRuntime.h %%LLDB%%llvm37/include/lldb/Target/Target.h %%LLDB%%llvm37/include/lldb/Target/TargetList.h %%LLDB%%llvm37/include/lldb/Target/Thread.h %%LLDB%%llvm37/include/lldb/Target/ThreadCollection.h %%LLDB%%llvm37/include/lldb/Target/ThreadList.h %%LLDB%%llvm37/include/lldb/Target/ThreadPlan.h %%LLDB%%llvm37/include/lldb/Target/ThreadPlanBase.h %%LLDB%%llvm37/include/lldb/Target/ThreadPlanCallFunction.h %%LLDB%%llvm37/include/lldb/Target/ThreadPlanCallFunctionUsingABI.h %%LLDB%%llvm37/include/lldb/Target/ThreadPlanCallUserExpression.h %%LLDB%%llvm37/include/lldb/Target/ThreadPlanPython.h %%LLDB%%llvm37/include/lldb/Target/ThreadPlanRunToAddress.h %%LLDB%%llvm37/include/lldb/Target/ThreadPlanShouldStopHere.h %%LLDB%%llvm37/include/lldb/Target/ThreadPlanStepInRange.h %%LLDB%%llvm37/include/lldb/Target/ThreadPlanStepInstruction.h %%LLDB%%llvm37/include/lldb/Target/ThreadPlanStepOut.h %%LLDB%%llvm37/include/lldb/Target/ThreadPlanStepOverBreakpoint.h %%LLDB%%llvm37/include/lldb/Target/ThreadPlanStepOverRange.h %%LLDB%%llvm37/include/lldb/Target/ThreadPlanStepRange.h %%LLDB%%llvm37/include/lldb/Target/ThreadPlanStepThrough.h %%LLDB%%llvm37/include/lldb/Target/ThreadPlanStepUntil.h %%LLDB%%llvm37/include/lldb/Target/ThreadPlanTracer.h %%LLDB%%llvm37/include/lldb/Target/ThreadSpec.h %%LLDB%%llvm37/include/lldb/Target/UnixSignals.h %%LLDB%%llvm37/include/lldb/Target/Unwind.h %%LLDB%%llvm37/include/lldb/Target/UnwindAssembly.h %%LLDB%%llvm37/include/lldb/Utility/AnsiTerminal.h %%LLDB%%llvm37/include/lldb/Utility/CleanUp.h %%LLDB%%llvm37/include/lldb/Utility/ConvertEnum.h %%LLDB%%llvm37/include/lldb/Utility/Iterable.h %%LLDB%%llvm37/include/lldb/Utility/JSON.h %%LLDB%%llvm37/include/lldb/Utility/LLDBAssert.h %%LLDB%%llvm37/include/lldb/Utility/NameMatches.h %%LLDB%%llvm37/include/lldb/Utility/PriorityPointerPair.h %%LLDB%%llvm37/include/lldb/Utility/ProcessStructReader.h %%LLDB%%llvm37/include/lldb/Utility/PseudoTerminal.h %%LLDB%%llvm37/include/lldb/Utility/PythonPointer.h %%LLDB%%llvm37/include/lldb/Utility/Range.h %%LLDB%%llvm37/include/lldb/Utility/RegisterNumber.h %%LLDB%%llvm37/include/lldb/Utility/SafeMachO.h %%LLDB%%llvm37/include/lldb/Utility/SharedCluster.h %%LLDB%%llvm37/include/lldb/Utility/SharingPtr.h %%LLDB%%llvm37/include/lldb/Utility/StringExtractor.h %%LLDB%%llvm37/include/lldb/Utility/StringLexer.h %%LLDB%%llvm37/include/lldb/Utility/Utils.h %%LLDB%%llvm37/include/lldb/lldb-defines.h %%LLDB%%llvm37/include/lldb/lldb-enumerations.h %%LLDB%%llvm37/include/lldb/lldb-forward.h %%LLDB%%llvm37/include/lldb/lldb-private-enumerations.h %%LLDB%%llvm37/include/lldb/lldb-private-forward.h %%LLDB%%llvm37/include/lldb/lldb-private-interfaces.h %%LLDB%%llvm37/include/lldb/lldb-private-types.h %%LLDB%%llvm37/include/lldb/lldb-private.h %%LLDB%%llvm37/include/lldb/lldb-public.h %%LLDB%%llvm37/include/lldb/lldb-python.h %%LLDB%%llvm37/include/lldb/lldb-types.h %%LLDB%%llvm37/include/lldb/lldb-versioning.h llvm37/include/llvm-c/Analysis.h llvm37/include/llvm-c/BitReader.h llvm37/include/llvm-c/BitWriter.h llvm37/include/llvm-c/Core.h llvm37/include/llvm-c/Disassembler.h llvm37/include/llvm-c/ExecutionEngine.h llvm37/include/llvm-c/IRReader.h llvm37/include/llvm-c/Initialization.h llvm37/include/llvm-c/LinkTimeOptimizer.h llvm37/include/llvm-c/Linker.h llvm37/include/llvm-c/Object.h llvm37/include/llvm-c/Support.h llvm37/include/llvm-c/Target.h llvm37/include/llvm-c/TargetMachine.h llvm37/include/llvm-c/Transforms/IPO.h llvm37/include/llvm-c/Transforms/PassManagerBuilder.h llvm37/include/llvm-c/Transforms/Scalar.h llvm37/include/llvm-c/Transforms/Vectorize.h llvm37/include/llvm-c/lto.h llvm37/include/llvm/ADT/APFloat.h llvm37/include/llvm/ADT/APInt.h llvm37/include/llvm/ADT/APSInt.h llvm37/include/llvm/ADT/ArrayRef.h llvm37/include/llvm/ADT/BitVector.h llvm37/include/llvm/ADT/DAGDeltaAlgorithm.h llvm37/include/llvm/ADT/DeltaAlgorithm.h llvm37/include/llvm/ADT/DenseMap.h llvm37/include/llvm/ADT/DenseMapInfo.h llvm37/include/llvm/ADT/DenseSet.h llvm37/include/llvm/ADT/DepthFirstIterator.h llvm37/include/llvm/ADT/EpochTracker.h llvm37/include/llvm/ADT/EquivalenceClasses.h llvm37/include/llvm/ADT/FoldingSet.h llvm37/include/llvm/ADT/GraphTraits.h llvm37/include/llvm/ADT/Hashing.h llvm37/include/llvm/ADT/ImmutableList.h llvm37/include/llvm/ADT/ImmutableMap.h llvm37/include/llvm/ADT/ImmutableSet.h llvm37/include/llvm/ADT/IndexedMap.h llvm37/include/llvm/ADT/IntEqClasses.h llvm37/include/llvm/ADT/IntervalMap.h llvm37/include/llvm/ADT/IntrusiveRefCntPtr.h llvm37/include/llvm/ADT/MapVector.h llvm37/include/llvm/ADT/None.h llvm37/include/llvm/ADT/Optional.h llvm37/include/llvm/ADT/PackedVector.h llvm37/include/llvm/ADT/PointerIntPair.h llvm37/include/llvm/ADT/PointerUnion.h llvm37/include/llvm/ADT/PostOrderIterator.h llvm37/include/llvm/ADT/PriorityQueue.h llvm37/include/llvm/ADT/SCCIterator.h llvm37/include/llvm/ADT/STLExtras.h llvm37/include/llvm/ADT/ScopedHashTable.h llvm37/include/llvm/ADT/SetOperations.h llvm37/include/llvm/ADT/SetVector.h llvm37/include/llvm/ADT/SmallBitVector.h llvm37/include/llvm/ADT/SmallPtrSet.h llvm37/include/llvm/ADT/SmallSet.h llvm37/include/llvm/ADT/SmallString.h llvm37/include/llvm/ADT/SmallVector.h llvm37/include/llvm/ADT/SparseBitVector.h llvm37/include/llvm/ADT/SparseMultiSet.h llvm37/include/llvm/ADT/SparseSet.h llvm37/include/llvm/ADT/Statistic.h llvm37/include/llvm/ADT/StringExtras.h llvm37/include/llvm/ADT/StringMap.h llvm37/include/llvm/ADT/StringRef.h llvm37/include/llvm/ADT/StringSet.h llvm37/include/llvm/ADT/StringSwitch.h llvm37/include/llvm/ADT/TinyPtrVector.h llvm37/include/llvm/ADT/Triple.h llvm37/include/llvm/ADT/Twine.h llvm37/include/llvm/ADT/UniqueVector.h llvm37/include/llvm/ADT/VariadicFunction.h llvm37/include/llvm/ADT/edit_distance.h llvm37/include/llvm/ADT/ilist.h llvm37/include/llvm/ADT/ilist_node.h llvm37/include/llvm/ADT/iterator.h llvm37/include/llvm/ADT/iterator_range.h llvm37/include/llvm/Analysis/AliasAnalysis.h llvm37/include/llvm/Analysis/AliasSetTracker.h llvm37/include/llvm/Analysis/AssumptionCache.h llvm37/include/llvm/Analysis/BlockFrequencyInfo.h llvm37/include/llvm/Analysis/BlockFrequencyInfoImpl.h llvm37/include/llvm/Analysis/BranchProbabilityInfo.h llvm37/include/llvm/Analysis/CFG.h llvm37/include/llvm/Analysis/CFGPrinter.h llvm37/include/llvm/Analysis/CGSCCPassManager.h llvm37/include/llvm/Analysis/CallGraph.h llvm37/include/llvm/Analysis/CallGraphSCCPass.h llvm37/include/llvm/Analysis/CallPrinter.h llvm37/include/llvm/Analysis/CaptureTracking.h llvm37/include/llvm/Analysis/CodeMetrics.h llvm37/include/llvm/Analysis/ConstantFolding.h llvm37/include/llvm/Analysis/DOTGraphTraitsPass.h llvm37/include/llvm/Analysis/DependenceAnalysis.h llvm37/include/llvm/Analysis/DomPrinter.h llvm37/include/llvm/Analysis/DominanceFrontier.h llvm37/include/llvm/Analysis/DominanceFrontierImpl.h llvm37/include/llvm/Analysis/IVUsers.h llvm37/include/llvm/Analysis/InlineCost.h llvm37/include/llvm/Analysis/InstructionSimplify.h llvm37/include/llvm/Analysis/Interval.h llvm37/include/llvm/Analysis/IntervalIterator.h llvm37/include/llvm/Analysis/IntervalPartition.h llvm37/include/llvm/Analysis/IteratedDominanceFrontier.h llvm37/include/llvm/Analysis/LazyCallGraph.h llvm37/include/llvm/Analysis/LazyValueInfo.h llvm37/include/llvm/Analysis/LibCallAliasAnalysis.h llvm37/include/llvm/Analysis/LibCallSemantics.h llvm37/include/llvm/Analysis/Lint.h llvm37/include/llvm/Analysis/Loads.h llvm37/include/llvm/Analysis/LoopAccessAnalysis.h llvm37/include/llvm/Analysis/LoopInfo.h llvm37/include/llvm/Analysis/LoopInfoImpl.h llvm37/include/llvm/Analysis/LoopIterator.h llvm37/include/llvm/Analysis/LoopPass.h llvm37/include/llvm/Analysis/MemoryBuiltins.h llvm37/include/llvm/Analysis/MemoryDependenceAnalysis.h llvm37/include/llvm/Analysis/MemoryLocation.h llvm37/include/llvm/Analysis/PHITransAddr.h llvm37/include/llvm/Analysis/Passes.h llvm37/include/llvm/Analysis/PostDominators.h llvm37/include/llvm/Analysis/PtrUseVisitor.h llvm37/include/llvm/Analysis/RegionInfo.h llvm37/include/llvm/Analysis/RegionInfoImpl.h llvm37/include/llvm/Analysis/RegionIterator.h llvm37/include/llvm/Analysis/RegionPass.h llvm37/include/llvm/Analysis/RegionPrinter.h llvm37/include/llvm/Analysis/ScalarEvolution.h llvm37/include/llvm/Analysis/ScalarEvolutionExpander.h llvm37/include/llvm/Analysis/ScalarEvolutionExpressions.h llvm37/include/llvm/Analysis/ScalarEvolutionNormalization.h llvm37/include/llvm/Analysis/SparsePropagation.h llvm37/include/llvm/Analysis/TargetFolder.h llvm37/include/llvm/Analysis/TargetLibraryInfo.def llvm37/include/llvm/Analysis/TargetLibraryInfo.h llvm37/include/llvm/Analysis/TargetTransformInfo.h llvm37/include/llvm/Analysis/TargetTransformInfoImpl.h llvm37/include/llvm/Analysis/Trace.h llvm37/include/llvm/Analysis/ValueTracking.h llvm37/include/llvm/Analysis/VectorUtils.h llvm37/include/llvm/AsmParser/Parser.h llvm37/include/llvm/AsmParser/SlotMapping.h llvm37/include/llvm/Bitcode/BitCodes.h llvm37/include/llvm/Bitcode/BitcodeWriterPass.h llvm37/include/llvm/Bitcode/BitstreamReader.h llvm37/include/llvm/Bitcode/BitstreamWriter.h llvm37/include/llvm/Bitcode/LLVMBitCodes.h llvm37/include/llvm/Bitcode/ReaderWriter.h llvm37/include/llvm/CodeGen/Analysis.h llvm37/include/llvm/CodeGen/AsmPrinter.h llvm37/include/llvm/CodeGen/BasicTTIImpl.h llvm37/include/llvm/CodeGen/CalcSpillWeights.h llvm37/include/llvm/CodeGen/CallingConvLower.h llvm37/include/llvm/CodeGen/CommandFlags.h llvm37/include/llvm/CodeGen/DAGCombine.h llvm37/include/llvm/CodeGen/DFAPacketizer.h llvm37/include/llvm/CodeGen/DIE.h llvm37/include/llvm/CodeGen/DIEValue.def llvm37/include/llvm/CodeGen/DwarfStringPoolEntry.h llvm37/include/llvm/CodeGen/EdgeBundles.h llvm37/include/llvm/CodeGen/FastISel.h llvm37/include/llvm/CodeGen/FaultMaps.h llvm37/include/llvm/CodeGen/FunctionLoweringInfo.h llvm37/include/llvm/CodeGen/GCMetadata.h llvm37/include/llvm/CodeGen/GCMetadataPrinter.h llvm37/include/llvm/CodeGen/GCStrategy.h llvm37/include/llvm/CodeGen/GCs.h llvm37/include/llvm/CodeGen/ISDOpcodes.h llvm37/include/llvm/CodeGen/IntrinsicLowering.h llvm37/include/llvm/CodeGen/LatencyPriorityQueue.h llvm37/include/llvm/CodeGen/LexicalScopes.h llvm37/include/llvm/CodeGen/LinkAllAsmWriterComponents.h llvm37/include/llvm/CodeGen/LinkAllCodegenComponents.h llvm37/include/llvm/CodeGen/LiveInterval.h llvm37/include/llvm/CodeGen/LiveIntervalAnalysis.h llvm37/include/llvm/CodeGen/LiveIntervalUnion.h llvm37/include/llvm/CodeGen/LivePhysRegs.h llvm37/include/llvm/CodeGen/LiveRangeEdit.h llvm37/include/llvm/CodeGen/LiveRegMatrix.h llvm37/include/llvm/CodeGen/LiveStackAnalysis.h llvm37/include/llvm/CodeGen/LiveVariables.h llvm37/include/llvm/CodeGen/MIRParser/MIRParser.h llvm37/include/llvm/CodeGen/MIRYamlMapping.h llvm37/include/llvm/CodeGen/MachORelocation.h llvm37/include/llvm/CodeGen/MachineBasicBlock.h llvm37/include/llvm/CodeGen/MachineBlockFrequencyInfo.h llvm37/include/llvm/CodeGen/MachineBranchProbabilityInfo.h llvm37/include/llvm/CodeGen/MachineCombinerPattern.h llvm37/include/llvm/CodeGen/MachineConstantPool.h llvm37/include/llvm/CodeGen/MachineDominanceFrontier.h llvm37/include/llvm/CodeGen/MachineDominators.h llvm37/include/llvm/CodeGen/MachineFrameInfo.h llvm37/include/llvm/CodeGen/MachineFunction.h llvm37/include/llvm/CodeGen/MachineFunctionAnalysis.h llvm37/include/llvm/CodeGen/MachineFunctionInitializer.h llvm37/include/llvm/CodeGen/MachineFunctionPass.h llvm37/include/llvm/CodeGen/MachineInstr.h llvm37/include/llvm/CodeGen/MachineInstrBuilder.h llvm37/include/llvm/CodeGen/MachineInstrBundle.h llvm37/include/llvm/CodeGen/MachineJumpTableInfo.h llvm37/include/llvm/CodeGen/MachineLoopInfo.h llvm37/include/llvm/CodeGen/MachineMemOperand.h llvm37/include/llvm/CodeGen/MachineModuleInfo.h llvm37/include/llvm/CodeGen/MachineModuleInfoImpls.h llvm37/include/llvm/CodeGen/MachineOperand.h llvm37/include/llvm/CodeGen/MachinePassRegistry.h llvm37/include/llvm/CodeGen/MachinePostDominators.h llvm37/include/llvm/CodeGen/MachineRegionInfo.h llvm37/include/llvm/CodeGen/MachineRegisterInfo.h llvm37/include/llvm/CodeGen/MachineSSAUpdater.h llvm37/include/llvm/CodeGen/MachineScheduler.h llvm37/include/llvm/CodeGen/MachineTraceMetrics.h llvm37/include/llvm/CodeGen/MachineValueType.h llvm37/include/llvm/CodeGen/PBQP/CostAllocator.h llvm37/include/llvm/CodeGen/PBQP/Graph.h llvm37/include/llvm/CodeGen/PBQP/Math.h llvm37/include/llvm/CodeGen/PBQP/ReductionRules.h llvm37/include/llvm/CodeGen/PBQP/Solution.h llvm37/include/llvm/CodeGen/PBQPRAConstraint.h llvm37/include/llvm/CodeGen/Passes.h llvm37/include/llvm/CodeGen/PseudoSourceValue.h llvm37/include/llvm/CodeGen/RegAllocPBQP.h llvm37/include/llvm/CodeGen/RegAllocRegistry.h llvm37/include/llvm/CodeGen/RegisterClassInfo.h llvm37/include/llvm/CodeGen/RegisterPressure.h llvm37/include/llvm/CodeGen/RegisterScavenging.h llvm37/include/llvm/CodeGen/ResourcePriorityQueue.h llvm37/include/llvm/CodeGen/RuntimeLibcalls.h llvm37/include/llvm/CodeGen/ScheduleDAG.h llvm37/include/llvm/CodeGen/ScheduleDAGInstrs.h llvm37/include/llvm/CodeGen/ScheduleDFS.h llvm37/include/llvm/CodeGen/ScheduleHazardRecognizer.h llvm37/include/llvm/CodeGen/SchedulerRegistry.h llvm37/include/llvm/CodeGen/ScoreboardHazardRecognizer.h llvm37/include/llvm/CodeGen/SelectionDAG.h llvm37/include/llvm/CodeGen/SelectionDAGISel.h llvm37/include/llvm/CodeGen/SelectionDAGNodes.h llvm37/include/llvm/CodeGen/SlotIndexes.h llvm37/include/llvm/CodeGen/StackMaps.h llvm37/include/llvm/CodeGen/StackProtector.h llvm37/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h llvm37/include/llvm/CodeGen/TargetSchedule.h llvm37/include/llvm/CodeGen/ValueTypes.h llvm37/include/llvm/CodeGen/ValueTypes.td llvm37/include/llvm/CodeGen/VirtRegMap.h llvm37/include/llvm/CodeGen/WinEHFuncInfo.h llvm37/include/llvm/Config/AsmParsers.def llvm37/include/llvm/Config/AsmPrinters.def llvm37/include/llvm/Config/Disassemblers.def llvm37/include/llvm/Config/Targets.def llvm37/include/llvm/Config/llvm-config.h llvm37/include/llvm/DebugInfo/DIContext.h llvm37/include/llvm/DebugInfo/DWARF/DWARFAbbreviationDeclaration.h llvm37/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h llvm37/include/llvm/DebugInfo/DWARF/DWARFCompileUnit.h llvm37/include/llvm/DebugInfo/DWARF/DWARFContext.h llvm37/include/llvm/DebugInfo/DWARF/DWARFDebugAbbrev.h llvm37/include/llvm/DebugInfo/DWARF/DWARFDebugArangeSet.h llvm37/include/llvm/DebugInfo/DWARF/DWARFDebugAranges.h llvm37/include/llvm/DebugInfo/DWARF/DWARFDebugFrame.h llvm37/include/llvm/DebugInfo/DWARF/DWARFDebugInfoEntry.h llvm37/include/llvm/DebugInfo/DWARF/DWARFDebugLine.h llvm37/include/llvm/DebugInfo/DWARF/DWARFDebugLoc.h llvm37/include/llvm/DebugInfo/DWARF/DWARFDebugRangeList.h llvm37/include/llvm/DebugInfo/DWARF/DWARFFormValue.h llvm37/include/llvm/DebugInfo/DWARF/DWARFRelocMap.h llvm37/include/llvm/DebugInfo/DWARF/DWARFSection.h llvm37/include/llvm/DebugInfo/DWARF/DWARFTypeUnit.h llvm37/include/llvm/DebugInfo/DWARF/DWARFUnit.h llvm37/include/llvm/DebugInfo/PDB/ConcreteSymbolEnumerator.h llvm37/include/llvm/DebugInfo/PDB/DIA/DIADataStream.h llvm37/include/llvm/DebugInfo/PDB/DIA/DIAEnumDebugStreams.h llvm37/include/llvm/DebugInfo/PDB/DIA/DIAEnumLineNumbers.h llvm37/include/llvm/DebugInfo/PDB/DIA/DIAEnumSourceFiles.h llvm37/include/llvm/DebugInfo/PDB/DIA/DIAEnumSymbols.h llvm37/include/llvm/DebugInfo/PDB/DIA/DIALineNumber.h llvm37/include/llvm/DebugInfo/PDB/DIA/DIARawSymbol.h llvm37/include/llvm/DebugInfo/PDB/DIA/DIASession.h llvm37/include/llvm/DebugInfo/PDB/DIA/DIASourceFile.h llvm37/include/llvm/DebugInfo/PDB/DIA/DIASupport.h llvm37/include/llvm/DebugInfo/PDB/IPDBDataStream.h llvm37/include/llvm/DebugInfo/PDB/IPDBEnumChildren.h llvm37/include/llvm/DebugInfo/PDB/IPDBLineNumber.h llvm37/include/llvm/DebugInfo/PDB/IPDBRawSymbol.h llvm37/include/llvm/DebugInfo/PDB/IPDBSession.h llvm37/include/llvm/DebugInfo/PDB/IPDBSourceFile.h llvm37/include/llvm/DebugInfo/PDB/PDB.h llvm37/include/llvm/DebugInfo/PDB/PDBContext.h llvm37/include/llvm/DebugInfo/PDB/PDBExtras.h llvm37/include/llvm/DebugInfo/PDB/PDBSymDumper.h llvm37/include/llvm/DebugInfo/PDB/PDBSymbol.h llvm37/include/llvm/DebugInfo/PDB/PDBSymbolAnnotation.h llvm37/include/llvm/DebugInfo/PDB/PDBSymbolBlock.h llvm37/include/llvm/DebugInfo/PDB/PDBSymbolCompiland.h llvm37/include/llvm/DebugInfo/PDB/PDBSymbolCompilandDetails.h llvm37/include/llvm/DebugInfo/PDB/PDBSymbolCompilandEnv.h llvm37/include/llvm/DebugInfo/PDB/PDBSymbolCustom.h llvm37/include/llvm/DebugInfo/PDB/PDBSymbolData.h llvm37/include/llvm/DebugInfo/PDB/PDBSymbolExe.h llvm37/include/llvm/DebugInfo/PDB/PDBSymbolFunc.h llvm37/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugEnd.h llvm37/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugStart.h llvm37/include/llvm/DebugInfo/PDB/PDBSymbolLabel.h llvm37/include/llvm/DebugInfo/PDB/PDBSymbolPublicSymbol.h llvm37/include/llvm/DebugInfo/PDB/PDBSymbolThunk.h llvm37/include/llvm/DebugInfo/PDB/PDBSymbolTypeArray.h llvm37/include/llvm/DebugInfo/PDB/PDBSymbolTypeBaseClass.h llvm37/include/llvm/DebugInfo/PDB/PDBSymbolTypeBuiltin.h llvm37/include/llvm/DebugInfo/PDB/PDBSymbolTypeCustom.h llvm37/include/llvm/DebugInfo/PDB/PDBSymbolTypeDimension.h llvm37/include/llvm/DebugInfo/PDB/PDBSymbolTypeEnum.h llvm37/include/llvm/DebugInfo/PDB/PDBSymbolTypeFriend.h llvm37/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionArg.h llvm37/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionSig.h llvm37/include/llvm/DebugInfo/PDB/PDBSymbolTypeManaged.h llvm37/include/llvm/DebugInfo/PDB/PDBSymbolTypePointer.h llvm37/include/llvm/DebugInfo/PDB/PDBSymbolTypeTypedef.h llvm37/include/llvm/DebugInfo/PDB/PDBSymbolTypeUDT.h llvm37/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTable.h llvm37/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTableShape.h llvm37/include/llvm/DebugInfo/PDB/PDBSymbolUnknown.h llvm37/include/llvm/DebugInfo/PDB/PDBSymbolUsingNamespace.h llvm37/include/llvm/DebugInfo/PDB/PDBTypes.h llvm37/include/llvm/ExecutionEngine/ExecutionEngine.h llvm37/include/llvm/ExecutionEngine/GenericValue.h llvm37/include/llvm/ExecutionEngine/Interpreter.h llvm37/include/llvm/ExecutionEngine/JITEventListener.h llvm37/include/llvm/ExecutionEngine/JITSymbolFlags.h llvm37/include/llvm/ExecutionEngine/MCJIT.h llvm37/include/llvm/ExecutionEngine/OProfileWrapper.h llvm37/include/llvm/ExecutionEngine/ObjectCache.h llvm37/include/llvm/ExecutionEngine/ObjectMemoryBuffer.h llvm37/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h llvm37/include/llvm/ExecutionEngine/Orc/CompileUtils.h llvm37/include/llvm/ExecutionEngine/Orc/ExecutionUtils.h llvm37/include/llvm/ExecutionEngine/Orc/IRCompileLayer.h llvm37/include/llvm/ExecutionEngine/Orc/IRTransformLayer.h llvm37/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h llvm37/include/llvm/ExecutionEngine/Orc/JITSymbol.h llvm37/include/llvm/ExecutionEngine/Orc/LambdaResolver.h llvm37/include/llvm/ExecutionEngine/Orc/LazyEmittingLayer.h llvm37/include/llvm/ExecutionEngine/Orc/LogicalDylib.h llvm37/include/llvm/ExecutionEngine/Orc/NullResolver.h llvm37/include/llvm/ExecutionEngine/Orc/ObjectLinkingLayer.h llvm37/include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h llvm37/include/llvm/ExecutionEngine/Orc/OrcTargetSupport.h llvm37/include/llvm/ExecutionEngine/OrcMCJITReplacement.h llvm37/include/llvm/ExecutionEngine/RTDyldMemoryManager.h llvm37/include/llvm/ExecutionEngine/RuntimeDyld.h llvm37/include/llvm/ExecutionEngine/RuntimeDyldChecker.h llvm37/include/llvm/ExecutionEngine/SectionMemoryManager.h llvm37/include/llvm/IR/Argument.h llvm37/include/llvm/IR/AssemblyAnnotationWriter.h llvm37/include/llvm/IR/Attributes.h llvm37/include/llvm/IR/AutoUpgrade.h llvm37/include/llvm/IR/BasicBlock.h llvm37/include/llvm/IR/CFG.h llvm37/include/llvm/IR/CallSite.h llvm37/include/llvm/IR/CallingConv.h llvm37/include/llvm/IR/Comdat.h llvm37/include/llvm/IR/Constant.h llvm37/include/llvm/IR/ConstantFolder.h llvm37/include/llvm/IR/ConstantRange.h llvm37/include/llvm/IR/Constants.h llvm37/include/llvm/IR/DIBuilder.h llvm37/include/llvm/IR/DataLayout.h llvm37/include/llvm/IR/DebugInfo.h llvm37/include/llvm/IR/DebugInfoFlags.def llvm37/include/llvm/IR/DebugInfoMetadata.h llvm37/include/llvm/IR/DebugLoc.h llvm37/include/llvm/IR/DerivedTypes.h llvm37/include/llvm/IR/DiagnosticInfo.h llvm37/include/llvm/IR/DiagnosticPrinter.h llvm37/include/llvm/IR/Dominators.h llvm37/include/llvm/IR/Function.h llvm37/include/llvm/IR/GVMaterializer.h llvm37/include/llvm/IR/GetElementPtrTypeIterator.h llvm37/include/llvm/IR/GlobalAlias.h llvm37/include/llvm/IR/GlobalObject.h llvm37/include/llvm/IR/GlobalValue.h llvm37/include/llvm/IR/GlobalVariable.h llvm37/include/llvm/IR/IRBuilder.h llvm37/include/llvm/IR/IRPrintingPasses.h llvm37/include/llvm/IR/InlineAsm.h llvm37/include/llvm/IR/InstIterator.h llvm37/include/llvm/IR/InstVisitor.h llvm37/include/llvm/IR/InstrTypes.h llvm37/include/llvm/IR/Instruction.def llvm37/include/llvm/IR/Instruction.h llvm37/include/llvm/IR/Instructions.h llvm37/include/llvm/IR/IntrinsicInst.h llvm37/include/llvm/IR/Intrinsics.gen llvm37/include/llvm/IR/Intrinsics.h llvm37/include/llvm/IR/Intrinsics.td llvm37/include/llvm/IR/IntrinsicsAArch64.td llvm37/include/llvm/IR/IntrinsicsAMDGPU.td llvm37/include/llvm/IR/IntrinsicsARM.td llvm37/include/llvm/IR/IntrinsicsBPF.td llvm37/include/llvm/IR/IntrinsicsHexagon.td llvm37/include/llvm/IR/IntrinsicsMips.td llvm37/include/llvm/IR/IntrinsicsNVVM.td llvm37/include/llvm/IR/IntrinsicsPowerPC.td llvm37/include/llvm/IR/IntrinsicsSystemZ.td llvm37/include/llvm/IR/IntrinsicsWebAssembly.td llvm37/include/llvm/IR/IntrinsicsX86.td llvm37/include/llvm/IR/IntrinsicsXCore.td llvm37/include/llvm/IR/LLVMContext.h llvm37/include/llvm/IR/LegacyPassManager.h llvm37/include/llvm/IR/LegacyPassManagers.h llvm37/include/llvm/IR/LegacyPassNameParser.h llvm37/include/llvm/IR/MDBuilder.h llvm37/include/llvm/IR/Mangler.h llvm37/include/llvm/IR/Metadata.def llvm37/include/llvm/IR/Metadata.h llvm37/include/llvm/IR/MetadataTracking.h llvm37/include/llvm/IR/Module.h llvm37/include/llvm/IR/ModuleSlotTracker.h llvm37/include/llvm/IR/NoFolder.h llvm37/include/llvm/IR/OperandTraits.h llvm37/include/llvm/IR/Operator.h llvm37/include/llvm/IR/PassManager.h llvm37/include/llvm/IR/PassManagerInternal.h llvm37/include/llvm/IR/PatternMatch.h llvm37/include/llvm/IR/PredIteratorCache.h llvm37/include/llvm/IR/Statepoint.h llvm37/include/llvm/IR/SymbolTableListTraits.h llvm37/include/llvm/IR/TrackingMDRef.h llvm37/include/llvm/IR/Type.h llvm37/include/llvm/IR/TypeBuilder.h llvm37/include/llvm/IR/TypeFinder.h llvm37/include/llvm/IR/Use.h llvm37/include/llvm/IR/UseListOrder.h llvm37/include/llvm/IR/User.h llvm37/include/llvm/IR/Value.def llvm37/include/llvm/IR/Value.h llvm37/include/llvm/IR/ValueHandle.h llvm37/include/llvm/IR/ValueMap.h llvm37/include/llvm/IR/ValueSymbolTable.h llvm37/include/llvm/IR/Verifier.h llvm37/include/llvm/IRReader/IRReader.h llvm37/include/llvm/InitializePasses.h llvm37/include/llvm/LTO/LTOCodeGenerator.h llvm37/include/llvm/LTO/LTOModule.h llvm37/include/llvm/LibDriver/LibDriver.h llvm37/include/llvm/LineEditor/LineEditor.h llvm37/include/llvm/LinkAllIR.h llvm37/include/llvm/LinkAllPasses.h llvm37/include/llvm/Linker/Linker.h llvm37/include/llvm/MC/ConstantPools.h llvm37/include/llvm/MC/MCAsmBackend.h llvm37/include/llvm/MC/MCAsmInfo.h llvm37/include/llvm/MC/MCAsmInfoCOFF.h llvm37/include/llvm/MC/MCAsmInfoDarwin.h llvm37/include/llvm/MC/MCAsmInfoELF.h llvm37/include/llvm/MC/MCAsmLayout.h llvm37/include/llvm/MC/MCAssembler.h llvm37/include/llvm/MC/MCCodeEmitter.h llvm37/include/llvm/MC/MCCodeGenInfo.h llvm37/include/llvm/MC/MCContext.h llvm37/include/llvm/MC/MCDirectives.h llvm37/include/llvm/MC/MCDisassembler.h llvm37/include/llvm/MC/MCDwarf.h llvm37/include/llvm/MC/MCELFObjectWriter.h llvm37/include/llvm/MC/MCELFStreamer.h llvm37/include/llvm/MC/MCExpr.h llvm37/include/llvm/MC/MCExternalSymbolizer.h llvm37/include/llvm/MC/MCFixedLenDisassembler.h llvm37/include/llvm/MC/MCFixup.h llvm37/include/llvm/MC/MCFixupKindInfo.h llvm37/include/llvm/MC/MCInst.h llvm37/include/llvm/MC/MCInstBuilder.h llvm37/include/llvm/MC/MCInstPrinter.h llvm37/include/llvm/MC/MCInstrAnalysis.h llvm37/include/llvm/MC/MCInstrDesc.h llvm37/include/llvm/MC/MCInstrInfo.h llvm37/include/llvm/MC/MCInstrItineraries.h llvm37/include/llvm/MC/MCLabel.h llvm37/include/llvm/MC/MCLinkerOptimizationHint.h llvm37/include/llvm/MC/MCMachObjectWriter.h llvm37/include/llvm/MC/MCObjectFileInfo.h llvm37/include/llvm/MC/MCObjectStreamer.h llvm37/include/llvm/MC/MCObjectWriter.h llvm37/include/llvm/MC/MCParser/AsmCond.h llvm37/include/llvm/MC/MCParser/AsmLexer.h llvm37/include/llvm/MC/MCParser/MCAsmLexer.h llvm37/include/llvm/MC/MCParser/MCAsmParser.h llvm37/include/llvm/MC/MCParser/MCAsmParserExtension.h llvm37/include/llvm/MC/MCParser/MCAsmParserUtils.h llvm37/include/llvm/MC/MCParser/MCParsedAsmOperand.h llvm37/include/llvm/MC/MCRegisterInfo.h llvm37/include/llvm/MC/MCRelocationInfo.h llvm37/include/llvm/MC/MCSchedule.h llvm37/include/llvm/MC/MCSection.h llvm37/include/llvm/MC/MCSectionCOFF.h llvm37/include/llvm/MC/MCSectionELF.h llvm37/include/llvm/MC/MCSectionMachO.h llvm37/include/llvm/MC/MCStreamer.h llvm37/include/llvm/MC/MCSubtargetInfo.h llvm37/include/llvm/MC/MCSymbol.h llvm37/include/llvm/MC/MCSymbolCOFF.h llvm37/include/llvm/MC/MCSymbolELF.h llvm37/include/llvm/MC/MCSymbolMachO.h llvm37/include/llvm/MC/MCSymbolizer.h llvm37/include/llvm/MC/MCTargetAsmParser.h llvm37/include/llvm/MC/MCTargetOptions.h llvm37/include/llvm/MC/MCTargetOptionsCommandFlags.h llvm37/include/llvm/MC/MCValue.h llvm37/include/llvm/MC/MCWin64EH.h llvm37/include/llvm/MC/MCWinCOFFObjectWriter.h llvm37/include/llvm/MC/MCWinCOFFStreamer.h llvm37/include/llvm/MC/MCWinEH.h llvm37/include/llvm/MC/MachineLocation.h llvm37/include/llvm/MC/SectionKind.h llvm37/include/llvm/MC/StringTableBuilder.h llvm37/include/llvm/MC/SubtargetFeature.h llvm37/include/llvm/MC/YAML.h llvm37/include/llvm/Object/Archive.h llvm37/include/llvm/Object/ArchiveWriter.h llvm37/include/llvm/Object/Binary.h llvm37/include/llvm/Object/COFF.h llvm37/include/llvm/Object/COFFYAML.h llvm37/include/llvm/Object/ELF.h llvm37/include/llvm/Object/ELFObjectFile.h llvm37/include/llvm/Object/ELFTypes.h llvm37/include/llvm/Object/ELFYAML.h llvm37/include/llvm/Object/Error.h llvm37/include/llvm/Object/IRObjectFile.h llvm37/include/llvm/Object/MachO.h llvm37/include/llvm/Object/MachOUniversal.h llvm37/include/llvm/Object/ObjectFile.h llvm37/include/llvm/Object/RelocVisitor.h llvm37/include/llvm/Object/StackMapParser.h llvm37/include/llvm/Object/SymbolSize.h llvm37/include/llvm/Object/SymbolicFile.h llvm37/include/llvm/Option/Arg.h llvm37/include/llvm/Option/ArgList.h llvm37/include/llvm/Option/OptParser.td llvm37/include/llvm/Option/OptSpecifier.h llvm37/include/llvm/Option/OptTable.h llvm37/include/llvm/Option/Option.h llvm37/include/llvm/Pass.h llvm37/include/llvm/PassAnalysisSupport.h llvm37/include/llvm/PassInfo.h llvm37/include/llvm/PassRegistry.h llvm37/include/llvm/PassSupport.h llvm37/include/llvm/Passes/PassBuilder.h llvm37/include/llvm/ProfileData/CoverageMapping.h llvm37/include/llvm/ProfileData/CoverageMappingReader.h llvm37/include/llvm/ProfileData/CoverageMappingWriter.h llvm37/include/llvm/ProfileData/InstrProf.h llvm37/include/llvm/ProfileData/InstrProfReader.h llvm37/include/llvm/ProfileData/InstrProfWriter.h llvm37/include/llvm/ProfileData/SampleProf.h llvm37/include/llvm/ProfileData/SampleProfReader.h llvm37/include/llvm/ProfileData/SampleProfWriter.h llvm37/include/llvm/Support/AIXDataTypesFix.h llvm37/include/llvm/Support/ARMBuildAttributes.h llvm37/include/llvm/Support/ARMEHABI.h llvm37/include/llvm/Support/ARMWinEH.h llvm37/include/llvm/Support/AlignOf.h llvm37/include/llvm/Support/Allocator.h llvm37/include/llvm/Support/ArrayRecycler.h llvm37/include/llvm/Support/Atomic.h llvm37/include/llvm/Support/BlockFrequency.h llvm37/include/llvm/Support/BranchProbability.h llvm37/include/llvm/Support/CBindingWrapping.h llvm37/include/llvm/Support/COFF.h llvm37/include/llvm/Support/COM.h llvm37/include/llvm/Support/Capacity.h llvm37/include/llvm/Support/Casting.h llvm37/include/llvm/Support/CodeGen.h llvm37/include/llvm/Support/CommandLine.h llvm37/include/llvm/Support/Compiler.h llvm37/include/llvm/Support/Compression.h llvm37/include/llvm/Support/ConvertUTF.h llvm37/include/llvm/Support/CrashRecoveryContext.h llvm37/include/llvm/Support/DOTGraphTraits.h llvm37/include/llvm/Support/DataExtractor.h llvm37/include/llvm/Support/DataStream.h llvm37/include/llvm/Support/DataTypes.h llvm37/include/llvm/Support/Debug.h llvm37/include/llvm/Support/Dwarf.def llvm37/include/llvm/Support/Dwarf.h llvm37/include/llvm/Support/DynamicLibrary.h llvm37/include/llvm/Support/ELF.h llvm37/include/llvm/Support/ELFRelocs/AArch64.def llvm37/include/llvm/Support/ELFRelocs/ARM.def llvm37/include/llvm/Support/ELFRelocs/Hexagon.def llvm37/include/llvm/Support/ELFRelocs/Mips.def llvm37/include/llvm/Support/ELFRelocs/PowerPC.def llvm37/include/llvm/Support/ELFRelocs/PowerPC64.def llvm37/include/llvm/Support/ELFRelocs/Sparc.def llvm37/include/llvm/Support/ELFRelocs/SystemZ.def llvm37/include/llvm/Support/ELFRelocs/i386.def llvm37/include/llvm/Support/ELFRelocs/x86_64.def llvm37/include/llvm/Support/Endian.h llvm37/include/llvm/Support/EndianStream.h llvm37/include/llvm/Support/Errc.h llvm37/include/llvm/Support/Errno.h llvm37/include/llvm/Support/ErrorHandling.h llvm37/include/llvm/Support/ErrorOr.h llvm37/include/llvm/Support/FileOutputBuffer.h llvm37/include/llvm/Support/FileSystem.h llvm37/include/llvm/Support/FileUtilities.h llvm37/include/llvm/Support/Format.h llvm37/include/llvm/Support/FormattedStream.h llvm37/include/llvm/Support/GCOV.h llvm37/include/llvm/Support/GenericDomTree.h llvm37/include/llvm/Support/GenericDomTreeConstruction.h llvm37/include/llvm/Support/GraphWriter.h llvm37/include/llvm/Support/Host.h llvm37/include/llvm/Support/LEB128.h llvm37/include/llvm/Support/LICENSE.TXT llvm37/include/llvm/Support/LineIterator.h llvm37/include/llvm/Support/Locale.h llvm37/include/llvm/Support/LockFileManager.h llvm37/include/llvm/Support/MD5.h llvm37/include/llvm/Support/MachO.h llvm37/include/llvm/Support/ManagedStatic.h llvm37/include/llvm/Support/MathExtras.h llvm37/include/llvm/Support/Memory.h llvm37/include/llvm/Support/MemoryBuffer.h llvm37/include/llvm/Support/MemoryObject.h llvm37/include/llvm/Support/MipsABIFlags.h llvm37/include/llvm/Support/Mutex.h llvm37/include/llvm/Support/MutexGuard.h llvm37/include/llvm/Support/OnDiskHashTable.h llvm37/include/llvm/Support/Options.h llvm37/include/llvm/Support/OutputBuffer.h llvm37/include/llvm/Support/Path.h llvm37/include/llvm/Support/PluginLoader.h llvm37/include/llvm/Support/PointerLikeTypeTraits.h llvm37/include/llvm/Support/PrettyStackTrace.h llvm37/include/llvm/Support/Process.h llvm37/include/llvm/Support/Program.h llvm37/include/llvm/Support/RWMutex.h llvm37/include/llvm/Support/RandomNumberGenerator.h llvm37/include/llvm/Support/Recycler.h llvm37/include/llvm/Support/RecyclingAllocator.h llvm37/include/llvm/Support/Regex.h llvm37/include/llvm/Support/Registry.h llvm37/include/llvm/Support/RegistryParser.h llvm37/include/llvm/Support/SMLoc.h llvm37/include/llvm/Support/SaveAndRestore.h llvm37/include/llvm/Support/ScaledNumber.h llvm37/include/llvm/Support/Signals.h llvm37/include/llvm/Support/Solaris.h llvm37/include/llvm/Support/SourceMgr.h llvm37/include/llvm/Support/SpecialCaseList.h llvm37/include/llvm/Support/StreamingMemoryObject.h llvm37/include/llvm/Support/StringPool.h llvm37/include/llvm/Support/StringSaver.h llvm37/include/llvm/Support/SwapByteOrder.h llvm37/include/llvm/Support/SystemUtils.h llvm37/include/llvm/Support/TargetParser.h llvm37/include/llvm/Support/TargetRegistry.h llvm37/include/llvm/Support/TargetSelect.h llvm37/include/llvm/Support/ThreadLocal.h llvm37/include/llvm/Support/Threading.h llvm37/include/llvm/Support/TimeValue.h llvm37/include/llvm/Support/Timer.h llvm37/include/llvm/Support/ToolOutputFile.h llvm37/include/llvm/Support/Unicode.h llvm37/include/llvm/Support/UnicodeCharRanges.h llvm37/include/llvm/Support/UniqueLock.h llvm37/include/llvm/Support/Valgrind.h llvm37/include/llvm/Support/Watchdog.h llvm37/include/llvm/Support/Win64EH.h llvm37/include/llvm/Support/WindowsError.h llvm37/include/llvm/Support/YAMLParser.h llvm37/include/llvm/Support/YAMLTraits.h llvm37/include/llvm/Support/circular_raw_ostream.h llvm37/include/llvm/Support/raw_os_ostream.h llvm37/include/llvm/Support/raw_ostream.h llvm37/include/llvm/Support/type_traits.h llvm37/include/llvm/TableGen/Error.h llvm37/include/llvm/TableGen/Main.h llvm37/include/llvm/TableGen/Record.h llvm37/include/llvm/TableGen/SetTheory.h llvm37/include/llvm/TableGen/StringMatcher.h llvm37/include/llvm/TableGen/StringToOffsetTable.h llvm37/include/llvm/TableGen/TableGenBackend.h llvm37/include/llvm/Target/CostTable.h llvm37/include/llvm/Target/Target.td llvm37/include/llvm/Target/TargetCallingConv.h llvm37/include/llvm/Target/TargetCallingConv.td llvm37/include/llvm/Target/TargetFrameLowering.h llvm37/include/llvm/Target/TargetInstrInfo.h llvm37/include/llvm/Target/TargetIntrinsicInfo.h llvm37/include/llvm/Target/TargetItinerary.td llvm37/include/llvm/Target/TargetLowering.h llvm37/include/llvm/Target/TargetLoweringObjectFile.h llvm37/include/llvm/Target/TargetMachine.h llvm37/include/llvm/Target/TargetOpcodes.h llvm37/include/llvm/Target/TargetOptions.h llvm37/include/llvm/Target/TargetRecip.h llvm37/include/llvm/Target/TargetRegisterInfo.h llvm37/include/llvm/Target/TargetSchedule.td llvm37/include/llvm/Target/TargetSelectionDAG.td llvm37/include/llvm/Target/TargetSelectionDAGInfo.h llvm37/include/llvm/Target/TargetSubtargetInfo.h llvm37/include/llvm/Transforms/IPO.h llvm37/include/llvm/Transforms/IPO/InlinerPass.h llvm37/include/llvm/Transforms/IPO/LowerBitSets.h llvm37/include/llvm/Transforms/IPO/PassManagerBuilder.h llvm37/include/llvm/Transforms/InstCombine/InstCombine.h llvm37/include/llvm/Transforms/InstCombine/InstCombineWorklist.h llvm37/include/llvm/Transforms/Instrumentation.h llvm37/include/llvm/Transforms/ObjCARC.h llvm37/include/llvm/Transforms/Scalar.h llvm37/include/llvm/Transforms/Scalar/EarlyCSE.h llvm37/include/llvm/Transforms/Scalar/LowerExpectIntrinsic.h llvm37/include/llvm/Transforms/Scalar/SimplifyCFG.h llvm37/include/llvm/Transforms/Utils/ASanStackFrameLayout.h llvm37/include/llvm/Transforms/Utils/BasicBlockUtils.h llvm37/include/llvm/Transforms/Utils/BuildLibCalls.h llvm37/include/llvm/Transforms/Utils/BypassSlowDivision.h llvm37/include/llvm/Transforms/Utils/Cloning.h llvm37/include/llvm/Transforms/Utils/CmpInstAnalysis.h llvm37/include/llvm/Transforms/Utils/CodeExtractor.h llvm37/include/llvm/Transforms/Utils/CtorUtils.h llvm37/include/llvm/Transforms/Utils/GlobalStatus.h llvm37/include/llvm/Transforms/Utils/IntegerDivision.h llvm37/include/llvm/Transforms/Utils/Local.h llvm37/include/llvm/Transforms/Utils/LoopUtils.h llvm37/include/llvm/Transforms/Utils/LoopVersioning.h llvm37/include/llvm/Transforms/Utils/ModuleUtils.h llvm37/include/llvm/Transforms/Utils/PromoteMemToReg.h llvm37/include/llvm/Transforms/Utils/SSAUpdater.h llvm37/include/llvm/Transforms/Utils/SSAUpdaterImpl.h llvm37/include/llvm/Transforms/Utils/SimplifyIndVar.h llvm37/include/llvm/Transforms/Utils/SimplifyLibCalls.h llvm37/include/llvm/Transforms/Utils/SymbolRewriter.h llvm37/include/llvm/Transforms/Utils/UnifyFunctionExitNodes.h llvm37/include/llvm/Transforms/Utils/UnrollLoop.h llvm37/include/llvm/Transforms/Utils/ValueMapper.h llvm37/include/llvm/Transforms/Vectorize.h llvm37/lib/BugpointPasses.so llvm37/lib/LLVMHello.so %%GOLD%%llvm37/lib/LLVMgold.so %%COMPILER_RT%%llvm37/lib/clang/%%LLVM_RELEASE%%/asan_blacklist.txt %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/Intrin.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/__stddef_max_align_t.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/__wmmintrin_aes.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/__wmmintrin_pclmul.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/adxintrin.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/altivec.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/ammintrin.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/arm_acle.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/arm_neon.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/avx2intrin.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/avx512bwintrin.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/avx512cdintrin.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/avx512dqintrin.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/avx512erintrin.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/avx512fintrin.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/avx512vlbwintrin.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/avx512vldqintrin.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/avx512vlintrin.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/avxintrin.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/bmi2intrin.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/bmiintrin.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/cpuid.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/cuda_builtin_vars.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/emmintrin.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/f16cintrin.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/float.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/fma4intrin.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/fmaintrin.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/fxsrintrin.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/htmintrin.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/htmxlintrin.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/ia32intrin.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/immintrin.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/inttypes.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/iso646.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/lzcntintrin.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/mm3dnow.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/mm_malloc.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/mmintrin.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/module.modulemap %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/nmmintrin.h %%OPENMP%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/omp.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/pmmintrin.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/popcntintrin.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/prfchwintrin.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/rdseedintrin.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/rtmintrin.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/s390intrin.h %%COMPILER_RT%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/sanitizer/allocator_interface.h %%COMPILER_RT%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/sanitizer/asan_interface.h %%COMPILER_RT%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/sanitizer/common_interface_defs.h %%COMPILER_RT%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/sanitizer/coverage_interface.h %%COMPILER_RT%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/sanitizer/dfsan_interface.h %%COMPILER_RT%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/sanitizer/linux_syscall_hooks.h %%COMPILER_RT%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/sanitizer/lsan_interface.h %%COMPILER_RT%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/sanitizer/msan_interface.h %%COMPILER_RT%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/sanitizer/tsan_interface_atomic.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/shaintrin.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/smmintrin.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/tbmintrin.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/tgmath.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/tmmintrin.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/unwind.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/vadefs.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/vecintrin.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/wmmintrin.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/x86intrin.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/xmmintrin.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/xopintrin.h %%CLANG%%llvm37/lib/clang/%%LLVM_RELEASE%%/include/xtestintrin.h llvm37/lib/libLLVMAArch64AsmParser.so llvm37/lib/libLLVMAArch64AsmParser.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMAArch64AsmParser.so.3.7 llvm37/lib/libLLVMAArch64AsmPrinter.so llvm37/lib/libLLVMAArch64AsmPrinter.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMAArch64AsmPrinter.so.3.7 llvm37/lib/libLLVMAArch64CodeGen.so llvm37/lib/libLLVMAArch64CodeGen.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMAArch64CodeGen.so.3.7 llvm37/lib/libLLVMAArch64Desc.so llvm37/lib/libLLVMAArch64Desc.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMAArch64Desc.so.3.7 llvm37/lib/libLLVMAArch64Disassembler.so llvm37/lib/libLLVMAArch64Disassembler.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMAArch64Disassembler.so.3.7 llvm37/lib/libLLVMAArch64Info.so llvm37/lib/libLLVMAArch64Info.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMAArch64Info.so.3.7 llvm37/lib/libLLVMAArch64Utils.so llvm37/lib/libLLVMAArch64Utils.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMAArch64Utils.so.3.7 llvm37/lib/libLLVMAMDGPUAsmParser.so llvm37/lib/libLLVMAMDGPUAsmParser.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMAMDGPUAsmParser.so.3.7 llvm37/lib/libLLVMAMDGPUAsmPrinter.so llvm37/lib/libLLVMAMDGPUAsmPrinter.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMAMDGPUAsmPrinter.so.3.7 llvm37/lib/libLLVMAMDGPUCodeGen.so llvm37/lib/libLLVMAMDGPUCodeGen.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMAMDGPUCodeGen.so.3.7 llvm37/lib/libLLVMAMDGPUDesc.so llvm37/lib/libLLVMAMDGPUDesc.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMAMDGPUDesc.so.3.7 llvm37/lib/libLLVMAMDGPUInfo.so llvm37/lib/libLLVMAMDGPUInfo.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMAMDGPUInfo.so.3.7 llvm37/lib/libLLVMAMDGPUUtils.so llvm37/lib/libLLVMAMDGPUUtils.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMAMDGPUUtils.so.3.7 llvm37/lib/libLLVMARMAsmParser.so llvm37/lib/libLLVMARMAsmParser.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMARMAsmParser.so.3.7 llvm37/lib/libLLVMARMAsmPrinter.so llvm37/lib/libLLVMARMAsmPrinter.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMARMAsmPrinter.so.3.7 llvm37/lib/libLLVMARMCodeGen.so llvm37/lib/libLLVMARMCodeGen.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMARMCodeGen.so.3.7 llvm37/lib/libLLVMARMDesc.so llvm37/lib/libLLVMARMDesc.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMARMDesc.so.3.7 llvm37/lib/libLLVMARMDisassembler.so llvm37/lib/libLLVMARMDisassembler.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMARMDisassembler.so.3.7 llvm37/lib/libLLVMARMInfo.so llvm37/lib/libLLVMARMInfo.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMARMInfo.so.3.7 llvm37/lib/libLLVMAnalysis.so llvm37/lib/libLLVMAnalysis.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMAnalysis.so.3.7 llvm37/lib/libLLVMAsmParser.so llvm37/lib/libLLVMAsmParser.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMAsmParser.so.3.7 llvm37/lib/libLLVMAsmPrinter.so llvm37/lib/libLLVMAsmPrinter.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMAsmPrinter.so.3.7 llvm37/lib/libLLVMBPFAsmPrinter.so llvm37/lib/libLLVMBPFAsmPrinter.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMBPFAsmPrinter.so.3.7 llvm37/lib/libLLVMBPFCodeGen.so llvm37/lib/libLLVMBPFCodeGen.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMBPFCodeGen.so.3.7 llvm37/lib/libLLVMBPFDesc.so llvm37/lib/libLLVMBPFDesc.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMBPFDesc.so.3.7 llvm37/lib/libLLVMBPFInfo.so llvm37/lib/libLLVMBPFInfo.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMBPFInfo.so.3.7 llvm37/lib/libLLVMBitReader.so llvm37/lib/libLLVMBitReader.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMBitReader.so.3.7 llvm37/lib/libLLVMBitWriter.so llvm37/lib/libLLVMBitWriter.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMBitWriter.so.3.7 llvm37/lib/libLLVMCodeGen.so llvm37/lib/libLLVMCodeGen.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMCodeGen.so.3.7 llvm37/lib/libLLVMCore.so llvm37/lib/libLLVMCore.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMCore.so.3.7 llvm37/lib/libLLVMCppBackendCodeGen.so llvm37/lib/libLLVMCppBackendCodeGen.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMCppBackendCodeGen.so.3.7 llvm37/lib/libLLVMCppBackendInfo.so llvm37/lib/libLLVMCppBackendInfo.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMCppBackendInfo.so.3.7 llvm37/lib/libLLVMDebugInfoDWARF.so llvm37/lib/libLLVMDebugInfoDWARF.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMDebugInfoDWARF.so.3.7 llvm37/lib/libLLVMDebugInfoPDB.so llvm37/lib/libLLVMDebugInfoPDB.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMDebugInfoPDB.so.3.7 llvm37/lib/libLLVMExecutionEngine.so llvm37/lib/libLLVMExecutionEngine.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMExecutionEngine.so.3.7 llvm37/lib/libLLVMHexagonCodeGen.so llvm37/lib/libLLVMHexagonCodeGen.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMHexagonCodeGen.so.3.7 llvm37/lib/libLLVMHexagonDesc.so llvm37/lib/libLLVMHexagonDesc.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMHexagonDesc.so.3.7 llvm37/lib/libLLVMHexagonDisassembler.so llvm37/lib/libLLVMHexagonDisassembler.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMHexagonDisassembler.so.3.7 llvm37/lib/libLLVMHexagonInfo.so llvm37/lib/libLLVMHexagonInfo.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMHexagonInfo.so.3.7 llvm37/lib/libLLVMIRReader.so llvm37/lib/libLLVMIRReader.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMIRReader.so.3.7 llvm37/lib/libLLVMInstCombine.so llvm37/lib/libLLVMInstCombine.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMInstCombine.so.3.7 llvm37/lib/libLLVMInstrumentation.so llvm37/lib/libLLVMInstrumentation.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMInstrumentation.so.3.7 llvm37/lib/libLLVMInterpreter.so llvm37/lib/libLLVMInterpreter.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMInterpreter.so.3.7 llvm37/lib/libLLVMLTO.so llvm37/lib/libLLVMLTO.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMLTO.so.3.7 llvm37/lib/libLLVMLibDriver.so llvm37/lib/libLLVMLibDriver.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMLibDriver.so.3.7 llvm37/lib/libLLVMLineEditor.so llvm37/lib/libLLVMLineEditor.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMLineEditor.so.3.7 llvm37/lib/libLLVMLinker.so llvm37/lib/libLLVMLinker.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMLinker.so.3.7 llvm37/lib/libLLVMMC.so llvm37/lib/libLLVMMC.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMMC.so.3.7 llvm37/lib/libLLVMMCDisassembler.so llvm37/lib/libLLVMMCDisassembler.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMMCDisassembler.so.3.7 llvm37/lib/libLLVMMCJIT.so llvm37/lib/libLLVMMCJIT.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMMCJIT.so.3.7 llvm37/lib/libLLVMMCParser.so llvm37/lib/libLLVMMCParser.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMMCParser.so.3.7 llvm37/lib/libLLVMMIRParser.so llvm37/lib/libLLVMMIRParser.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMMIRParser.so.3.7 llvm37/lib/libLLVMMSP430AsmPrinter.so llvm37/lib/libLLVMMSP430AsmPrinter.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMMSP430AsmPrinter.so.3.7 llvm37/lib/libLLVMMSP430CodeGen.so llvm37/lib/libLLVMMSP430CodeGen.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMMSP430CodeGen.so.3.7 llvm37/lib/libLLVMMSP430Desc.so llvm37/lib/libLLVMMSP430Desc.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMMSP430Desc.so.3.7 llvm37/lib/libLLVMMSP430Info.so llvm37/lib/libLLVMMSP430Info.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMMSP430Info.so.3.7 llvm37/lib/libLLVMMipsAsmParser.so llvm37/lib/libLLVMMipsAsmParser.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMMipsAsmParser.so.3.7 llvm37/lib/libLLVMMipsAsmPrinter.so llvm37/lib/libLLVMMipsAsmPrinter.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMMipsAsmPrinter.so.3.7 llvm37/lib/libLLVMMipsCodeGen.so llvm37/lib/libLLVMMipsCodeGen.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMMipsCodeGen.so.3.7 llvm37/lib/libLLVMMipsDesc.so llvm37/lib/libLLVMMipsDesc.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMMipsDesc.so.3.7 llvm37/lib/libLLVMMipsDisassembler.so llvm37/lib/libLLVMMipsDisassembler.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMMipsDisassembler.so.3.7 llvm37/lib/libLLVMMipsInfo.so llvm37/lib/libLLVMMipsInfo.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMMipsInfo.so.3.7 llvm37/lib/libLLVMNVPTXAsmPrinter.so llvm37/lib/libLLVMNVPTXAsmPrinter.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMNVPTXAsmPrinter.so.3.7 llvm37/lib/libLLVMNVPTXCodeGen.so llvm37/lib/libLLVMNVPTXCodeGen.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMNVPTXCodeGen.so.3.7 llvm37/lib/libLLVMNVPTXDesc.so llvm37/lib/libLLVMNVPTXDesc.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMNVPTXDesc.so.3.7 llvm37/lib/libLLVMNVPTXInfo.so llvm37/lib/libLLVMNVPTXInfo.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMNVPTXInfo.so.3.7 llvm37/lib/libLLVMObjCARCOpts.so llvm37/lib/libLLVMObjCARCOpts.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMObjCARCOpts.so.3.7 llvm37/lib/libLLVMObject.so llvm37/lib/libLLVMObject.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMObject.so.3.7 llvm37/lib/libLLVMOption.so llvm37/lib/libLLVMOption.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMOption.so.3.7 llvm37/lib/libLLVMOrcJIT.so llvm37/lib/libLLVMOrcJIT.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMOrcJIT.so.3.7 llvm37/lib/libLLVMPasses.so llvm37/lib/libLLVMPasses.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMPasses.so.3.7 llvm37/lib/libLLVMPowerPCAsmParser.so llvm37/lib/libLLVMPowerPCAsmParser.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMPowerPCAsmParser.so.3.7 llvm37/lib/libLLVMPowerPCAsmPrinter.so llvm37/lib/libLLVMPowerPCAsmPrinter.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMPowerPCAsmPrinter.so.3.7 llvm37/lib/libLLVMPowerPCCodeGen.so llvm37/lib/libLLVMPowerPCCodeGen.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMPowerPCCodeGen.so.3.7 llvm37/lib/libLLVMPowerPCDesc.so llvm37/lib/libLLVMPowerPCDesc.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMPowerPCDesc.so.3.7 llvm37/lib/libLLVMPowerPCDisassembler.so llvm37/lib/libLLVMPowerPCDisassembler.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMPowerPCDisassembler.so.3.7 llvm37/lib/libLLVMPowerPCInfo.so llvm37/lib/libLLVMPowerPCInfo.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMPowerPCInfo.so.3.7 llvm37/lib/libLLVMProfileData.so llvm37/lib/libLLVMProfileData.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMProfileData.so.3.7 llvm37/lib/libLLVMRuntimeDyld.so llvm37/lib/libLLVMRuntimeDyld.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMRuntimeDyld.so.3.7 llvm37/lib/libLLVMScalarOpts.so llvm37/lib/libLLVMScalarOpts.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMScalarOpts.so.3.7 llvm37/lib/libLLVMSelectionDAG.so llvm37/lib/libLLVMSelectionDAG.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMSelectionDAG.so.3.7 llvm37/lib/libLLVMSparcAsmParser.so llvm37/lib/libLLVMSparcAsmParser.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMSparcAsmParser.so.3.7 llvm37/lib/libLLVMSparcAsmPrinter.so llvm37/lib/libLLVMSparcAsmPrinter.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMSparcAsmPrinter.so.3.7 llvm37/lib/libLLVMSparcCodeGen.so llvm37/lib/libLLVMSparcCodeGen.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMSparcCodeGen.so.3.7 llvm37/lib/libLLVMSparcDesc.so llvm37/lib/libLLVMSparcDesc.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMSparcDesc.so.3.7 llvm37/lib/libLLVMSparcDisassembler.so llvm37/lib/libLLVMSparcDisassembler.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMSparcDisassembler.so.3.7 llvm37/lib/libLLVMSparcInfo.so llvm37/lib/libLLVMSparcInfo.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMSparcInfo.so.3.7 llvm37/lib/libLLVMSupport.so llvm37/lib/libLLVMSupport.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMSupport.so.3.7 llvm37/lib/libLLVMSystemZAsmParser.so llvm37/lib/libLLVMSystemZAsmParser.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMSystemZAsmParser.so.3.7 llvm37/lib/libLLVMSystemZAsmPrinter.so llvm37/lib/libLLVMSystemZAsmPrinter.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMSystemZAsmPrinter.so.3.7 llvm37/lib/libLLVMSystemZCodeGen.so llvm37/lib/libLLVMSystemZCodeGen.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMSystemZCodeGen.so.3.7 llvm37/lib/libLLVMSystemZDesc.so llvm37/lib/libLLVMSystemZDesc.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMSystemZDesc.so.3.7 llvm37/lib/libLLVMSystemZDisassembler.so llvm37/lib/libLLVMSystemZDisassembler.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMSystemZDisassembler.so.3.7 llvm37/lib/libLLVMSystemZInfo.so llvm37/lib/libLLVMSystemZInfo.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMSystemZInfo.so.3.7 llvm37/lib/libLLVMTableGen.so llvm37/lib/libLLVMTableGen.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMTableGen.so.3.7 llvm37/lib/libLLVMTarget.so llvm37/lib/libLLVMTarget.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMTarget.so.3.7 llvm37/lib/libLLVMTransformUtils.so llvm37/lib/libLLVMTransformUtils.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMTransformUtils.so.3.7 llvm37/lib/libLLVMVectorize.so llvm37/lib/libLLVMVectorize.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMVectorize.so.3.7 llvm37/lib/libLLVMX86AsmParser.so llvm37/lib/libLLVMX86AsmParser.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMX86AsmParser.so.3.7 llvm37/lib/libLLVMX86AsmPrinter.so llvm37/lib/libLLVMX86AsmPrinter.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMX86AsmPrinter.so.3.7 llvm37/lib/libLLVMX86CodeGen.so llvm37/lib/libLLVMX86CodeGen.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMX86CodeGen.so.3.7 llvm37/lib/libLLVMX86Desc.so llvm37/lib/libLLVMX86Desc.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMX86Desc.so.3.7 llvm37/lib/libLLVMX86Disassembler.so llvm37/lib/libLLVMX86Disassembler.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMX86Disassembler.so.3.7 llvm37/lib/libLLVMX86Info.so llvm37/lib/libLLVMX86Info.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMX86Info.so.3.7 llvm37/lib/libLLVMX86Utils.so llvm37/lib/libLLVMX86Utils.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMX86Utils.so.3.7 llvm37/lib/libLLVMXCoreAsmPrinter.so llvm37/lib/libLLVMXCoreAsmPrinter.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMXCoreAsmPrinter.so.3.7 llvm37/lib/libLLVMXCoreCodeGen.so llvm37/lib/libLLVMXCoreCodeGen.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMXCoreCodeGen.so.3.7 llvm37/lib/libLLVMXCoreDesc.so llvm37/lib/libLLVMXCoreDesc.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMXCoreDesc.so.3.7 llvm37/lib/libLLVMXCoreDisassembler.so llvm37/lib/libLLVMXCoreDisassembler.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMXCoreDisassembler.so.3.7 llvm37/lib/libLLVMXCoreInfo.so llvm37/lib/libLLVMXCoreInfo.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMXCoreInfo.so.3.7 llvm37/lib/libLLVMipa.so llvm37/lib/libLLVMipa.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMipa.so.3.7 llvm37/lib/libLLVMipo.so llvm37/lib/libLLVMipo.so.%%LLVM_RELEASE%% llvm37/lib/libLLVMipo.so.3.7 llvm37/lib/libLTO.so llvm37/lib/libLTO.so.%%LLVM_RELEASE%% llvm37/lib/libLTO.so.3.7 %%CLANG%%llvm37/lib/libclang.so %%CLANG%%llvm37/lib/libclang.so.3.7 %%CLANG%%llvm37/lib/libclangARCMigrate.so %%CLANG%%llvm37/lib/libclangARCMigrate.so.%%LLVM_RELEASE%% %%CLANG%%llvm37/lib/libclangARCMigrate.so.3.7 %%CLANG%%llvm37/lib/libclangAST.so %%CLANG%%llvm37/lib/libclangAST.so.%%LLVM_RELEASE%% %%CLANG%%llvm37/lib/libclangAST.so.3.7 %%CLANG%%llvm37/lib/libclangASTMatchers.so %%CLANG%%llvm37/lib/libclangASTMatchers.so.%%LLVM_RELEASE%% %%CLANG%%llvm37/lib/libclangASTMatchers.so.3.7 %%CLANG%%llvm37/lib/libclangAnalysis.so %%CLANG%%llvm37/lib/libclangAnalysis.so.%%LLVM_RELEASE%% %%CLANG%%llvm37/lib/libclangAnalysis.so.3.7 %%EXTRAS%%llvm37/lib/libclangApplyReplacements.so %%EXTRAS%%llvm37/lib/libclangApplyReplacements.so.%%LLVM_RELEASE%% %%EXTRAS%%llvm37/lib/libclangApplyReplacements.so.3.7 %%CLANG%%llvm37/lib/libclangBasic.so %%CLANG%%llvm37/lib/libclangBasic.so.%%LLVM_RELEASE%% %%CLANG%%llvm37/lib/libclangBasic.so.3.7 %%CLANG%%llvm37/lib/libclangCodeGen.so %%CLANG%%llvm37/lib/libclangCodeGen.so.%%LLVM_RELEASE%% %%CLANG%%llvm37/lib/libclangCodeGen.so.3.7 %%CLANG%%llvm37/lib/libclangDriver.so %%CLANG%%llvm37/lib/libclangDriver.so.%%LLVM_RELEASE%% %%CLANG%%llvm37/lib/libclangDriver.so.3.7 %%CLANG%%llvm37/lib/libclangDynamicASTMatchers.so %%CLANG%%llvm37/lib/libclangDynamicASTMatchers.so.%%LLVM_RELEASE%% %%CLANG%%llvm37/lib/libclangDynamicASTMatchers.so.3.7 %%CLANG%%llvm37/lib/libclangEdit.so %%CLANG%%llvm37/lib/libclangEdit.so.%%LLVM_RELEASE%% %%CLANG%%llvm37/lib/libclangEdit.so.3.7 %%CLANG%%llvm37/lib/libclangFormat.so %%CLANG%%llvm37/lib/libclangFormat.so.%%LLVM_RELEASE%% %%CLANG%%llvm37/lib/libclangFormat.so.3.7 %%CLANG%%llvm37/lib/libclangFrontend.so %%CLANG%%llvm37/lib/libclangFrontend.so.%%LLVM_RELEASE%% %%CLANG%%llvm37/lib/libclangFrontend.so.3.7 %%CLANG%%llvm37/lib/libclangFrontendTool.so %%CLANG%%llvm37/lib/libclangFrontendTool.so.%%LLVM_RELEASE%% %%CLANG%%llvm37/lib/libclangFrontendTool.so.3.7 %%CLANG%%llvm37/lib/libclangIndex.so %%CLANG%%llvm37/lib/libclangIndex.so.%%LLVM_RELEASE%% %%CLANG%%llvm37/lib/libclangIndex.so.3.7 %%CLANG%%llvm37/lib/libclangLex.so %%CLANG%%llvm37/lib/libclangLex.so.%%LLVM_RELEASE%% %%CLANG%%llvm37/lib/libclangLex.so.3.7 %%CLANG%%llvm37/lib/libclangParse.so %%CLANG%%llvm37/lib/libclangParse.so.%%LLVM_RELEASE%% %%CLANG%%llvm37/lib/libclangParse.so.3.7 %%EXTRAS%%llvm37/lib/libclangQuery.so %%EXTRAS%%llvm37/lib/libclangQuery.so.%%LLVM_RELEASE%% %%EXTRAS%%llvm37/lib/libclangQuery.so.3.7 %%EXTRAS%%llvm37/lib/libclangRename.so %%EXTRAS%%llvm37/lib/libclangRename.so.%%LLVM_RELEASE%% %%EXTRAS%%llvm37/lib/libclangRename.so.3.7 %%CLANG%%llvm37/lib/libclangRewrite.so %%CLANG%%llvm37/lib/libclangRewrite.so.%%LLVM_RELEASE%% %%CLANG%%llvm37/lib/libclangRewrite.so.3.7 %%CLANG%%llvm37/lib/libclangRewriteFrontend.so %%CLANG%%llvm37/lib/libclangRewriteFrontend.so.%%LLVM_RELEASE%% %%CLANG%%llvm37/lib/libclangRewriteFrontend.so.3.7 %%CLANG%%llvm37/lib/libclangSema.so %%CLANG%%llvm37/lib/libclangSema.so.%%LLVM_RELEASE%% %%CLANG%%llvm37/lib/libclangSema.so.3.7 %%CLANG%%llvm37/lib/libclangSerialization.so %%CLANG%%llvm37/lib/libclangSerialization.so.%%LLVM_RELEASE%% %%CLANG%%llvm37/lib/libclangSerialization.so.3.7 %%CLANG%%llvm37/lib/libclangStaticAnalyzerCheckers.so %%CLANG%%llvm37/lib/libclangStaticAnalyzerCheckers.so.%%LLVM_RELEASE%% %%CLANG%%llvm37/lib/libclangStaticAnalyzerCheckers.so.3.7 %%CLANG%%llvm37/lib/libclangStaticAnalyzerCore.so %%CLANG%%llvm37/lib/libclangStaticAnalyzerCore.so.%%LLVM_RELEASE%% %%CLANG%%llvm37/lib/libclangStaticAnalyzerCore.so.3.7 %%CLANG%%llvm37/lib/libclangStaticAnalyzerFrontend.so %%CLANG%%llvm37/lib/libclangStaticAnalyzerFrontend.so.%%LLVM_RELEASE%% %%CLANG%%llvm37/lib/libclangStaticAnalyzerFrontend.so.3.7 %%EXTRAS%%llvm37/lib/libclangTidy.so %%EXTRAS%%llvm37/lib/libclangTidy.so.%%LLVM_RELEASE%% %%EXTRAS%%llvm37/lib/libclangTidy.so.3.7 %%EXTRAS%%llvm37/lib/libclangTidyGoogleModule.so %%EXTRAS%%llvm37/lib/libclangTidyGoogleModule.so.%%LLVM_RELEASE%% %%EXTRAS%%llvm37/lib/libclangTidyGoogleModule.so.3.7 %%EXTRAS%%llvm37/lib/libclangTidyLLVMModule.so %%EXTRAS%%llvm37/lib/libclangTidyLLVMModule.so.%%LLVM_RELEASE%% %%EXTRAS%%llvm37/lib/libclangTidyLLVMModule.so.3.7 %%EXTRAS%%llvm37/lib/libclangTidyMiscModule.so %%EXTRAS%%llvm37/lib/libclangTidyMiscModule.so.%%LLVM_RELEASE%% %%EXTRAS%%llvm37/lib/libclangTidyMiscModule.so.3.7 %%EXTRAS%%llvm37/lib/libclangTidyReadabilityModule.so %%EXTRAS%%llvm37/lib/libclangTidyReadabilityModule.so.%%LLVM_RELEASE%% %%EXTRAS%%llvm37/lib/libclangTidyReadabilityModule.so.3.7 %%EXTRAS%%llvm37/lib/libclangTidyUtils.so %%EXTRAS%%llvm37/lib/libclangTidyUtils.so.%%LLVM_RELEASE%% %%EXTRAS%%llvm37/lib/libclangTidyUtils.so.3.7 %%CLANG%%llvm37/lib/libclangTooling.so %%CLANG%%llvm37/lib/libclangTooling.so.%%LLVM_RELEASE%% %%CLANG%%llvm37/lib/libclangTooling.so.3.7 %%CLANG%%llvm37/lib/libclangToolingCore.so %%CLANG%%llvm37/lib/libclangToolingCore.so.%%LLVM_RELEASE%% %%CLANG%%llvm37/lib/libclangToolingCore.so.3.7 %%OPENMP%%llvm37/lib/libgomp.so %%OPENMP%%llvm37/lib/libiomp5.so %%LLD%%llvm37/lib/liblldAArch64ELFTarget.so %%LLD%%llvm37/lib/liblldAArch64ELFTarget.so.%%LLVM_RELEASE%% %%LLD%%llvm37/lib/liblldAArch64ELFTarget.so.3.7 %%LLD%%llvm37/lib/liblldARMELFTarget.so %%LLD%%llvm37/lib/liblldARMELFTarget.so.%%LLVM_RELEASE%% %%LLD%%llvm37/lib/liblldARMELFTarget.so.3.7 %%LLD%%llvm37/lib/liblldCOFF.so %%LLD%%llvm37/lib/liblldCOFF.so.%%LLVM_RELEASE%% %%LLD%%llvm37/lib/liblldCOFF.so.3.7 %%LLD%%llvm37/lib/liblldConfig.so %%LLD%%llvm37/lib/liblldConfig.so.%%LLVM_RELEASE%% %%LLD%%llvm37/lib/liblldConfig.so.3.7 %%LLD%%llvm37/lib/liblldCore.so %%LLD%%llvm37/lib/liblldCore.so.%%LLVM_RELEASE%% %%LLD%%llvm37/lib/liblldCore.so.3.7 %%LLD%%llvm37/lib/liblldDriver.so %%LLD%%llvm37/lib/liblldDriver.so.%%LLVM_RELEASE%% %%LLD%%llvm37/lib/liblldDriver.so.3.7 %%LLD%%llvm37/lib/liblldELF.so %%LLD%%llvm37/lib/liblldELF.so.%%LLVM_RELEASE%% %%LLD%%llvm37/lib/liblldELF.so.3.7 %%LLD%%llvm37/lib/liblldExampleSubTarget.so %%LLD%%llvm37/lib/liblldExampleSubTarget.so.%%LLVM_RELEASE%% %%LLD%%llvm37/lib/liblldExampleSubTarget.so.3.7 %%LLD%%llvm37/lib/liblldHexagonELFTarget.so %%LLD%%llvm37/lib/liblldHexagonELFTarget.so.%%LLVM_RELEASE%% %%LLD%%llvm37/lib/liblldHexagonELFTarget.so.3.7 %%LLD%%llvm37/lib/liblldMachO.so %%LLD%%llvm37/lib/liblldMachO.so.%%LLVM_RELEASE%% %%LLD%%llvm37/lib/liblldMachO.so.3.7 %%LLD%%llvm37/lib/liblldMipsELFTarget.so %%LLD%%llvm37/lib/liblldMipsELFTarget.so.%%LLVM_RELEASE%% %%LLD%%llvm37/lib/liblldMipsELFTarget.so.3.7 %%LLD%%llvm37/lib/liblldPECOFF.so %%LLD%%llvm37/lib/liblldPECOFF.so.%%LLVM_RELEASE%% %%LLD%%llvm37/lib/liblldPECOFF.so.3.7 %%LLD%%llvm37/lib/liblldReaderWriter.so %%LLD%%llvm37/lib/liblldReaderWriter.so.%%LLVM_RELEASE%% %%LLD%%llvm37/lib/liblldReaderWriter.so.3.7 %%LLD%%llvm37/lib/liblldX86ELFTarget.so %%LLD%%llvm37/lib/liblldX86ELFTarget.so.%%LLVM_RELEASE%% %%LLD%%llvm37/lib/liblldX86ELFTarget.so.3.7 %%LLD%%llvm37/lib/liblldX86_64ELFTarget.so %%LLD%%llvm37/lib/liblldX86_64ELFTarget.so.%%LLVM_RELEASE%% %%LLD%%llvm37/lib/liblldX86_64ELFTarget.so.3.7 %%LLD%%llvm37/lib/liblldYAML.so %%LLD%%llvm37/lib/liblldYAML.so.%%LLVM_RELEASE%% %%LLD%%llvm37/lib/liblldYAML.so.3.7 %%LLDB%%llvm37/lib/liblldb.so %%LLDB%%llvm37/lib/liblldb.so.%%LLVM_RELEASE%% %%LLDB%%llvm37/lib/liblldb.so.3.7 %%LLDB%%llvm37/lib/liblldbBase.a %%LLDB%%llvm37/lib/liblldbBreakpoint.a %%LLDB%%llvm37/lib/liblldbCommands.a %%LLDB%%llvm37/lib/liblldbCore.a %%LLDB%%llvm37/lib/liblldbDataFormatters.a %%LLDB%%llvm37/lib/liblldbExpression.a %%LLDB%%llvm37/lib/liblldbHost.a %%LLDB%%llvm37/lib/liblldbInitialization.a %%LLDB%%llvm37/lib/liblldbInterpreter.a %%LLDB%%llvm37/lib/liblldbPluginABIMacOSX_arm.a %%LLDB%%llvm37/lib/liblldbPluginABIMacOSX_arm64.a %%LLDB%%llvm37/lib/liblldbPluginABIMacOSX_i386.a %%LLDB%%llvm37/lib/liblldbPluginABISysV_arm.a %%LLDB%%llvm37/lib/liblldbPluginABISysV_arm64.a %%LLDB%%llvm37/lib/liblldbPluginABISysV_hexagon.a %%LLDB%%llvm37/lib/liblldbPluginABISysV_i386.a %%LLDB%%llvm37/lib/liblldbPluginABISysV_mips.a %%LLDB%%llvm37/lib/liblldbPluginABISysV_mips64.a %%LLDB%%llvm37/lib/liblldbPluginABISysV_ppc.a %%LLDB%%llvm37/lib/liblldbPluginABISysV_ppc64.a %%LLDB%%llvm37/lib/liblldbPluginABISysV_x86_64.a %%LLDB%%llvm37/lib/liblldbPluginAppleObjCRuntime.a %%LLDB%%llvm37/lib/liblldbPluginCXXItaniumABI.a %%LLDB%%llvm37/lib/liblldbPluginDisassemblerLLVM.a %%LLDB%%llvm37/lib/liblldbPluginDynamicLoaderHexagonDYLD.a %%LLDB%%llvm37/lib/liblldbPluginDynamicLoaderMacOSXDYLD.a %%LLDB%%llvm37/lib/liblldbPluginDynamicLoaderPosixDYLD.a %%LLDB%%llvm37/lib/liblldbPluginDynamicLoaderStatic.a %%LLDB%%llvm37/lib/liblldbPluginDynamicLoaderWindowsDYLD.a %%LLDB%%llvm37/lib/liblldbPluginInstructionARM.a %%LLDB%%llvm37/lib/liblldbPluginInstructionARM64.a %%LLDB%%llvm37/lib/liblldbPluginInstructionMIPS.a %%LLDB%%llvm37/lib/liblldbPluginInstructionMIPS64.a %%LLDB%%llvm37/lib/liblldbPluginInstrumentationRuntimeAddressSanitizer.a %%LLDB%%llvm37/lib/liblldbPluginJITLoaderGDB.a %%LLDB%%llvm37/lib/liblldbPluginMemoryHistoryASan.a %%LLDB%%llvm37/lib/liblldbPluginOSPython.a %%LLDB%%llvm37/lib/liblldbPluginObjectContainerBSDArchive.a %%LLDB%%llvm37/lib/liblldbPluginObjectContainerMachOArchive.a %%LLDB%%llvm37/lib/liblldbPluginObjectFileELF.a %%LLDB%%llvm37/lib/liblldbPluginObjectFileJIT.a %%LLDB%%llvm37/lib/liblldbPluginObjectFileMachO.a %%LLDB%%llvm37/lib/liblldbPluginObjectFilePECOFF.a %%LLDB%%llvm37/lib/liblldbPluginPlatformAndroid.a %%LLDB%%llvm37/lib/liblldbPluginPlatformFreeBSD.a %%LLDB%%llvm37/lib/liblldbPluginPlatformGDB.a %%LLDB%%llvm37/lib/liblldbPluginPlatformKalimba.a %%LLDB%%llvm37/lib/liblldbPluginPlatformLinux.a %%LLDB%%llvm37/lib/liblldbPluginPlatformMacOSX.a %%LLDB%%llvm37/lib/liblldbPluginPlatformPOSIX.a %%LLDB%%llvm37/lib/liblldbPluginPlatformWindows.a %%LLDB%%llvm37/lib/liblldbPluginProcessElfCore.a %%LLDB%%llvm37/lib/liblldbPluginProcessFreeBSD.a %%LLDB%%llvm37/lib/liblldbPluginProcessGDBRemote.a %%LLDB%%llvm37/lib/liblldbPluginProcessMachCore.a %%LLDB%%llvm37/lib/liblldbPluginProcessPOSIX.a %%LLDB%%llvm37/lib/liblldbPluginProcessUtility.a %%LLDB%%llvm37/lib/liblldbPluginRenderScriptRuntime.a %%LLDB%%llvm37/lib/liblldbPluginSymbolFileDWARF.a %%LLDB%%llvm37/lib/liblldbPluginSymbolFileSymtab.a %%LLDB%%llvm37/lib/liblldbPluginSymbolVendorELF.a %%LLDB%%llvm37/lib/liblldbPluginSystemRuntimeMacOSX.a %%LLDB%%llvm37/lib/liblldbPluginUnwindAssemblyInstEmulation.a %%LLDB%%llvm37/lib/liblldbPluginUnwindAssemblyX86.a %%LLDB%%llvm37/lib/liblldbSymbol.a %%LLDB%%llvm37/lib/liblldbTarget.a %%LLDB%%llvm37/lib/liblldbUtility.a %%EXTRAS%%llvm37/lib/libmodernizeCore.so %%EXTRAS%%llvm37/lib/libmodernizeCore.so.%%LLVM_RELEASE%% %%EXTRAS%%llvm37/lib/libmodernizeCore.so.3.7 %%OPENMP%%llvm37/lib/libomp.so %%LLDB%%llvm37/lib/python2.7/site-packages/lldb/__init__.py %%LLDB%%llvm37/lib/python2.7/site-packages/lldb/_lldb.so %%LLDB%%llvm37/lib/python2.7/site-packages/lldb/argdumper %%LLDB%%llvm37/lib/python2.7/site-packages/lldb/embedded_interpreter.py %%LLDB%%llvm37/lib/python2.7/site-packages/lldb/formatters/Logger.py %%LLDB%%llvm37/lib/python2.7/site-packages/lldb/formatters/__init__.py %%LLDB%%llvm37/lib/python2.7/site-packages/lldb/formatters/attrib_fromdict.py %%LLDB%%llvm37/lib/python2.7/site-packages/lldb/formatters/cache.py %%LLDB%%llvm37/lib/python2.7/site-packages/lldb/formatters/cpp/__init__.py %%LLDB%%llvm37/lib/python2.7/site-packages/lldb/formatters/cpp/gnu_libstdcpp.py %%LLDB%%llvm37/lib/python2.7/site-packages/lldb/formatters/cpp/libcxx.py %%LLDB%%llvm37/lib/python2.7/site-packages/lldb/formatters/metrics.py %%LLDB%%llvm37/lib/python2.7/site-packages/lldb/runtime/__init__.py %%LLDB%%llvm37/lib/python2.7/site-packages/lldb/utils/__init__.py %%LLDB%%llvm37/lib/python2.7/site-packages/lldb/utils/symbolication.py +%%CLANG%%llvm37/libexec/c++-analyzer +%%CLANG%%llvm37/libexec/ccc-analyzer %%CLANG%%llvm37/share/clang/clang-format-bbedit.applescript %%CLANG%%llvm37/share/clang/clang-format-diff.py %%CLANG%%llvm37/share/clang/clang-format-sublime.py %%CLANG%%llvm37/share/clang/clang-format.el %%CLANG%%llvm37/share/clang/clang-format.py +%%EXTRAS%%llvm37/share/clang/clang-tidy-diff.py +%%EXTRAS%%llvm37/share/clang/run-clang-tidy.py llvm37/share/llvm/cmake/AddLLVM.cmake llvm37/share/llvm/cmake/AddLLVMDefinitions.cmake llvm37/share/llvm/cmake/AddOCaml.cmake llvm37/share/llvm/cmake/AddSphinxTarget.cmake llvm37/share/llvm/cmake/ChooseMSVCCRT.cmake llvm37/share/llvm/cmake/CrossCompile.cmake llvm37/share/llvm/cmake/FindOCaml.cmake llvm37/share/llvm/cmake/FindSphinx.cmake llvm37/share/llvm/cmake/GetSVN.cmake llvm37/share/llvm/cmake/HandleLLVMOptions.cmake llvm37/share/llvm/cmake/HandleLLVMStdlib.cmake llvm37/share/llvm/cmake/LLVM-Config.cmake llvm37/share/llvm/cmake/LLVMConfig.cmake llvm37/share/llvm/cmake/LLVMConfigVersion.cmake llvm37/share/llvm/cmake/LLVMExports-%%CMAKE_BUILD_TYPE%%.cmake llvm37/share/llvm/cmake/LLVMExports.cmake llvm37/share/llvm/cmake/LLVMProcessSources.cmake llvm37/share/llvm/cmake/TableGen.cmake +%%CLANG%%llvm37/share/scan-build/scanview.css +%%CLANG%%llvm37/share/scan-build/sorttable.js +%%CLANG%%llvm37/share/scan-view/FileRadar.scpt +%%CLANG%%llvm37/share/scan-view/GetRadarVersion.scpt +%%CLANG%%llvm37/share/scan-view/Reporter.py +%%CLANG%%llvm37/share/scan-view/ScanView.py +%%CLANG%%llvm37/share/scan-view/bugcatcher.ico +%%CLANG%%llvm37/share/scan-view/startfile.py %%LIT%%%%PYTHON_SITELIBDIR%%/lit37/LitConfig.py %%LIT%%%%PYTHON_SITELIBDIR%%/lit37/LitTestCase.py %%LIT%%%%PYTHON_SITELIBDIR%%/lit37/ProgressBar.py %%LIT%%%%PYTHON_SITELIBDIR%%/lit37/ShCommands.py %%LIT%%%%PYTHON_SITELIBDIR%%/lit37/ShUtil.py %%LIT%%%%PYTHON_SITELIBDIR%%/lit37/Test.py %%LIT%%%%PYTHON_SITELIBDIR%%/lit37/TestRunner.py %%LIT%%%%PYTHON_SITELIBDIR%%/lit37/TestingConfig.py %%LIT%%%%PYTHON_SITELIBDIR%%/lit37/__init__.py %%LIT%%%%PYTHON_SITELIBDIR%%/lit37/discovery.py %%LIT%%%%PYTHON_SITELIBDIR%%/lit37/main.py %%LIT%%%%PYTHON_SITELIBDIR%%/lit37/run.py %%LIT%%%%PYTHON_SITELIBDIR%%/lit37/util.py