diff options
author | Baptiste Daroussin <bapt@FreeBSD.org> | 2017-04-01 13:29:14 +0000 |
---|---|---|
committer | Baptiste Daroussin <bapt@FreeBSD.org> | 2017-04-01 13:29:14 +0000 |
commit | aef5472d832fb0e83e624316fe1d2ab45ddf315d (patch) | |
tree | 5dd7a5d10ff5e646cbcbf5c84cdc3931873bd35c | |
parent | ba900c6b38c30f16aebdc1fbe28883f6ab1a5860 (diff) | |
download | ports-aef5472d832fb0e83e624316fe1d2ab45ddf315d.tar.gz ports-aef5472d832fb0e83e624316fe1d2ab45ddf315d.zip |
Notes
23 files changed, 0 insertions, 9267 deletions
diff --git a/devel/llvm37/Makefile b/devel/llvm37/Makefile deleted file mode 100644 index d5bc595c9c9b..000000000000 --- a/devel/llvm37/Makefile +++ /dev/null @@ -1,456 +0,0 @@ -# $FreeBSD$ - -PORTNAME= llvm -DISTVERSION= 3.7.1 -PORTREVISION= 5 -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 shebangfix 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 -# Following commit https://github.com/kitware/cmake/commit/956054 -# we need to either change the whole man-shuffle below, or simply -# redefine CMAKE_INSTALL_MANDIR -CMAKE_ARGS+= -DCMAKE_INSTALL_MANDIR:PATH="share/man" - -OPTIONS_DEFINE= CLANG COMPILER_RT DOCS EXTRAS LIT LLD LLDB -OPTIONS_DEFINE_amd64= OPENMP GOLD -OPTIONS_DEFAULT= CLANG EXTRAS LIT LLD LLDB -OPTIONS_DEFAULT_amd64= COMPILER_RT GOLD 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 \ - ${PATCHDIR}/compiler-rt-patch-svn-294806 -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: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} -OPENMP_EXTRA_PATCHES= \ - ${PATCHDIR}/openmp-patch-bug32279 \ - ${PATCHDIR}/openmp-patch-tools_openmp_runtime_tools_expand-vars.pl -GOLD_DESC= Build the LLVM Gold plugin for LTO -GOLD_CMAKE_ON= -DLLVM_BINUTILS_INCDIR=${LOCALBASE}/include -GOLD_BUILD_DEPENDS= ${LOCALBASE}/bin/ld.gold: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: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 <bsd.port.options.mk> - -# 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 \ - 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} -SHEBANG_FILES+= tools/clang/tools/extra/clang-tidy/tool/clang-tidy-diff.py -.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:MGOLD} -# Hack to disable GOLD in plist of unsupported architectures -PLIST_SUB+= GOLD="@comment " -.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 <bsd.port.pre.mk> - -.if ${PYTHON_REL} < 3400 -LLDB_BUILD_DEPENDS+= \ - ${PYTHON_PKGNAMEPREFIX}enum34>0: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} ${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_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} ${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 -.if make(svn-patch-llvm) -.if !defined(PATCH_REV) -.error svn-patch-llvm requires that PATCH_REV be set -.endif -_PATCH_FILE=${FILESDIR}/patch-llvm-svn-${PATCH_REV} -_LLVM_BASE=http://llvm.org/svn/llvm-project/llvm/trunk -svn-patch-llvm: - svn log -c ${PATCH_REV} ${_LLVM_BASE} >> ${_PATCH_FILE} - svn diff -c ${PATCH_REV} ${_LLVM_BASE} >> ${_PATCH_FILE} -.endif - - -.include <bsd.port.post.mk> diff --git a/devel/llvm37/distinfo b/devel/llvm37/distinfo deleted file mode 100644 index fb86c8f825b5..000000000000 --- a/devel/llvm37/distinfo +++ /dev/null @@ -1,14 +0,0 @@ -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 diff --git a/devel/llvm37/files/clang-patch-fformat_extensions.diff b/devel/llvm37/files/clang-patch-fformat_extensions.diff deleted file mode 100644 index 4e62dcf46d9f..000000000000 --- a/devel/llvm37/files/clang-patch-fformat_extensions.diff +++ /dev/null @@ -1,45 +0,0 @@ -diff -ruN tools/clang/include/clang/Basic/LangOptions.def tools/clang/include/clang/Basic/LangOptions.def ---- tools/clang/include/clang/Basic/LangOptions.def 2015-07-30 22:47:41 UTC -+++ tools/clang/include/clang/Basic/LangOptions.def -@@ -114,6 +114,7 @@ - LANGOPT(RTTIData , 1, 1, "emit run-time type information data") - LANGOPT(MSBitfields , 1, 0, "Microsoft-compatible structure layout") - LANGOPT(Freestanding, 1, 0, "freestanding implementation") -+LANGOPT(FormatExtensions , 1, 0, "FreeBSD format extensions") - LANGOPT(NoBuiltin , 1, 0, "disable builtin functions") - LANGOPT(NoMathBuiltin , 1, 0, "disable math builtin functions") - LANGOPT(GNUAsm , 1, 1, "GNU-style inline assembly") -diff -ruN tools/clang/include/clang/Driver/Options.td tools/clang/include/clang/Driver/Options.td ---- tools/clang/include/clang/Driver/Options.td 2015-07-30 22:47:41 UTC -+++ tools/clang/include/clang/Driver/Options.td -@@ -644,6 +644,8 @@ - - def ffreestanding : Flag<["-"], "ffreestanding">, Group<f_Group>, Flags<[CC1Option]>, - HelpText<"Assert that the compilation takes place in a freestanding environment">; -+def fformat_extensions: Flag<["-"], "fformat-extensions">, Group<f_Group>, Flags<[CC1Option]>, -+ HelpText<"Enable FreeBSD kernel specific format string extensions">; - def fgnu_keywords : Flag<["-"], "fgnu-keywords">, Group<f_Group>, Flags<[CC1Option]>, - HelpText<"Allow GNU-extension keywords regardless of language standard">; - def fgnu89_inline : Flag<["-"], "fgnu89-inline">, Group<f_Group>, Flags<[CC1Option]>, -diff -ruN tools/clang/lib/Driver/Tools.cpp tools/clang/lib/Driver/Tools.cpp ---- tools/clang/lib/Driver/Tools.cpp 2015-07-30 22:47:41 UTC -+++ tools/clang/lib/Driver/Tools.cpp -@@ -4045,6 +4045,7 @@ - - // Forward -f (flag) options which we can pass directly. - Args.AddLastArg(CmdArgs, options::OPT_femit_all_decls); -+ Args.AddLastArg(CmdArgs, options::OPT_fformat_extensions); - Args.AddLastArg(CmdArgs, options::OPT_fheinous_gnu_extensions); - Args.AddLastArg(CmdArgs, options::OPT_fstandalone_debug); - Args.AddLastArg(CmdArgs, options::OPT_fno_standalone_debug); -diff -ruN tools/clang/lib/Frontend/CompilerInvocation.cpp tools/clang/lib/Frontend/CompilerInvocation.cpp ---- tools/clang/lib/Frontend/CompilerInvocation.cpp 2015-07-30 22:47:41 UTC -+++ tools/clang/lib/Frontend/CompilerInvocation.cpp -@@ -1543,6 +1543,7 @@ - Opts.ShortWChar = Args.hasFlag(OPT_fshort_wchar, OPT_fno_short_wchar, false); - Opts.ShortEnums = Args.hasArg(OPT_fshort_enums); - Opts.Freestanding = Args.hasArg(OPT_ffreestanding); -+ Opts.FormatExtensions = Args.hasArg(OPT_fformat_extensions); - Opts.NoBuiltin = Args.hasArg(OPT_fno_builtin) || Opts.Freestanding; - Opts.NoMathBuiltin = Args.hasArg(OPT_fno_math_builtin); - Opts.AssumeSaneOperatorNew = !Args.hasArg(OPT_fno_assume_sane_operator_new); diff --git a/devel/llvm37/files/clang-patch-static-analizer.diff b/devel/llvm37/files/clang-patch-static-analizer.diff deleted file mode 100644 index f57e0efe04a4..000000000000 --- a/devel/llvm37/files/clang-patch-static-analizer.diff +++ /dev/null @@ -1,5332 +0,0 @@ -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 (<RIN>) { -+ 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 (<IN>) { -+ last if (/<!-- BUGMETAEND -->/); -+ -+ if (/<!-- BUGTYPE (.*) -->$/) { -+ $BugType = $1; -+ } -+ elsif (/<!-- BUGFILE (.*) -->$/) { -+ $BugFile = abs_path($1); -+ if (!defined $BugFile) { -+ # The file no longer exists: use the original path. -+ $BugFile = $1; -+ } -+ UpdatePrefix($BugFile); -+ } -+ elsif (/<!-- BUGPATHLENGTH (.*) -->$/) { -+ $BugPathLength = $1; -+ } -+ elsif (/<!-- BUGLINE (.*) -->$/) { -+ $BugLine = $1; -+ } -+ elsif (/<!-- BUGCATEGORY (.*) -->$/) { -+ $BugCategory = $1; -+ } -+ elsif (/<!-- BUGDESC (.*) -->$/) { -+ $BugDescription = $1; -+ } -+ elsif (/<!-- FUNCTIONNAME (.*) -->$/) { -+ $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 = <IN>; -+ 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 <<ENDTEXT; -+<html> -+<head> -+<title>${Options{HtmlTitle}}</title> -+<link type="text/css" rel="stylesheet" href="scanview.css"/> -+<script src="sorttable.js"></script> -+<script language='javascript' type="text/javascript"> -+function SetDisplay(RowClass, DisplayVal) -+{ -+ var Rows = document.getElementsByTagName("tr"); -+ for ( var i = 0 ; i < Rows.length; ++i ) { -+ if (Rows[i].className == RowClass) { -+ Rows[i].style.display = DisplayVal; -+ } -+ } -+} -+ -+function CopyCheckedStateToCheckButtons(SummaryCheckButton) { -+ var Inputs = document.getElementsByTagName("input"); -+ for ( var i = 0 ; i < Inputs.length; ++i ) { -+ if (Inputs[i].type == "checkbox") { -+ if(Inputs[i] != SummaryCheckButton) { -+ Inputs[i].checked = SummaryCheckButton.checked; -+ Inputs[i].onclick(); -+ } -+ } -+ } -+} -+ -+function returnObjById( id ) { -+ if (document.getElementById) -+ var returnVar = document.getElementById(id); -+ else if (document.all) -+ var returnVar = document.all[id]; -+ else if (document.layers) -+ var returnVar = document.layers[id]; -+ return returnVar; -+} -+ -+var NumUnchecked = 0; -+ -+function ToggleDisplay(CheckButton, ClassName) { -+ if (CheckButton.checked) { -+ SetDisplay(ClassName, ""); -+ if (--NumUnchecked == 0) { -+ returnObjById("AllBugsCheck").checked = true; -+ } -+ } -+ else { -+ SetDisplay(ClassName, "none"); -+ NumUnchecked++; -+ returnObjById("AllBugsCheck").checked = false; -+ } -+} -+</script> -+<!-- SUMMARYENDHEAD --> -+</head> -+<body> -+<h1>${Options{HtmlTitle}}</h1> -+ -+<table> -+<tr><th>User:</th><td>${UserName}\@${HostName}</td></tr> -+<tr><th>Working Directory:</th><td>${CurrentDir}</td></tr> -+<tr><th>Command Line:</th><td>${CmdArgs}</td></tr> -+<tr><th>Clang Version:</th><td>${ClangVersion}</td></tr> -+<tr><th>Date:</th><td>${Date}</td></tr> -+ENDTEXT -+ -+print OUT "<tr><th>Version:</th><td>${BuildName} (${BuildDate})</td></tr>\n" -+ if (defined($BuildName) && defined($BuildDate)); -+ -+print OUT <<ENDTEXT; -+</table> -+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 "<h2>Bug Summary</h2>"; -+ -+ if (defined $BuildName) { -+ print OUT "\n<p>Results in this analysis run are based on analyzer build <b>$BuildName</b>.</p>\n" -+ } -+ -+ my $TotalBugs = scalar(@Index); -+print OUT <<ENDTEXT; -+<table> -+<thead><tr><td>Bug Type</td><td>Quantity</td><td class="sorttable_nosort">Display?</td></tr></thead> -+<tr style="font-weight:bold"><td class="SUMM_DESC">All Bugs</td><td class="Q">$TotalBugs</td><td><center><input type="checkbox" id="AllBugsCheck" onClick="CopyCheckedStateToCheckButtons(this);" checked/></center></td></tr> -+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 "<tr><th>$category</th><th colspan=2></th></tr>\n"; -+ } -+ my $x = lc $key; -+ $x =~ s/[ ,'":\/()]+/_/g; -+ print OUT "<tr><td class=\"SUMM_DESC\">"; -+ print OUT $val->[2]; -+ print OUT "</td><td class=\"Q\">"; -+ print OUT $val->[0]; -+ print OUT "</td><td><center><input type=\"checkbox\" onClick=\"ToggleDisplay(this,'bt_$x');\" checked/></center></td></tr>\n"; -+ } -+ -+ # Print out the table of errors. -+ -+print OUT <<ENDTEXT; -+</table> -+<h2>Reports</h2> -+ -+<table class="sortable" style="table-layout:automatic"> -+<thead><tr> -+ <td>Bug Group</td> -+ <td class="sorttable_sorted">Bug Type<span id="sorttable_sortfwdind"> ▾</span></td> -+ <td>File</td> -+ <td>Function/Method</td> -+ <td class="Q">Line</td> -+ <td class="Q">Path Length</td> -+ <td class="sorttable_nosort"></td> -+ <!-- REPORTBUGCOL --> -+</tr></thead> -+<tbody> -+ENDTEXT -+ -+ my $prefix = GetPrefix(); -+ my $regex; -+ my $InFileRegex; -+ my $InFilePrefix = "File:</td><td>"; -+ -+ 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 "<tr class=\"bt_$x\">"; -+ print OUT "<td class=\"DESC\">"; -+ print OUT $row->[1]; -+ print OUT "</td>"; -+ print OUT "<td class=\"DESC\">"; -+ print OUT $row->[2]; -+ print OUT "</td>"; -+ -+ # Update the file prefix. -+ my $fname = $row->[3]; -+ -+ if (defined $regex) { -+ $fname =~ s/$regex//; -+ UpdateInFilePath("$Dir/$ReportFile", $InFileRegex, $InFilePrefix) -+ } -+ -+ print OUT "<td>"; -+ 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 "</td>"; -+ -+ print OUT "<td class=\"DESC\">"; -+ print OUT $row->[4]; -+ print OUT "</td>"; -+ -+ # Print out the quantities. -+ for my $j ( 5 .. 6 ) { -+ print OUT "<td class=\"Q\">$row->[$j]</td>"; -+ } -+ -+ # Print the rest of the columns. -+ for (my $j = 7; $j <= $#{$row}; ++$j) { -+ print OUT "<td>$row->[$j]</td>" -+ } -+ -+ # Emit the "View" link. -+ print OUT "<td><a href=\"$ReportFile#EndPath\">View Report</a></td>"; -+ -+ # Emit REPORTBUG markers. -+ print OUT "\n<!-- REPORTBUG id=\"$ReportFile\" -->\n"; -+ -+ # End the row. -+ print OUT "</tr>\n"; -+ } -+ -+ print OUT "</tbody>\n</table>\n\n"; -+ } -+ -+ if (scalar (@failures) || scalar(@attributes_ignored)) { -+ print OUT "<h2>Analyzer Failures</h2>\n"; -+ -+ if (scalar @attributes_ignored) { -+ print OUT "The analyzer's parser ignored the following attributes:<p>\n"; -+ print OUT "<table>\n"; -+ print OUT "<thead><tr><td>Attribute</td><td>Source File</td><td>Preprocessed File</td><td>STDERR Output</td></tr></thead>\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 = <ATTR>; -+ 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 = <INFO>; -+ chomp $srcfile; -+ close (INFO); -+ # Print the information in the table. -+ my $prefix = GetPrefix(); -+ if (defined $prefix) { $srcfile =~ s/^\Q$prefix//; } -+ print OUT "<tr><td>$attribute</td><td>$srcfile</td><td><a href=\"failures/$ppfile\">$ppfile</a></td><td><a href=\"failures/$ppfile.stderr.txt\">$ppfile.stderr.txt</a></td></tr>\n"; -+ my $ppfile_clang = $ppfile; -+ $ppfile_clang =~ s/[.](.+)$/.clang.$1/; -+ print OUT " <!-- REPORTPROBLEM src=\"$srcfile\" file=\"failures/$ppfile\" clangfile=\"failures/$ppfile_clang\" stderr=\"failures/$ppfile.stderr.txt\" info=\"failures/$ppfile.info.txt\" -->\n"; -+ } -+ print OUT "</table>\n"; -+ } -+ -+ if (scalar @failures) { -+ print OUT "<p>The analyzer had problems processing the following files:</p>\n"; -+ print OUT "<table>\n"; -+ print OUT "<thead><tr><td>Problem</td><td>Source File</td><td>Preprocessed File</td><td>STDERR Output</td></tr></thead>\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 = <INFO>; -+ chomp $srcfile; -+ my $problem = <INFO>; -+ chomp $problem; -+ close (INFO); -+ # Print the information in the table. -+ my $prefix = GetPrefix(); -+ if (defined $prefix) { $srcfile =~ s/^\Q$prefix//; } -+ print OUT "<tr><td>$problem</td><td>$srcfile</td><td><a href=\"failures/$ppfile\">$ppfile</a></td><td><a href=\"failures/$ppfile.stderr.txt\">$ppfile.stderr.txt</a></td></tr>\n"; -+ my $ppfile_clang = $ppfile; -+ $ppfile_clang =~ s/[.](.+)$/.clang.$1/; -+ print OUT " <!-- REPORTPROBLEM src=\"$srcfile\" file=\"failures/$ppfile\" clangfile=\"failures/$ppfile_clang\" stderr=\"failures/$ppfile.stderr.txt\" info=\"failures/$ppfile.info.txt\" -->\n"; -+ } -+ print OUT "</table>\n"; -+ } -+ print OUT "<p>Please consider submitting preprocessed files as <a href=\"http://clang-analyzer.llvm.org/filing_bugs.html\">bug reports</a>. <!-- REPORTCRASHES --> </p>\n"; -+ } -+ -+ print OUT "</body></html>\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(<DETECT_XCODE>) { -+ 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 <<ENDTEXT; -+USAGE: $Prog [options] <build command> [build options] -+ -+ENDTEXT -+ -+ if (defined $BuildName) { -+ print "ANALYZER BUILD: $BuildName ($BuildDate)\n\n"; -+ } -+ -+print <<ENDTEXT; -+OPTIONS: -+ -+ -analyze-headers -+ -+ Also analyze functions in #included files. By default, such functions -+ are skipped unless they are called by functions within the main source file. -+ -+ -o <output location> -+ -+ 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 <loop count> -+ -+ 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 <options> -+ -+ 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-<filename>-<function/method name>-<id>.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 (<PS>) { -+ 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 (<PS>) { -+ 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(<PS>) { -+ 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 <<ENDTEXT -+ -+BUILD OPTIONS -+ -+ You can specify any build option acceptable to the build command. -+ -+EXAMPLE -+ -+ scan-build -o /tmp/myhtmldir make -j4 -+ -+The above example causes analysis reports to be deposited into a subdirectory -+of "/tmp/myhtmldir" and to run "make" with the "-j4" option. A different -+subdirectory is created each time scan-build analyzes a project. The analyzer -+should support most parallel builds, but not distributed builds. -+ -+ENDTEXT -+} -+ -+##----------------------------------------------------------------------------## -+# HtmlEscape - HTML entity encode characters that are special in HTML -+##----------------------------------------------------------------------------## -+ -+sub HtmlEscape { -+ # copy argument to new variable so we don't clobber the original -+ my $arg = shift || ''; -+ my $tmp = $arg; -+ $tmp =~ s/&/&/g; -+ $tmp =~ s/</</g; -+ $tmp =~ s/>/>/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 (<CHILD>) { -+ 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 (<IN>) { 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 <script src="sorttable.js"></script> 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; i<table.rows.length; i++) { -+ if (table.rows[i].className.search(/\bsortbottom\b/) != -1) { -+ sortbottomrows[sortbottomrows.length] = table.rows[i]; -+ } -+ } -+ if (sortbottomrows) { -+ if (table.tFoot == null) { -+ // table doesn't have a tfoot. Create one. -+ tfo = document.createElement('tfoot'); -+ table.appendChild(tfo); -+ } -+ for (var i=0; i<sortbottomrows.length; i++) { -+ tfo.appendChild(sortbottomrows[i]); -+ } -+ delete sortbottomrows; -+ } -+ -+ // work through each column and calculate its type -+ headrow = table.tHead.rows[0].cells; -+ for (var i=0; i<headrow.length; i++) { -+ // manually override the type with a sorttable_type attribute -+ if (!headrow[i].className.match(/\bsorttable_nosort\b/)) { // skip this col -+ mtch = headrow[i].className.match(/\bsorttable_([a-z0-9]+)\b/); -+ if (mtch) { override = mtch[1]; } -+ if (mtch && typeof sorttable["sort_"+override] == 'function') { -+ headrow[i].sorttable_sortfunction = sorttable["sort_"+override]; -+ } else { -+ headrow[i].sorttable_sortfunction = sorttable.guessType(table,i); -+ } -+ // make it clickable to sort -+ headrow[i].sorttable_columnindex = i; -+ headrow[i].sorttable_tbody = table.tBodies[0]; -+ dean_addEvent(headrow[i],"click", function(e) { -+ -+ if (this.className.search(/\bsorttable_sorted\b/) != -1) { -+ // if we're already sorted by this column, just -+ // reverse the table, which is quicker -+ sorttable.reverse(this.sorttable_tbody); -+ this.className = this.className.replace('sorttable_sorted', -+ 'sorttable_sorted_reverse'); -+ this.removeChild(document.getElementById('sorttable_sortfwdind')); -+ sortrevind = document.createElement('span'); -+ sortrevind.id = "sorttable_sortrevind"; -+ sortrevind.innerHTML = stIsIE ? ' <font face="webdings">5</font>' : ' ▴'; -+ 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 ? ' <font face="webdings">6</font>' : ' ▾'; -+ 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 ? ' <font face="webdings">6</font>' : ' ▾'; -+ 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<rows.length; j++) { -+ row_array[row_array.length] = [sorttable.getInnerText(rows[j].cells[col]), rows[j]]; -+ } -+ /* If you want a stable sort, uncomment the following line */ -+ sorttable.shaker_sort(row_array, this.sorttable_sortfunction); -+ /* and comment out this one */ -+ //row_array.sort(this.sorttable_sortfunction); -+ -+ tb = this.sorttable_tbody; -+ for (var j=0; j<row_array.length; j++) { -+ tb.appendChild(row_array[j][1]); -+ } -+ -+ delete row_array; -+ }); -+ } -+ } -+ }, -+ -+ guessType: function(table, column) { -+ // guess the type of a column based on its first non-blank row -+ sortfn = sorttable.sort_alpha; -+ for (var i=0; i<table.tBodies[0].rows.length; i++) { -+ text = sorttable.getInnerText(table.tBodies[0].rows[i].cells[column]); -+ if (text != '') { -+ if (text.match(/^-?[£$¤]?[\d,.]+%?$/)) { -+ return sorttable.sort_numeric; -+ } -+ // check for a date: dd/mm/yyyy or dd/mm/yy -+ // can have / or . or - as separator -+ // can be mm/dd as well -+ possdate = text.match(sorttable.DATE_RE) -+ if (possdate) { -+ // looks like a date -+ first = parseInt(possdate[1]); -+ second = parseInt(possdate[2]); -+ if (first > 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 <input> 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<tbody.rows.length; i++) { -+ newrows[newrows.length] = tbody.rows[i]; -+ } -+ for (var i=newrows.length-1; 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]<b[0]) return -1; -+ return 1; -+ }, -+ sort_ddmm: function(a,b) { -+ mtch = a[0].match(sorttable.DATE_RE); -+ y = mtch[3]; m = mtch[2]; d = mtch[1]; -+ if (m.length == 1) m = '0'+m; -+ if (d.length == 1) d = '0'+d; -+ dt1 = y+m+d; -+ mtch = b[0].match(sorttable.DATE_RE); -+ y = mtch[3]; m = mtch[2]; d = mtch[1]; -+ if (m.length == 1) m = '0'+m; -+ if (d.length == 1) d = '0'+d; -+ dt2 = y+m+d; -+ if (dt1==dt2) return 0; -+ if (dt1<dt2) return -1; -+ return 1; -+ }, -+ sort_mmdd: function(a,b) { -+ mtch = a[0].match(sorttable.DATE_RE); -+ y = mtch[3]; d = mtch[2]; m = mtch[1]; -+ if (m.length == 1) m = '0'+m; -+ if (d.length == 1) d = '0'+d; -+ dt1 = y+m+d; -+ mtch = b[0].match(sorttable.DATE_RE); -+ y = mtch[3]; d = mtch[2]; m = mtch[1]; -+ if (m.length == 1) m = '0'+m; -+ if (d.length == 1) d = '0'+d; -+ dt2 = y+m+d; -+ if (dt1==dt2) return 0; -+ if (dt1<dt2) return -1; -+ return 1; -+ }, -+ -+ shaker_sort: function(list, comp_func) { -+ // A stable sort function to allow multi-level sorting of data -+ // see: http://en.wikipedia.org/wiki/Cocktail_sort -+ // thanks to Joseph Nahmias -+ var b = 0; -+ var t = list.length - 1; -+ var swap = true; -+ -+ while(swap) { -+ swap = false; -+ for(var i = b; i < t; ++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 -+ 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("<script id=__ie_onload defer src=javascript:void(0)><\/script>"); -+ var script = document.getElementById("__ie_onload"); -+ script.onreadystatechange = function() { -+ if (this.readyState == "complete") { -+ sorttable.init(); // call the onload handler -+ } -+ }; -+/*@end @*/ -+ -+/* for Safari */ -+if (/WebKit/i.test(navigator.userAgent)) { // sniff -+ var _timer = setInterval(function() { -+ if (/loaded|complete/.test(document.readyState)) { -+ sorttable.init(); // call the onload handler -+ } -+ }, 10); -+} -+ -+/* for other browsers */ -+window.onload = sorttable.init; -+ -+// written by Dean Edwards, 2005 -+// with input from Tino Zijdel, Matthias Miller, Diego Perini -+ -+// http://dean.edwards.name/weblog/2005/10/add-event/ -+ -+function dean_addEvent(element, type, handler) { -+ if (element.addEventListener) { -+ element.addEventListener(type, handler, false); -+ } else { -+ // assign each event handler a unique ID -+ if (!handler.$$guid) handler.$$guid = dean_addEvent.guid++; -+ // create a hash table of event types for the element -+ if (!element.events) element.events = {}; -+ // create a hash table of event handlers for each element/event pair -+ var handlers = element.events[type]; -+ if (!handlers) { -+ handlers = element.events[type] = {}; -+ // store the existing event handler (if there is one) -+ if (element["on" + type]) { -+ handlers[0] = element["on" + type]; -+ } -+ } -+ // store the event handler in the hash table -+ handlers[handler.$$guid] = handler; -+ // assign a global event handler to do all the work -+ element["on" + type] = handleEvent; -+ } -+}; -+// a counter used to create unique IDs -+dean_addEvent.guid = 1; -+ -+function removeEvent(element, type, handler) { -+ if (element.removeEventListener) { -+ element.removeEventListener(type, handler, false); -+ } else { -+ // delete the event handler from the hash table -+ if (element.events && element.events[type]) { -+ delete element.events[type][handler.$$guid]; -+ } -+ } -+}; -+ -+function handleEvent(event) { -+ var returnValue = true; -+ // grab the event object (IE uses a global event object) -+ event = event || fixEvent(((this.ownerDocument || this.document || this).parentWindow || window).event); -+ // get a reference to the hash table of event handlers -+ var handlers = this.events[event.type]; -+ // execute each event handler -+ for (var i in handlers) { -+ this.$$handleEvent = handlers[i]; -+ if (this.$$handleEvent(event) === false) { -+ returnValue = false; -+ } -+ } -+ return returnValue; -+}; -+ -+function fixEvent(event) { -+ // add W3C standard event methods -+ event.preventDefault = fixEvent.preventDefault; -+ event.stopPropagation = fixEvent.stopPropagation; -+ return event; -+}; -+fixEvent.preventDefault = function() { -+ this.returnValue = false; -+}; -+fixEvent.stopPropagation = function() { -+ this.cancelBubble = true; -+} -+ -+// Dean's forEach: http://dean.edwards.name/base/forEach.js -+/* -+ forEach, version 1.0 -+ Copyright 2006, Dean Edwards -+ License: http://www.opensource.org/licenses/mit-license.php -+*/ -+ -+// array-like enumeration -+if (!Array.forEach) { // mozilla already supports this -+ Array.forEach = function(array, block, context) { -+ for (var i = 0; i < array.length; i++) { -+ block.call(context, array[i], i, array); -+ } -+ }; -+} -+ -+// generic enumeration -+Function.prototype.forEach = function(object, block, context) { -+ for (var key in object) { -+ if (typeof this.prototype[key] == "undefined") { -+ block.call(context, object[key], key, object); -+ } -+ } -+}; -+ -+// character enumeration -+String.forEach = function(string, block, context) { -+ Array.forEach(string.split(""), function(chr, index) { -+ block.call(context, chr, index, string); -+ }); -+}; -+ -+// globally resolve forEach enumeration -+var forEach = function(object, block, context) { -+ if (object) { -+ var resolve = Object; // default -+ if (object instanceof Function) { -+ // functions have a "length" property -+ resolve = Function; -+ } else if (object.forEach instanceof Function) { -+ // the object implements a custom forEach method so use that -+ object.forEach(block, context); -+ return; -+ } else if (typeof object == "string") { -+ // the object is a string -+ resolve = String; -+ } else if (typeof object.length == "number") { -+ // the object is array-like -+ resolve = Array; -+ } -+ resolve.forEach(object, block, context); -+ } -+}; -diff --git tools/clang/tools/scan-view/CMakeLists.txt tools/clang/tools/scan-view/CMakeLists.txt.orig -new file mode 100644 -index 0000000..b305ca5 ---- /dev/null -+++ tools/clang/tools/scan-view/CMakeLists.txt -@@ -0,0 +1,41 @@ -+option(CLANG_INSTALL_SCANVIEW "Install the scan-view tool" ON) -+ -+set(BinFiles -+ scan-view) -+ -+set(ShareFiles -+ ScanView.py -+ Reporter.py -+ startfile.py -+ FileRadar.scpt -+ GetRadarVersion.scpt -+ bugcatcher.ico) -+ -+if(CLANG_INSTALL_SCANVIEW) -+ 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(ShareFile ${ShareFiles}) -+ add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/share/scan-view/${ShareFile} -+ COMMAND ${CMAKE_COMMAND} -E make_directory -+ ${CMAKE_BINARY_DIR}/share/scan-view -+ COMMAND ${CMAKE_COMMAND} -E copy -+ ${CMAKE_CURRENT_SOURCE_DIR}/share/${ShareFile} -+ ${CMAKE_BINARY_DIR}/share/scan-view/ -+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/share/${ShareFile}) -+ list(APPEND Depends ${CMAKE_BINARY_DIR}/share/scan-view/${ShareFile}) -+ install(FILES share/${ShareFile} DESTINATION share/scan-view) -+ endforeach() -+ -+ add_custom_target(scan-view ALL DEPENDS ${Depends}) -+ set_target_properties(scan-view PROPERTIES FOLDER "Misc") -+endif() -diff --git tools/clang/tools/scan-view/Makefile tools/clang/tools/scan-view/Makefile.orig -new file mode 100644 -index 0000000..37e4404 ---- /dev/null -+++ tools/clang/tools/scan-view/Makefile -@@ -0,0 +1,37 @@ -+##===- tools/scan-view/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 -+ -+CLANG_INSTALL_SCANVIEW ?= 1 -+ -+ifeq ($(CLANG_INSTALL_SCANVIEW), 1) -+ InstallTargets := $(ToolDir)/scan-view \ -+ $(ShareDir)/scan-view/Reporter.py \ -+ $(ShareDir)/scan-view/ScanView.py \ -+ $(ShareDir)/scan-view/startfile.py \ -+ $(ShareDir)/scan-view/FileRadar.scpt \ -+ $(ShareDir)/scan-view/GetRadarVersion.scpt \ -+ $(ShareDir)/scan-view/bugcatcher.ico -+endif -+ -+all:: $(InstallTargets) -+ -+$(ToolDir)/%: bin/% Makefile $(ToolDir)/.dir -+ $(Echo) "Copying $(notdir $<) to the 'bin' directory..." -+ $(Verb)cp $< $@ -+ $(Verb)chmod +x $@ -+ -+$(ShareDir)/scan-view/%: share/% Makefile $(ShareDir)/scan-view/.dir -+ $(Echo) "Copying $(notdir $<) to the 'share' directory..." -+ $(Verb)cp $< $@ -+ -diff --git tools/clang/tools/scan-view/bin/scan-view tools/clang/tools/scan-view/bin/scan-view.orig -new file mode 100755 -index 0000000..1b6e8ba ---- /dev/null -+++ tools/clang/tools/scan-view/bin/scan-view -@@ -0,0 +1,143 @@ -+#!/usr/bin/env python -+ -+"""The clang static analyzer results viewer. -+""" -+ -+import sys -+import imp -+import os -+import posixpath -+import thread -+import time -+import urllib -+import webbrowser -+ -+# How long to wait for server to start. -+kSleepTimeout = .05 -+kMaxSleeps = int(60 / kSleepTimeout) -+ -+# Default server parameters -+ -+kDefaultHost = '127.0.0.1' -+kDefaultPort = 8181 -+kMaxPortsToTry = 100 -+ -+### -+ -+ -+def url_is_up(url): -+ try: -+ o = urllib.urlopen(url) -+ except IOError: -+ return False -+ o.close() -+ return True -+ -+ -+def start_browser(port, options): -+ import urllib -+ import webbrowser -+ -+ url = 'http://%s:%d' % (options.host, port) -+ -+ # Wait for server to start... -+ if options.debug: -+ sys.stderr.write('%s: Waiting for server.' % sys.argv[0]) -+ sys.stderr.flush() -+ for i in range(kMaxSleeps): -+ if url_is_up(url): -+ break -+ if options.debug: -+ sys.stderr.write('.') -+ sys.stderr.flush() -+ time.sleep(kSleepTimeout) -+ else: -+ print >> sys.stderr, 'WARNING: Unable to detect that server started.' -+ -+ if options.debug: -+ print >> sys.stderr, '%s: Starting webbrowser...' % sys.argv[0] -+ webbrowser.open(url) -+ -+ -+def run(port, options, root): -+ # Prefer to look relative to the installed binary -+ share = os.path.dirname(__file__) + "/../share/scan-view" -+ if not os.path.isdir(share): -+ # Otherwise look relative to the source -+ share = os.path.dirname(__file__) + "/../../scan-view/share" -+ sys.path.append(share) -+ -+ import ScanView -+ try: -+ print 'Starting scan-view at: http://%s:%d' % (options.host, -+ port) -+ print ' Use Ctrl-C to exit.' -+ httpd = ScanView.create_server((options.host, port), -+ options, root) -+ httpd.serve_forever() -+ except KeyboardInterrupt: -+ pass -+ -+ -+def port_is_open(port): -+ import SocketServer -+ try: -+ t = SocketServer.TCPServer((kDefaultHost, port), None) -+ except: -+ return False -+ t.server_close() -+ return True -+ -+ -+def main(): -+ import argparse -+ parser = argparse.ArgumentParser(description="The clang static analyzer " -+ "results viewer.") -+ parser.add_argument("root", metavar="<results directory>", type=str) -+ parser.add_argument( -+ '--host', dest="host", default=kDefaultHost, type=str, -+ help="Host interface to listen on. (default=%s)" % kDefaultHost) -+ parser.add_argument('--port', dest="port", default=None, type=int, -+ help="Port to listen on. (default=%s)" % kDefaultPort) -+ parser.add_argument("--debug", dest="debug", default=0, -+ action="count", -+ help="Print additional debugging information.") -+ parser.add_argument("--auto-reload", dest="autoReload", default=False, -+ action="store_true", -+ help="Automatically update module for each request.") -+ parser.add_argument("--no-browser", dest="startBrowser", default=True, -+ action="store_false", -+ help="Don't open a webbrowser on startup.") -+ parser.add_argument("--allow-all-hosts", dest="onlyServeLocal", -+ default=True, action="store_false", -+ help='Allow connections from any host (access ' -+ 'restricted to "127.0.0.1" by default)') -+ args = parser.parse_args() -+ -+ # Make sure this directory is in a reasonable state to view. -+ if not posixpath.exists(posixpath.join(args.root, 'index.html')): -+ parser.error('Invalid directory, analysis results not found!') -+ -+ # Find an open port. We aren't particularly worried about race -+ # conditions here. Note that if the user specified a port we only -+ # use that one. -+ if args.port is not None: -+ port = args.port -+ else: -+ for i in range(kMaxPortsToTry): -+ if port_is_open(kDefaultPort + i): -+ port = kDefaultPort + i -+ break -+ else: -+ parser.error('Unable to find usable port in [%d,%d)' % -+ (kDefaultPort, kDefaultPort+kMaxPortsToTry)) -+ -+ # Kick off thread to wait for server and start web browser, if -+ # requested. -+ if args.startBrowser: -+ t = thread.start_new_thread(start_browser, (port, args)) -+ -+ run(port, args, args.root) -+ -+if __name__ == '__main__': -+ main() -diff --git tools/clang/tools/scan-view/share/Reporter.py tools/clang/tools/scan-view/share/Reporter.py.orig -new file mode 100644 -index 0000000..294e05b ---- /dev/null -+++ tools/clang/tools/scan-view/share/Reporter.py -@@ -0,0 +1,248 @@ -+"""Methods for reporting bugs.""" -+ -+import subprocess, sys, os -+ -+__all__ = ['ReportFailure', 'BugReport', 'getReporters'] -+ -+# -+ -+class ReportFailure(Exception): -+ """Generic exception for failures in bug reporting.""" -+ def __init__(self, value): -+ self.value = value -+ -+# Collect information about a bug. -+ -+class BugReport: -+ def __init__(self, title, description, files): -+ self.title = title -+ self.description = description -+ self.files = files -+ -+# Reporter interfaces. -+ -+import os -+ -+import email, mimetypes, smtplib -+from email import encoders -+from email.message import Message -+from email.mime.base import MIMEBase -+from email.mime.multipart import MIMEMultipart -+from email.mime.text import MIMEText -+ -+#===------------------------------------------------------------------------===# -+# ReporterParameter -+#===------------------------------------------------------------------------===# -+ -+class ReporterParameter: -+ def __init__(self, n): -+ self.name = n -+ def getName(self): -+ return self.name -+ def getValue(self,r,bugtype,getConfigOption): -+ return getConfigOption(r.getName(),self.getName()) -+ def saveConfigValue(self): -+ return True -+ -+class TextParameter (ReporterParameter): -+ def getHTML(self,r,bugtype,getConfigOption): -+ return """\ -+<tr> -+<td class="form_clabel">%s:</td> -+<td class="form_value"><input type="text" name="%s_%s" value="%s"></td> -+</tr>"""%(self.getName(),r.getName(),self.getName(),self.getValue(r,bugtype,getConfigOption)) -+ -+class SelectionParameter (ReporterParameter): -+ def __init__(self, n, values): -+ ReporterParameter.__init__(self,n) -+ self.values = values -+ -+ def getHTML(self,r,bugtype,getConfigOption): -+ default = self.getValue(r,bugtype,getConfigOption) -+ return """\ -+<tr> -+<td class="form_clabel">%s:</td><td class="form_value"><select name="%s_%s"> -+%s -+</select></td>"""%(self.getName(),r.getName(),self.getName(),'\n'.join(["""\ -+<option value="%s"%s>%s</option>"""%(o[0], -+ o[0] == default and ' selected="selected"' or '', -+ o[1]) for o in self.values])) -+ -+#===------------------------------------------------------------------------===# -+# Reporters -+#===------------------------------------------------------------------------===# -+ -+class EmailReporter: -+ def getName(self): -+ return 'Email' -+ -+ def getParameters(self): -+ return map(lambda x:TextParameter(x),['To', 'From', 'SMTP Server', 'SMTP Port']) -+ -+ # Lifted from python email module examples. -+ def attachFile(self, outer, path): -+ # Guess the content type based on the file's extension. Encoding -+ # will be ignored, although we should check for simple things like -+ # gzip'd or compressed files. -+ ctype, encoding = mimetypes.guess_type(path) -+ if ctype is None or encoding is not None: -+ # No guess could be made, or the file is encoded (compressed), so -+ # use a generic bag-of-bits type. -+ ctype = 'application/octet-stream' -+ maintype, subtype = ctype.split('/', 1) -+ if maintype == 'text': -+ fp = open(path) -+ # Note: we should handle calculating the charset -+ msg = MIMEText(fp.read(), _subtype=subtype) -+ fp.close() -+ else: -+ fp = open(path, 'rb') -+ msg = MIMEBase(maintype, subtype) -+ msg.set_payload(fp.read()) -+ fp.close() -+ # Encode the payload using Base64 -+ encoders.encode_base64(msg) -+ # Set the filename parameter -+ msg.add_header('Content-Disposition', 'attachment', filename=os.path.basename(path)) -+ outer.attach(msg) -+ -+ def fileReport(self, report, parameters): -+ mainMsg = """\ -+BUG REPORT -+--- -+Title: %s -+Description: %s -+"""%(report.title, report.description) -+ -+ if not parameters.get('To'): -+ raise ReportFailure('No "To" address specified.') -+ if not parameters.get('From'): -+ raise ReportFailure('No "From" address specified.') -+ -+ msg = MIMEMultipart() -+ msg['Subject'] = 'BUG REPORT: %s'%(report.title) -+ # FIXME: Get config parameters -+ msg['To'] = parameters.get('To') -+ msg['From'] = parameters.get('From') -+ msg.preamble = mainMsg -+ -+ msg.attach(MIMEText(mainMsg, _subtype='text/plain')) -+ for file in report.files: -+ self.attachFile(msg, file) -+ -+ try: -+ s = smtplib.SMTP(host=parameters.get('SMTP Server'), -+ port=parameters.get('SMTP Port')) -+ s.sendmail(msg['From'], msg['To'], msg.as_string()) -+ s.close() -+ except: -+ raise ReportFailure('Unable to send message via SMTP.') -+ -+ return "Message sent!" -+ -+class BugzillaReporter: -+ def getName(self): -+ return 'Bugzilla' -+ -+ def getParameters(self): -+ return map(lambda x:TextParameter(x),['URL','Product']) -+ -+ def fileReport(self, report, parameters): -+ raise NotImplementedError -+ -+ -+class RadarClassificationParameter(SelectionParameter): -+ def __init__(self): -+ SelectionParameter.__init__(self,"Classification", -+ [['1', 'Security'], ['2', 'Crash/Hang/Data Loss'], -+ ['3', 'Performance'], ['4', 'UI/Usability'], -+ ['6', 'Serious Bug'], ['7', 'Other']]) -+ -+ def saveConfigValue(self): -+ return False -+ -+ def getValue(self,r,bugtype,getConfigOption): -+ if bugtype.find("leak") != -1: -+ return '3' -+ elif bugtype.find("dereference") != -1: -+ return '2' -+ elif bugtype.find("missing ivar release") != -1: -+ return '3' -+ else: -+ return '7' -+ -+class RadarReporter: -+ @staticmethod -+ def isAvailable(): -+ # FIXME: Find this .scpt better -+ path = os.path.join(os.path.dirname(__file__),'../share/scan-view/GetRadarVersion.scpt') -+ try: -+ p = subprocess.Popen(['osascript',path], -+ stdout=subprocess.PIPE, stderr=subprocess.PIPE) -+ except: -+ return False -+ data,err = p.communicate() -+ res = p.wait() -+ # FIXME: Check version? Check for no errors? -+ return res == 0 -+ -+ def getName(self): -+ return 'Radar' -+ -+ def getParameters(self): -+ return [ TextParameter('Component'), TextParameter('Component Version'), -+ RadarClassificationParameter() ] -+ -+ def fileReport(self, report, parameters): -+ component = parameters.get('Component', '') -+ componentVersion = parameters.get('Component Version', '') -+ classification = parameters.get('Classification', '') -+ personID = "" -+ diagnosis = "" -+ config = "" -+ -+ if not component.strip(): -+ component = 'Bugs found by clang Analyzer' -+ if not componentVersion.strip(): -+ componentVersion = 'X' -+ -+ script = os.path.join(os.path.dirname(__file__),'../share/scan-view/FileRadar.scpt') -+ args = ['osascript', script, component, componentVersion, classification, personID, report.title, -+ report.description, diagnosis, config] + map(os.path.abspath, report.files) -+# print >>sys.stderr, args -+ try: -+ p = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE) -+ except: -+ raise ReportFailure("Unable to file radar (AppleScript failure).") -+ data, err = p.communicate() -+ res = p.wait() -+ -+ if res: -+ raise ReportFailure("Unable to file radar (AppleScript failure).") -+ -+ try: -+ values = eval(data) -+ except: -+ raise ReportFailure("Unable to process radar results.") -+ -+ # We expect (int: bugID, str: message) -+ if len(values) != 2 or not isinstance(values[0], int): -+ raise ReportFailure("Unable to process radar results.") -+ -+ bugID,message = values -+ bugID = int(bugID) -+ -+ if not bugID: -+ raise ReportFailure(message) -+ -+ return "Filed: <a href=\"rdar://%d/\">%d</a>"%(bugID,bugID) -+ -+### -+ -+def getReporters(): -+ reporters = [] -+ if RadarReporter.isAvailable(): -+ reporters.append(RadarReporter()) -+ reporters.append(EmailReporter()) -+ return reporters -+ -diff --git tools/clang/tools/scan-view/share/ScanView.py tools/clang/tools/scan-view/share/ScanView.py.orig -new file mode 100644 -index 0000000..7dc0351 ---- /dev/null -+++ tools/clang/tools/scan-view/share/ScanView.py -@@ -0,0 +1,767 @@ -+import BaseHTTPServer -+import SimpleHTTPServer -+import os -+import sys -+import urllib, urlparse -+import posixpath -+import StringIO -+import re -+import shutil -+import threading -+import time -+import socket -+import itertools -+ -+import Reporter -+import ConfigParser -+ -+### -+# Various patterns matched or replaced by server. -+ -+kReportFileRE = re.compile('(.*/)?report-(.*)\\.html') -+ -+kBugKeyValueRE = re.compile('<!-- BUG([^ ]*) (.*) -->') -+ -+# <!-- REPORTPROBLEM file="crashes/clang_crash_ndSGF9.mi" stderr="crashes/clang_crash_ndSGF9.mi.stderr.txt" info="crashes/clang_crash_ndSGF9.mi.info" --> -+ -+kReportCrashEntryRE = re.compile('<!-- REPORTPROBLEM (.*?)-->') -+kReportCrashEntryKeyValueRE = re.compile(' ?([^=]+)="(.*?)"') -+ -+kReportReplacements = [] -+ -+# Add custom javascript. -+kReportReplacements.append((re.compile('<!-- SUMMARYENDHEAD -->'), """\ -+<script language="javascript" type="text/javascript"> -+function load(url) { -+ if (window.XMLHttpRequest) { -+ req = new XMLHttpRequest(); -+ } else if (window.ActiveXObject) { -+ req = new ActiveXObject("Microsoft.XMLHTTP"); -+ } -+ if (req != undefined) { -+ req.open("GET", url, true); -+ req.send(""); -+ } -+} -+</script>""")) -+ -+# Insert additional columns. -+kReportReplacements.append((re.compile('<!-- REPORTBUGCOL -->'), -+ '<td></td><td></td>')) -+ -+# Insert report bug and open file links. -+kReportReplacements.append((re.compile('<!-- REPORTBUG id="report-(.*)\\.html" -->'), -+ ('<td class="Button"><a href="report/\\1">Report Bug</a></td>' + -+ '<td class="Button"><a href="javascript:load(\'open/\\1\')">Open File</a></td>'))) -+ -+kReportReplacements.append((re.compile('<!-- REPORTHEADER -->'), -+ '<h3><a href="/">Summary</a> > Report %(report)s</h3>')) -+ -+kReportReplacements.append((re.compile('<!-- REPORTSUMMARYEXTRA -->'), -+ '<td class="Button"><a href="report/%(report)s">Report Bug</a></td>')) -+ -+# 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('<!-- REPORTCRASHES -->'), -+# '<br>These files will automatically be attached to ' + -+# 'reports filed here: <a href="report_crashes">Report Crashes</a>.')) -+ -+### -+# 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,'<b>Unhandled Exception</b><br><pre>' -+ traceback.print_exc(e,file=s) -+ print >>s,'</pre>' -+ 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 = """\ -+<a href="/report_crashes">File Bug</a> > """%locals() -+ else: -+ reportingFor = '<a href="/%s">Report %s</a> > ' % (c.reportSource, -+ report) -+ fileBug = '<a href="/report/%s">File Bug</a> > ' % 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 = """ -+<head> -+ <title>Bug Submission</title> -+ <link rel="stylesheet" type="text/css" href="/scanview.css" /> -+</head> -+<body> -+<h3> -+<a href="/">Summary</a> > -+%(reportingFor)s -+%(fileBug)s -+Submit</h3> -+<form name="form" action=""> -+<table class="form"> -+<tr><td> -+<table class="form_group"> -+<tr> -+ <td class="form_clabel">Title:</td> -+ <td class="form_value"> -+ <input type="text" name="title" size="50" value="%(title)s" disabled> -+ </td> -+</tr> -+<tr> -+ <td class="form_label">Description:</td> -+ <td class="form_value"> -+<textarea rows="10" cols="80" name="description" disabled> -+%(description)s -+</textarea> -+ </td> -+</table> -+</td></tr> -+</table> -+</form> -+<h1 class="%(statusClass)s">Submission %(statusName)s</h1> -+%(message)s -+<p> -+<hr> -+<a href="/">Return to Summary</a> -+</body> -+</html>"""%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', -+ '<unknown>'), -+ ''.join(lns)) -+ -+ c.description = """\ -+The clang static analyzer failed on these inputs: -+%s -+ -+STDERR Summary -+-------------- -+%s -+""" % ('\n'.join([item.get('src','<unknown>') 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','<unknown>'), keys.get('LINE', '<unknown>')) -+ c.reportSource = 'report-%s.html' % report -+ c.navMarkup = """<a href="/%s">Report %s</a> > """ % (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 = """\ -+<iframe src="/%s" width="100%%" height="40%%" -+ scrolling="auto" frameborder="1"> -+ <a href="/%s">View Bug Report</a> -+</iframe>""" % (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('<option value="%d"%s>%s</option>'%(i,selectedStr,r.getName())) -+ options = '\n'.join([ o.getHTML(r,title,getConfigOption) for o in r.getParameters()]) -+ display = ('none','')[selected] -+ reporterOptions.append("""\ -+<tr id="%sReporterOptions" style="display:%s"> -+ <td class="form_label">%s Options</td> -+ <td class="form_value"> -+ <table class="form_inner_group"> -+%s -+ </table> -+ </td> -+</tr> -+"""%(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(["""\ -+<option value="%d" selected>%s</option>""" % (i,v) for i,v in enumerate(c.files)]) -+ attachFileRow = """\ -+<tr> -+ <td class="form_label">Attach:</td> -+ <td class="form_value"> -+<select style="width:100%%" name="files" multiple size=%d> -+%s -+</select> -+ </td> -+</tr> -+""" % (min(5, len(c.files)), attachFileOptions) -+ else: -+ attachFileRow = "" -+ -+ result = """<html> -+<head> -+ <title>File Bug</title> -+ <link rel="stylesheet" type="text/css" href="/scanview.css" /> -+</head> -+<script language="javascript" type="text/javascript"> -+var reporters = %(reportersArray)s; -+function updateReporterOptions() { -+ index = document.getElementById('reporter').selectedIndex; -+ for (var i=0; i < reporters.length; ++i) { -+ o = document.getElementById(reporters[i] + "ReporterOptions"); -+ if (i == index) { -+ o.style.display = ""; -+ } else { -+ o.style.display = "none"; -+ } -+ } -+} -+</script> -+<body onLoad="updateReporterOptions()"> -+<h3> -+<a href="/">Summary</a> > -+%(reportingFor)s -+File Bug</h3> -+<form name="form" action="/report_submit" method="post"> -+<input type="hidden" name="report" value="%(report)s"> -+ -+<table class="form"> -+<tr><td> -+<table class="form_group"> -+<tr> -+ <td class="form_clabel">Title:</td> -+ <td class="form_value"> -+ <input type="text" name="title" size="50" value="%(title)s"> -+ </td> -+</tr> -+<tr> -+ <td class="form_label">Description:</td> -+ <td class="form_value"> -+<textarea rows="10" cols="80" name="description"> -+%(description)s -+</textarea> -+ </td> -+</tr> -+ -+%(attachFileRow)s -+ -+</table> -+<br> -+<table class="form_group"> -+<tr> -+ <td class="form_clabel">Method:</td> -+ <td class="form_value"> -+ <select id="reporter" name="reporter" onChange="updateReporterOptions()"> -+ %(reporterSelections)s -+ </select> -+ </td> -+</tr> -+%(reporterOptionsDivs)s -+</table> -+<br> -+</td></tr> -+<tr><td class="form_submit"> -+ <input align="right" type="submit" name="Submit" value="Submit"> -+</td></tr> -+</table> -+</form> -+ -+%(extraIFrame)s -+ -+</body> -+</html>"""%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: '<URL>' -+ 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) diff --git a/devel/llvm37/files/clang-patch-svn-250416 b/devel/llvm37/files/clang-patch-svn-250416 deleted file mode 100644 index c57aeca3c741..000000000000 --- a/devel/llvm37/files/clang-patch-svn-250416 +++ /dev/null @@ -1,22 +0,0 @@ ------------------------------------------------------------------------- -r250416 | ed | 2015-10-15 15:07:07 +0000 (Thu, 15 Oct 2015) | 5 lines - -Add support for CloudABI/aarch64. - -The core C library has already been ported over to aarch64 successfully, -meaning there is no reason to hold this change back. - ------------------------------------------------------------------------- -Index: lib/Basic/Targets.cpp -=================================================================== ---- tools/clang/lib/Basic/Targets.cpp (revision 250415) -+++ tools/clang/lib/Basic/Targets.cpp (revision 250416) -@@ -7364,6 +7364,8 @@ - return new DarwinAArch64TargetInfo(Triple); - - switch (os) { -+ case llvm::Triple::CloudABI: -+ return new CloudABITargetInfo<AArch64leTargetInfo>(Triple); - case llvm::Triple::FreeBSD: - return new FreeBSDTargetInfo<AArch64leTargetInfo>(Triple); - case llvm::Triple::Linux: diff --git a/devel/llvm37/files/clang-patch-tools_clang_lib_Headers_CMakeLists.txt b/devel/llvm37/files/clang-patch-tools_clang_lib_Headers_CMakeLists.txt deleted file mode 100644 index 975a119b4587..000000000000 --- a/devel/llvm37/files/clang-patch-tools_clang_lib_Headers_CMakeLists.txt +++ /dev/null @@ -1,31 +0,0 @@ ---- tools/clang/lib/Headers/CMakeLists.txt.orig 2015-07-30 22:47:41 UTC -+++ tools/clang/lib/Headers/CMakeLists.txt -@@ -30,7 +30,6 @@ set(files - Intrin.h - inttypes.h - iso646.h -- limits.h - lzcntintrin.h - mm3dnow.h - mmintrin.h -@@ -45,20 +44,12 @@ set(files - s390intrin.h - shaintrin.h - smmintrin.h -- stdalign.h -- stdarg.h -- stdatomic.h -- stdbool.h -- stddef.h - __stddef_max_align_t.h -- stdint.h -- stdnoreturn.h - tbmintrin.h - tgmath.h - tmmintrin.h - unwind.h - vadefs.h -- varargs.h - vecintrin.h - __wmmintrin_aes.h - wmmintrin.h diff --git a/devel/llvm37/files/clang-patch-tools_clang_tools_clang-format_clang-format.py b/devel/llvm37/files/clang-patch-tools_clang_tools_clang-format_clang-format.py deleted file mode 100644 index 9cb21db628f5..000000000000 --- a/devel/llvm37/files/clang-patch-tools_clang_tools_clang-format_clang-format.py +++ /dev/null @@ -1,11 +0,0 @@ ---- tools/clang/tools/clang-format/clang-format.py.orig 2015-09-08 20:44:00 UTC -+++ tools/clang/tools/clang-format/clang-format.py -@@ -34,7 +34,7 @@ import vim - - # set g:clang_format_path to the path to clang-format if it is not on the path - # Change this to the full path if clang-format is not on the path. --binary = 'clang-format' -+binary = 'clang-format37' - if vim.eval('exists("g:clang_format_path")') == "1": - binary = vim.eval('g:clang_format_path') - diff --git a/devel/llvm37/files/compiler-rt-patch-svn-249051 b/devel/llvm37/files/compiler-rt-patch-svn-249051 deleted file mode 100644 index 0ecc2dfd3c30..000000000000 --- a/devel/llvm37/files/compiler-rt-patch-svn-249051 +++ /dev/null @@ -1,18 +0,0 @@ ------------------------------------------------------------------------- -r249051 | eugenis | 2015-10-01 18:27:28 +0000 (Thu, 01 Oct 2015) | 1 line - -[asan] Tweak gen_dynamic_list.py to work with both Py2 and Py3. ------------------------------------------------------------------------- -Index: lib/sanitizer_common/scripts/gen_dynamic_list.py -=================================================================== ---- tools/compiler-rt/lib/sanitizer_common/scripts/gen_dynamic_list.py (revision 249050) -+++ tools/compiler-rt/lib/sanitizer_common/scripts/gen_dynamic_list.py (revision 249051) -@@ -100,7 +100,7 @@ - print('global:') - result.sort() - for f in result: -- print(' ' + f.encode('utf-8') + ';') -+ print(u' %s;' % f) - if args.version_list: - print('local:') - print(' *;') diff --git a/devel/llvm37/files/compiler-rt-patch-svn-294806 b/devel/llvm37/files/compiler-rt-patch-svn-294806 deleted file mode 100644 index e96ee216a040..000000000000 --- a/devel/llvm37/files/compiler-rt-patch-svn-294806 +++ /dev/null @@ -1,30 +0,0 @@ ---- tools/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc.orig 2015-06-25 20:50:18 UTC -+++ tools/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc -@@ -23,11 +23,6 @@ - #ifdef _FILE_OFFSET_BITS - #undef _FILE_OFFSET_BITS - #endif --#if SANITIZER_FREEBSD --#define _WANT_RTENTRY --#include <sys/param.h> --#include <sys/socketvar.h> --#endif - #include <arpa/inet.h> - #include <dirent.h> - #include <errno.h> -@@ -374,6 +369,7 @@ namespace __sanitizer { - unsigned struct_input_absinfo_sz = sizeof(struct input_absinfo); - unsigned struct_input_id_sz = sizeof(struct input_id); - unsigned struct_mtpos_sz = sizeof(struct mtpos); -+ unsigned struct_rtentry_sz = sizeof(struct rtentry); - unsigned struct_termio_sz = sizeof(struct termio); - unsigned struct_vt_consize_sz = sizeof(struct vt_consize); - unsigned struct_vt_sizes_sz = sizeof(struct vt_sizes); -@@ -393,7 +389,6 @@ namespace __sanitizer { - unsigned struct_midi_info_sz = sizeof(struct midi_info); - unsigned struct_mtget_sz = sizeof(struct mtget); - unsigned struct_mtop_sz = sizeof(struct mtop); -- unsigned struct_rtentry_sz = sizeof(struct rtentry); - unsigned struct_sbi_instrument_sz = sizeof(struct sbi_instrument); - unsigned struct_seq_event_rec_sz = sizeof(struct seq_event_rec); - unsigned struct_synth_info_sz = sizeof(struct synth_info); diff --git a/devel/llvm37/files/compiler-rt-patch-tools_compiler-rt_cmake_config-ix.cmake b/devel/llvm37/files/compiler-rt-patch-tools_compiler-rt_cmake_config-ix.cmake deleted file mode 100644 index 2e0bc3f38f72..000000000000 --- a/devel/llvm37/files/compiler-rt-patch-tools_compiler-rt_cmake_config-ix.cmake +++ /dev/null @@ -1,13 +0,0 @@ ---- tools/compiler-rt/cmake/config-ix.cmake.orig 2015-08-20 13:35:01 UTC -+++ tools/compiler-rt/cmake/config-ix.cmake -@@ -180,8 +180,8 @@ elseif(NOT APPLE) # Supported archs for - # FIXME: We build runtimes for both i686 and i386, as "clang -m32" may - # target different variant than "$CMAKE_C_COMPILER -m32". This part should - # be gone after we resolve PR14109. -- test_target_arch(i686 __i686__ "-m32") -- test_target_arch(i386 __i386__ "-m32") -+ #test_target_arch(i686 __i686__ "-m32") -+ #test_target_arch(i386 __i386__ "-m32") - else() - if (CMAKE_SIZEOF_VOID_P EQUAL 4) - test_target_arch(i386 "" "") diff --git a/devel/llvm37/files/lldb-patch-svn-247116 b/devel/llvm37/files/lldb-patch-svn-247116 deleted file mode 100644 index 3f4c97439582..000000000000 --- a/devel/llvm37/files/lldb-patch-svn-247116 +++ /dev/null @@ -1,36 +0,0 @@ ------------------------------------------------------------------------- -r247116 | sas | 2015-09-09 01:22:05 +0000 (Wed, 09 Sep 2015) | 11 lines - -Teach utilsOsType about NetBSD - -Summary: NetBSD is a free, fast, secure, and highly portable Unix-like Open Source operating system. - -Reviewers: joerg, sas - -Subscribers: sas, emaste, lldb-commits - -Differential Revision: http://reviews.llvm.org/D12615 - -Change by Kamil Rytarowski <n54@gmx.com> ------------------------------------------------------------------------- -Index: scripts/utilsOsType.py -=================================================================== ---- tools/lldb/scripts/utilsOsType.py (revision 247115) -+++ tools/lldb/scripts/utilsOsType.py (revision 247116) -@@ -31,6 +31,7 @@ - "Darwin", - "FreeBSD", - "Linux", -+ "NetBSD", - "Windows" ] - class __metaclass__( type ): - #++--------------------------------------------------------------------------- -@@ -71,6 +72,8 @@ - eOSType = EnumOsType.FreeBSD - elif (strOS.startswith("linux")): - eOSType = EnumOsType.Linux -+ elif (strOS.startswith("netbsd")): -+ eOSType = EnumOsType.NetBSD - elif strOS == "win32": - eOSType = EnumOsType.Windows - diff --git a/devel/llvm37/files/lldb-patch-svn-249467 b/devel/llvm37/files/lldb-patch-svn-249467 deleted file mode 100644 index 16aebf486224..000000000000 --- a/devel/llvm37/files/lldb-patch-svn-249467 +++ /dev/null @@ -1,538 +0,0 @@ ------------------------------------------------------------------------- -r249467 | zturner | 2015-10-06 21:11:28 +0000 (Tue, 06 Oct 2015) | 1 line - -Update swig generation scripts to support Python 3. ------------------------------------------------------------------------- -Index: scripts/finishSwigWrapperClasses.py -=================================================================== ---- tools/lldb/scripts/finishSwigWrapperClasses.py (revision 249466) -+++ tools/lldb/scripts/finishSwigWrapperClasses.py (revision 249467) -@@ -97,7 +97,7 @@ - - if vMsg.__len__() != 0: - strMsg = "%s: %s (%d)" % (strExitMsgSuccess, vMsg, vnResult); -- print strMsg; -+ print(strMsg); - - sys.exit( vnResult ); - -@@ -110,7 +110,7 @@ - # Throws: None. - #-- - def program_exit_on_failure( vnResult, vMsg ): -- print "%s%s (%d)" % (strExitMsgError, vMsg, vnResult); -+ print("%s%s (%d)" % (strExitMsgError, vMsg, vnResult)); - sys.exit( vnResult ); - - #++--------------------------------------------------------------------------- -@@ -141,7 +141,7 @@ - if val.__len__() != 0: - strEqs = " ="; - strQ = "\""; -- print "%s%s%s %s%s%s\n" % (strParameter, arg, strEqs, strQ, val, strQ); -+ print("%s%s%s %s%s%s\n" % (strParameter, arg, strEqs, strQ, val, strQ)); - - #++--------------------------------------------------------------------------- - # Details: Validate the arguments passed to the program. This function exits -@@ -210,8 +210,8 @@ - return (-9, strStatusMsg); - - if gbDbgFlag: -- print strScriptLangFound % vStrScriptLang; -- print strExecuteMsg % vStrScriptLang; -+ print(strScriptLangFound % vStrScriptLang); -+ print(strExecuteMsg % vStrScriptLang); - - # Change where Python looks for our modules - strDir = os.path.normcase( strScriptFileDir ); -@@ -267,16 +267,18 @@ - listDirs.remove('.svn') - - if gbDbgFlag: -- print strScriptLangsFound, -+ sys.stdout.write(strScriptLangsFound) - for dir in listDirs: -- print dir, -- print "\n"; -+ sys.stdout.write(dir) -+ print("\n") - - # Iterate script directory find any script language directories - for scriptLang in listDirs: -- dbg.dump_text( "Executing language script for \'%s\'" % scriptLang ); -- nResult, strStatusMsg = run_post_process( scriptLang, strFinishFileName, -- vDictArgs ); -+ # __pycache__ is a magic directory in Python 3 that holds .pyc files -+ if scriptLang != "__pycache__": -+ dbg.dump_text( "Executing language script for \'%s\'" % scriptLang ); -+ nResult, strStatusMsg = run_post_process( scriptLang, strFinishFileName, -+ vDictArgs ); - if nResult < 0: - break; - -Index: scripts/Python/buildSwigPython.py -=================================================================== ---- tools/lldb/scripts/Python/buildSwigPython.py (revision 249466) -+++ tools/lldb/scripts/Python/buildSwigPython.py (revision 249467) -@@ -123,7 +123,7 @@ - "/include/lldb/API/SBValue.h", - "/include/lldb/API/SBValueList.h", - "/include/lldb/API/SBWatchpoint.h" ]; -- bDebug = vDictArgs.has_key( "-d" ); -+ bDebug = "-d" in vDictArgs; - strRt = vDictArgs[ "--srcRoot" ]; - strRt = os.path.normcase( strRt ); - -@@ -133,8 +133,8 @@ - strHeaderFiles += " %s%s" % (strRt, strHdr); - - if bDebug: -- print strMsgHdrFiles; -- print strHeaderFiles; -+ print(strMsgHdrFiles); -+ print(strHeaderFiles); - - vDictArgs[ "--headerFiles" ] = strHeaderFiles; - -@@ -201,7 +201,7 @@ - "/scripts/interface/SBValue.i", - "/scripts/interface/SBValueList.i", - "/scripts/interface/SBWatchpoint.i" ]; -- bDebug = vDictArgs.has_key( "-d" ); -+ bDebug = "-d" in vDictArgs; - strRt = vDictArgs[ "--srcRoot" ]; - strRt = os.path.normcase( strRt ); - -@@ -211,8 +211,8 @@ - strInterfaceFiles += " %s%s" % (strRt, strIFace); - - if bDebug: -- print strMsgIFaceFiles; -- print strInterfaceFiles; -+ print(strMsgIFaceFiles); -+ print(strInterfaceFiles); - - vDictArgs[ "--ifaceFiles" ] = strInterfaceFiles; - -@@ -251,12 +251,12 @@ - #-- - def check_file_exists( vDictArgs, vstrFileNamePath ): - bExists = False; -- bDebug = vDictArgs.has_key( "-d" ); -+ bDebug = "-d" in vDictArgs; - - if os.path.exists( vstrFileNamePath ): - bExists = True; - elif bDebug: -- print strMsgFileNotExist % vstrFileNamePath; -+ print(strMsgFileNotExist % vstrFileNamePath); - - return bExists; - -@@ -271,7 +271,7 @@ - #-- - def check_newer_file( vDictArgs, vstrSwigOpFileNamePath, vstrFileNamePath ): - bNeedUpdate = False; -- bDebug = vDictArgs.has_key( "-d" ); -+ bDebug = "-d" in vDictArgs; - - strMsg = ""; - nResult = which_file_is_newer( vstrFileNamePath, vstrSwigOpFileNamePath ); -@@ -284,7 +284,7 @@ - bNeedUpdate = True; - - if bNeedUpdate and bDebug: -- print strMsg; -+ print(strMsg); - - return bNeedUpdate; - -@@ -328,7 +328,7 @@ - # on the system other stuff may need to be put here as well. - from distutils.sysconfig import get_python_lib; - strPythonInstallDir = ""; -- bHaveArgPrefix = vDictArgs.has_key( "--prefix" ); -+ bHaveArgPrefix = "--prefix" in vDictArgs; - if bHaveArgPrefix: - strPythonInstallDir = vDictArgs[ "--prefix" ]; - if strPythonInstallDir.__len__() != 0: -@@ -354,9 +354,9 @@ - bOk = True; - strWkDir = ""; - strErrMsg = ""; -- bDbg = vDictArgs.has_key( "-d" ); -+ bDbg = "-d" in vDictArgs; - -- bMakeFileCalled = vDictArgs.has_key( "-m" ); -+ bMakeFileCalled = "-m" in vDictArgs; - if bMakeFileCalled: - dbg.dump_text( "Built by LLVM" ); - return get_framework_python_dir_windows( vDictArgs ); -@@ -368,7 +368,7 @@ - strWkDir += "/LLDB.framework"; - if os.path.exists( strWkDir ): - if bDbg: -- print strMsgFoundLldbFrameWkDir % strWkDir; -+ print(strMsgFoundLldbFrameWkDir % strWkDir); - strWkDir += "/Resources/Python/lldb"; - strWkDir = os.path.normcase( strWkDir ); - else: -@@ -420,7 +420,7 @@ - strErrMsg = ""; - - strConfigBldDir = ""; -- bHaveConfigBldDir = vDictArgs.has_key( "--cfgBldDir" ); -+ bHaveConfigBldDir = "--cfgBldDir" in vDictArgs; - if bHaveConfigBldDir: - strConfigBldDir = vDictArgs[ "--cfgBldDir" ]; - if (bHaveConfigBldDir == False) or (strConfigBldDir.__len__() == 0): -@@ -463,8 +463,8 @@ - dbg = utilsDebug.CDebugFnVerbose( "Python script do_swig_rebuild()" ); - bOk = True; - strMsg = ""; -- bDbg = vDictArgs.has_key( "-d" ); -- bGenDependencies = vDictArgs.has_key( "-M" ); -+ bDbg = "-d" in vDictArgs; -+ bGenDependencies = "-M" in vDictArgs; - strSwigExePath = vDictArgs[ "--swigExePath" ]; - strSwigExeName = vDictArgs[ "--swigExeName" ]; - strSrcRoot = vDictArgs[ "--srcRoot" ]; -@@ -502,7 +502,7 @@ - strCmd += "-o \"%s\" " % strOp; - strCmd += "\"%s\" " % strIp; - if bDbg: -- print strMsgSwigExecute % strCmd; -+ print(strMsgSwigExecute % strCmd); - - # Execute SWIG - process = subprocess.Popen( strCmd, stdout=subprocess.PIPE, -@@ -547,7 +547,7 @@ - dbg = utilsDebug.CDebugFnVerbose( "Python script run_python_script()" ); - bOk = True; - strMsg = ""; -- bDbg = vDictArgs.has_key( "-d" ); -+ bDbg = "-d" in vDictArgs; - - strPy = "%s %s" % (sys.executable, vstrArgs); - process = subprocess.Popen( strPy, shell=True ); -@@ -583,7 +583,7 @@ - dbg = utilsDebug.CDebugFnVerbose( "Python script do_modify_python_lldb()" ); - bOk = True; - strMsg = ""; -- bDbg = vDictArgs.has_key( "-d" ); -+ bDbg = "-d" in vDictArgs; - strCwd = vDictArgs[ "--srcRoot" ]; # /llvm/tools/lldb - strCwd += "/scripts/Python"; - strPyScript = "modify-python-lldb.py"; -@@ -654,15 +654,15 @@ - strMsg = ""; - strErrMsgProgFail = ""; - -- if not( vDictArgs.has_key( "--swigExePath" ) and vDictArgs.has_key( "--swigExeName" ) ): -+ if not("--swigExePath" in vDictArgs) and ("--swigExeName" in vDictArgs): - strErrMsgProgFail += strErrMsgSwigParamsMissing; - return (-100, strErrMsgProgFail ); - -- bDebug = vDictArgs.has_key( "-d" ); -+ bDebug = "-d" in vDictArgs; - - strSwigDepFile = ""; - strSwigDepOptions = ""; -- bGenDependencies = vDictArgs.has_key( "-M" ); -+ bGenDependencies = "-M" in vDictArgs; - if bGenDependencies: - strSwigDepFile = vDictArgs[ "--targetDir" ] + "/LLDBWrapPython.cpp.d"; - strSwigDepOptions = "-MMD -MF \"%s.tmp\"" % strSwigDepFile; -@@ -669,7 +669,7 @@ - strSwigDepFile = os.path.normcase( strSwigDepFile ); - strSwigDepOptions = os.path.normcase( strSwigDepOptions ); - -- bMakeFileCalled = vDictArgs.has_key( "-m" ); -+ bMakeFileCalled = "-m" in vDictArgs; - strSwigOutputFile = "" - if bMakeFileCalled: - strSwigOutputFile = vDictArgs[ "--targetDir" ] + "/LLDBWrapPython.cpp"; -@@ -760,7 +760,7 @@ - if bOk and (bNeedUpdate == False): - strInitPiPath = strFrameworkPythonDir + "/__init__.py"; - strInitPiPath = os.path.normcase( strInitPiPath ); -- print strInitPiPath -+ print(strInitPiPath) - bNeedUpdate = not check_file_exists( vDictArgs, strInitPiPath ); - dbg.dump_object( "check_file_exists( vDictArgs, strInitPiPath ), bNeedUpdate =", bNeedUpdate); - -@@ -769,12 +769,12 @@ - strMsg = strMsgNotNeedUpdate; - return (0, strMsg ); - else: -- print strMsgSwigNeedRebuild; -+ print(strMsgSwigNeedRebuild); - bOk, strMsg, nExitResult = do_swig_rebuild( vDictArgs, strSwigDepFile, - strCfgBldDir, - strSwigOutputFile, - strSwigInputFile ); -- bGenDependencies = vDictArgs.has_key( "-M" ); -+ bGenDependencies = "-M" in vDictArgs; - if bGenDependencies == True: - return (nExitResult, strMsg); - -@@ -794,5 +794,5 @@ - # This script can be called by another Python script by calling the main() - # function directly - if __name__ == "__main__": -- print "Script cannot be called directly, called by buildSwigWrapperClasses.py"; -+ print("Script cannot be called directly, called by buildSwigWrapperClasses.py"); - -Index: scripts/Python/modify-python-lldb.py -=================================================================== ---- tools/lldb/scripts/Python/modify-python-lldb.py (revision 249466) -+++ tools/lldb/scripts/Python/modify-python-lldb.py (revision 249467) -@@ -21,7 +21,11 @@ - # subsystem. - # - --import sys, re, StringIO -+import sys, re -+if sys.version_info.major >= 3: -+ import io as StringIO -+else: -+ import StringIO - - if len (sys.argv) != 2: - output_name = "./lldb.py" -@@ -269,7 +273,7 @@ - def add_line(self, a_line): - """Add a line to the content, if there is a previous line, commit it.""" - if self.prev_line != None: -- print >> self, self.prev_line -+ self.write(self.prev_line + "\n") - self.prev_line = a_line - def del_line(self): - """Forget about the previous line, do not commit it.""" -@@ -281,7 +285,7 @@ - def finish(self): - """Call this when you're finished with populating content.""" - if self.prev_line != None: -- print >> self, self.prev_line -+ self.write(self.prev_line + "\n") - self.prev_line = None - - # The new content will have the iteration protocol defined for our lldb objects. -Index: scripts/utilsOsType.py -=================================================================== ---- tools/lldb/scripts/utilsOsType.py (revision 249466) -+++ tools/lldb/scripts/utilsOsType.py (revision 249467) -@@ -26,14 +26,24 @@ - # Authors: Illya Rudkin 28/11/2013. - # Changes: None. - #-- --class EnumOsType( object ): -- values = [ "Unknown", -- "Darwin", -- "FreeBSD", -- "Linux", -- "NetBSD", -- "Windows" ] -- class __metaclass__( type ): -+if sys.version_info.major >= 3: -+ from enum import Enum -+ class EnumOsType(Enum): -+ Unknown = 0 -+ Darwin = 1 -+ FreeBSD = 2 -+ Linux = 3 -+ NetBSD = 4 -+ Windows = 5 -+else: -+ class EnumOsType( object ): -+ values = [ "Unknown", -+ "Darwin", -+ "FreeBSD", -+ "Linux", -+ "NetBSD", -+ "Windows" ] -+ class __metaclass__( type ): - #++--------------------------------------------------------------------------- - # Details: Fn acts as an enumeration. - # Args: vName - (R) Enumeration to match. -@@ -40,8 +50,8 @@ - # Returns: Int - Matching enumeration/index. - # Throws: None. - #-- -- def __getattr__( self, vName ): -- return self.values.index( vName ); -+ def __getattr__( self, vName ): -+ return self.values.index( vName ); - - #++--------------------------------------------------------------------------- - # Details: Reverse fast lookup of the values list. -@@ -49,8 +59,8 @@ - # Returns: Str - text description matching enumeration. - # Throws: None. - #-- -- def name_of( self, vI ): -- return EnumOsType.values[ vI ]; -+ def name_of( self, vI ): -+ return EnumOsType.values[ vI ]; - - #----------------------------------------------------------------------------- - #----------------------------------------------------------------------------- -Index: scripts/utilsDebug.py -=================================================================== ---- tools/lldb/scripts/utilsDebug.py (revision 249466) -+++ tools/lldb/scripts/utilsDebug.py (revision 249467) -@@ -55,9 +55,9 @@ - def dump_object( self, vstrText, vObject ): - if CDebugFnVerbose.bVerboseOn == False: - return; -- print "%d%s> Dp: %s" % (CDebugFnVerbose.__nLevel, self.__get_dots(), -- vstrText),; -- print vObject; -+ sys.stdout.write("%d%s> Dp: %s" % (CDebugFnVerbose.__nLevel, self.__get_dots(), -+ vstrText)); -+ print(vObject); - - #++------------------------------------------------------------------------ - # Details: Print out some progress text given by the client. -@@ -69,8 +69,8 @@ - def dump_text( self, vstrText ): - if CDebugFnVerbose.bVerboseOn == False: - return; -- print "%d%s> Dp: %s" % (CDebugFnVerbose.__nLevel, self.__get_dots(), -- vstrText); -+ print("%d%s> Dp: %s" % (CDebugFnVerbose.__nLevel, self.__get_dots(), -+ vstrText)); - - # Private methods: - def __init__( self, vstrFnName ): -@@ -100,8 +100,8 @@ - #-- - def __indent_back( self ): - if CDebugFnVerbose.bVerboseOn: -- print "%d%s< fn: %s" % (CDebugFnVerbose.__nLevel, self.__get_dots(), -- self.__strFnName); -+ print("%d%s< fn: %s" % (CDebugFnVerbose.__nLevel, self.__get_dots(), -+ self.__strFnName)); - CDebugFnVerbose.__nLevel -= 1; - - #++------------------------------------------------------------------------ -@@ -116,8 +116,8 @@ - CDebugFnVerbose.__nLevel += 1; - self.__strFnName = vstrFnName; - if CDebugFnVerbose.bVerboseOn: -- print "%d%s> fn: %s" % ( CDebugFnVerbose.__nLevel, self.__get_dots(), -- self.__strFnName); -+ print("%d%s> fn: %s" % ( CDebugFnVerbose.__nLevel, self.__get_dots(), -+ self.__strFnName)); - - # Private statics attributes: - __nLevel = 0; # Indentation level counter -Index: scripts/utilsArgsParse.py -=================================================================== ---- tools/lldb/scripts/utilsArgsParse.py (revision 249466) -+++ tools/lldb/scripts/utilsArgsParse.py (revision 249467) -@@ -87,7 +87,7 @@ - - # Count the number of mandatory args required (if any one found) - countMandatory = 0; -- for opt, man in vDictArgReq.iteritems(): -+ for opt, man in vDictArgReq.items(): - if man == "m": - countMandatory = countMandatory + 1; - -Index: scripts/buildSwigWrapperClasses.py -=================================================================== ---- tools/lldb/scripts/buildSwigWrapperClasses.py (revision 249466) -+++ tools/lldb/scripts/buildSwigWrapperClasses.py (revision 249467) -@@ -126,7 +126,7 @@ - - if vMsg.__len__() != 0: - strMsg = "%s: %s (%d)" % (strExitMsgSuccess, vMsg, vnResult); -- print strMsg; -+ print(strMsg); - - sys.exit( vnResult ); - -@@ -139,7 +139,7 @@ - # Throws: None. - #-- - def program_exit_on_failure( vnResult, vMsg ): -- print "%s%s (%d)" % (strExitMsgError, vMsg, vnResult); -+ print("%s%s (%d)" % (strExitMsgError, vMsg, vnResult)); - sys.exit( vnResult ); - - #++--------------------------------------------------------------------------- -@@ -170,7 +170,7 @@ - if val.__len__() != 0: - strEqs = " ="; - strQ = "\""; -- print "%s%s%s %s%s%s\n" % (strParameter, arg, strEqs, strQ, val, strQ); -+ print("%s%s%s %s%s%s\n" % (strParameter, arg, strEqs, strQ, val, strQ)); - - #++--------------------------------------------------------------------------- - # Details: Locate the lldb.swig file. No checking for path correctness is -@@ -193,7 +193,7 @@ - bOk = os.path.isfile( strFullPath ); - if bOk: - if gbDbgFlag: -- print strSwigFileFound; -+ print(strSwigFileFound); - else: - strStatusMsg = strSwigFileFoundNotFound % strFullPath; - -@@ -227,8 +227,8 @@ - return (-9, strStatusMsg); - - if gbDbgFlag: -- print strSwigScriptLangFound % vStrScriptLang; -- print strSwigExecuteMsg % vStrScriptLang; -+ print(strSwigScriptLangFound % vStrScriptLang); -+ print(strSwigExecuteMsg % vStrScriptLang); - - # Change where Python looks for our modules - strDir = os.path.normcase( strScriptFileDir ); -@@ -287,16 +287,18 @@ - listDirs.remove('.svn') - - if gbDbgFlag: -- print strSwigScriptLangsFound, -+ sys.stdout.write(strSwigScriptLangsFound) - for dir in listDirs: -- print dir, -- print "\n"; -+ sys.stdout.write(dir) -+ print("\n"); - - # Iterate script directory find any script language directories - for scriptLang in listDirs: -- dbg.dump_text( "Executing language script for \'%s\'" % scriptLang ); -- nResult, strStatusMsg = run_swig( scriptLang, strSwigBuildFileName, -- vDictArgs ); -+ # __pycache__ is a magic directory in Python 3 that holds .pyc files -+ if scriptLang != "__pycache__": -+ dbg.dump_text( "Executing language script for \'%s\'" % scriptLang ); -+ nResult, strStatusMsg = run_swig( scriptLang, strSwigBuildFileName, -+ vDictArgs ); - if nResult < 0: - break; - -@@ -503,7 +505,7 @@ - program_exit( -4, strMsgErrorOsTypeUnknown ); - - global gbDbgFlag; -- gbDbgFlag = dictArgs.has_key( "-d" ); -+ gbDbgFlag = "-d" in dictArgs; - if gbDbgFlag: - print_out_input_parameters( dictArgs ); - -@@ -513,8 +515,8 @@ - # called by this program - global gbMakeFileFlag; - global gbSwigGenDepFileFlag; -- gbMakeFileFlag = dictArgs.has_key( "-m" ); -- gbSwigGenDepFileFlag = dictArgs.has_key( "-M" ); -+ gbMakeFileFlag = "-m" in dictArgs; -+ gbSwigGenDepFileFlag = "-M" in dictArgs; - - bOk, strMsg = check_lldb_swig_file_exists( dictArgs[ "--srcRoot" ], eOSType ); - if bOk == False: diff --git a/devel/llvm37/files/llvm-wrapper.sh.in b/devel/llvm37/files/llvm-wrapper.sh.in deleted file mode 100644 index 0a460f3156e5..000000000000 --- a/devel/llvm37/files/llvm-wrapper.sh.in +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/sh -# $FreeBSD$ - -LLVM_PREFIX="%%LLVM_PREFIX%%" -LLVM_SUFFIX="%%LLVM_SUFFIX%%" - -tool=$(basename $0) -tool="${LLVM_PREFIX}/bin/${tool%${LLVM_SUFFIX}}" -LD_LIBRARY_PATH="${LD_LIBRARY_PATH:+${LD_LIBRARY_PATH}:}${LLVM_PREFIX}/lib" \ - "${tool}" "${@}" diff --git a/devel/llvm37/files/openmp-patch-bug32279 b/devel/llvm37/files/openmp-patch-bug32279 deleted file mode 100644 index b0c21a60776b..000000000000 --- a/devel/llvm37/files/openmp-patch-bug32279 +++ /dev/null @@ -1,25 +0,0 @@ ---- tools/openmp/runtime/cmake/LibompHandleFlags.cmake.orig 2017-03-16 15:57:00 UTC -+++ tools/openmp/runtime/cmake/LibompHandleFlags.cmake -@@ -165,6 +165,11 @@ function(libomp_get_fflags fflags) - if(${IA32}) - libomp_append(fflags_local -m32 LIBOMP_HAVE_M32_FORTRAN_FLAG) - endif() -+ IF(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD") -+ libomp_append(libflags_local "-Wl,--no-as-needed" LIBOMP_HAVE_AS_NEEDED_FLAG) -+ libomp_append(libflags_local "-lm") -+ libomp_append(libflags_local "-Wl,--as-needed" LIBOMP_HAVE_AS_NEEDED_FLAG) -+ ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD") - set(fflags_local ${fflags_local} ${LIBOMP_FFLAGS}) - libomp_setup_flags(fflags_local) - set(${fflags} ${fflags_local} PARENT_SCOPE) ---- tools/openmp/runtime/cmake/LibompMicroTests.cmake.orig 2017-03-16 15:57:29 UTC -+++ tools/openmp/runtime/cmake/LibompMicroTests.cmake -@@ -168,7 +168,7 @@ add_custom_command( - add_custom_target(libomp-test-deps DEPENDS test-deps/.success) - set(libomp_expected_library_deps) - if(CMAKE_SYSTEM_NAME MATCHES "FreeBSD") -- set(libomp_expected_library_deps libc.so.7 libthr.so.3) -+ set(libomp_expected_library_deps libc.so.7 libthr.so.3 libm.so.5) - elseif(APPLE) - set(libomp_expected_library_deps /usr/lib/libSystem.B.dylib) - elseif(WIN32) diff --git a/devel/llvm37/files/openmp-patch-tools_openmp_runtime_tools_expand-vars.pl b/devel/llvm37/files/openmp-patch-tools_openmp_runtime_tools_expand-vars.pl deleted file mode 100644 index 9df4ab1c0a41..000000000000 --- a/devel/llvm37/files/openmp-patch-tools_openmp_runtime_tools_expand-vars.pl +++ /dev/null @@ -1,11 +0,0 @@ ---- tools/openmp/runtime/tools/expand-vars.pl.orig 2014-02-24 10:40:15 UTC -+++ tools/openmp/runtime/tools/expand-vars.pl -@@ -113,7 +113,7 @@ $bulk = read_file( $input ); - - # Do the replacements. - $bulk =~ -- s{(?:\$($keyword_rexp)|\$($name_rexp)|\${{(.*?)}})} -+ s{(?:\$($keyword_rexp)|\$($name_rexp)|\$\{\{(.*?)\}\})} - { - my $value; - if ( defined( $1 ) ) { diff --git a/devel/llvm37/files/patch-llvm-svn-243590 b/devel/llvm37/files/patch-llvm-svn-243590 deleted file mode 100644 index 643ce3a92b22..000000000000 --- a/devel/llvm37/files/patch-llvm-svn-243590 +++ /dev/null @@ -1,73 +0,0 @@ ------------------------------------------------------------------------- -r243590 | matze | 2015-07-29 23:22:48 +0000 (Wed, 29 Jul 2015) | 9 lines - -IR: Implement Value::mergeUseLists() iteratively - -This avoids stack overflows when the the compiler does not perform tail call -elimination. Apparently this happens for MSVC with the /Ob2 switch which -may be used by external code including this header. - -Reported by and based on a patch from Jean-Francois Riendeau. - -Related to rdar://21900756 ------------------------------------------------------------------------- -Index: include/llvm/IR/Value.h -=================================================================== ---- include/llvm/IR/Value.h (revision 243589) -+++ include/llvm/IR/Value.h (revision 243590) -@@ -493,7 +493,28 @@ - template <class Compare> - static Use *mergeUseLists(Use *L, Use *R, Compare Cmp) { - Use *Merged; -- mergeUseListsImpl(L, R, &Merged, Cmp); -+ Use **Next = &Merged; -+ -+ for (;;) { -+ if (!L) { -+ *Next = R; -+ break; -+ } -+ if (!R) { -+ *Next = L; -+ break; -+ } -+ if (Cmp(*R, *L)) { -+ *Next = R; -+ Next = &R->Next; -+ R = R->Next; -+ } else { -+ *Next = L; -+ Next = &L->Next; -+ L = L->Next; -+ } -+ } -+ - return Merged; - } - -@@ -586,25 +607,6 @@ - } - } - --template <class Compare> --void Value::mergeUseListsImpl(Use *L, Use *R, Use **Next, Compare Cmp) { -- if (!L) { -- *Next = R; -- return; -- } -- if (!R) { -- *Next = L; -- return; -- } -- if (Cmp(*R, *L)) { -- *Next = R; -- mergeUseListsImpl(L, R->Next, &R->Next, Cmp); -- return; -- } -- *Next = L; -- mergeUseListsImpl(L->Next, R, &L->Next, Cmp); --} -- - // isa - Provide some specializations of isa so that we don't have to include - // the subtype header files to test to see if the value is a subclass... - // diff --git a/devel/llvm37/files/patch-svn-283188 b/devel/llvm37/files/patch-svn-283188 deleted file mode 100644 index 43f29670192b..000000000000 --- a/devel/llvm37/files/patch-svn-283188 +++ /dev/null @@ -1,26 +0,0 @@ ------------------------------------------------------------------------- -r283188 | mgorny | 2016-10-04 06:09:14 +0000 (Tue, 04 Oct 2016) | 9 lines - -[cmake] Use separate doctrees to prevent races between Sphinx instances - -Use separate doctrees between different Sphinx builders in order to -prevent race condition issues due to multiple Sphinx instances accessing -the same doctree cache in parallel. - -Bug: https://llvm.org/bugs/show_bug.cgi?id=23781 - -Differential Revision: https://reviews.llvm.org/D23755 ------------------------------------------------------------------------- -Index: cmake/modules/AddSphinxTarget.cmake -=================================================================== ---- cmake/modules/AddSphinxTarget.cmake (revision 283187) -+++ cmake/modules/AddSphinxTarget.cmake (revision 283188) -@@ -6,7 +6,7 @@ - # ``project`` should be the project name - function (add_sphinx_target builder project) - set(SPHINX_BUILD_DIR "${CMAKE_CURRENT_BINARY_DIR}/${builder}") -- set(SPHINX_DOC_TREE_DIR "${CMAKE_CURRENT_BINARY_DIR}/_doctrees") -+ set(SPHINX_DOC_TREE_DIR "${CMAKE_CURRENT_BINARY_DIR}/_doctrees-${builder}") - set(SPHINX_TARGET_NAME docs-${project}-${builder}) - - if (SPHINX_WARNINGS_AS_ERRORS) diff --git a/devel/llvm37/files/patch-tools_llvm-config_llvm-config.cpp b/devel/llvm37/files/patch-tools_llvm-config_llvm-config.cpp deleted file mode 100644 index 0b9504a8a0e1..000000000000 --- a/devel/llvm37/files/patch-tools_llvm-config_llvm-config.cpp +++ /dev/null @@ -1,14 +0,0 @@ ---- tools/llvm-config/llvm-config.cpp.orig 2015-12-21 11:12:59.047349000 +0100 -+++ tools/llvm-config/llvm-config.cpp 2015-12-21 11:14:08.881815000 +0100 -@@ -360,8 +360,9 @@ int main(int argc, char **argv) { - OS << ActiveLibDir << '/' << Lib; - } else if (PrintLibs) { - // If this is a typical library name, include it using -l. -- if (Lib.startswith("lib") && Lib.endswith(".a")) { -- OS << "-l" << Lib.slice(3, Lib.size()-2); -+ if (Lib.startswith("lib") && Lib.endswith(LTDL_SHLIB_EXT)) { -+ // sizeof counts trailing NULL -+ OS << "-l" << Lib.slice(3, Lib.size()-sizeof(LTDL_SHLIB_EXT)+1); - continue; - } - diff --git a/devel/llvm37/files/patch-utils_llvm-build_llvmbuild_main.py b/devel/llvm37/files/patch-utils_llvm-build_llvmbuild_main.py deleted file mode 100644 index e9ae98c4c9e5..000000000000 --- a/devel/llvm37/files/patch-utils_llvm-build_llvmbuild_main.py +++ /dev/null @@ -1,39 +0,0 @@ ---- utils/llvm-build/llvmbuild/main.py.orig 2014-11-19 04:34:20.000000000 +0100 -+++ utils/llvm-build/llvmbuild/main.py 2015-12-21 11:15:34.356019000 +0100 -@@ -393,6 +393,8 @@ subdirectories = %s - // - //===----------------------------------------------------------------------===// - -+#include "llvm/Config/config.h" -+ - """) - f.write('struct AvailableComponent {\n') - f.write(' /// The name of the component.\n') -@@ -413,7 +415,7 @@ subdirectories = %s - if library_name is None: - library_name_as_cstr = '0' - else: -- library_name_as_cstr = '"lib%s.a"' % library_name -+ library_name_as_cstr = '"lib%s" LTDL_SHLIB_EXT' % library_name - f.write(' { "%s", %s, %d, { %s } },\n' % ( - name, library_name_as_cstr, is_installed, - ', '.join('"%s"' % dep -@@ -718,7 +720,17 @@ def add_magic_target_components(parser, - - # We handle a few special cases of target names here for historical - # reasons, as these are the names configure currently comes up with. -- native_target_name = { 'x86' : 'X86', -+ native_target_name = { 'amd64' : 'X86', -+ 'arm' : 'ARM', -+ 'armeb' : 'ARM', -+ 'armv6' : 'ARM', -+ 'armv6hf' : 'ARM', -+ 'i386' : 'X86', -+ 'mips' : 'Mips', -+ 'powerpc' : 'PowerPC', -+ 'powerpc64' : 'PowerPC', -+ 'sparc64' : 'Sparc', -+ 'x86' : 'X86', - 'x86_64' : 'X86', - 'Unknown' : None }.get(opts.native_target, - opts.native_target) diff --git a/devel/llvm37/pkg-descr b/devel/llvm37/pkg-descr deleted file mode 100644 index d252f07c6790..000000000000 --- a/devel/llvm37/pkg-descr +++ /dev/null @@ -1,8 +0,0 @@ -The LLVM Project is a collection of modular and reusable compiler and -toolchain technologies. - -This port includes Clang (a C/C++/Objective-C compiler), LLD (a linker), -LLDB (a debugger), an OpenMP runtime library, and the LLVM infrastructure -these are built on. - -WWW: http://llvm.org/ diff --git a/devel/llvm37/pkg-plist b/devel/llvm37/pkg-plist deleted file mode 100644 index 37473e31e711..000000000000 --- a/devel/llvm37/pkg-plist +++ /dev/null @@ -1,2489 +0,0 @@ -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 diff --git a/lang/clang37/Makefile b/lang/clang37/Makefile deleted file mode 100644 index 788ada95ae1c..000000000000 --- a/lang/clang37/Makefile +++ /dev/null @@ -1,19 +0,0 @@ -# Created by: Brooks Davis -# $FreeBSD$ - -PORTNAME= clang -PORTVERSION= 3.7 -PORTREVISION= 3 -CATEGORIES= lang devel -PKGNAMESUFFIX= ${LLVM_SUFFIX} - -MAINTAINER= brooks@FreeBSD.org -COMMENT= C, Objective-C, and C++ compiler (use devel/llvm${LLVM_SUFFIX}) - -RUN_DEPENDS+= ${LOCALBASE}/bin/clang${LLVM_SUFFIX}:devel/llvm${LLVM_SUFFIX} - -LLVM_SUFFIX= 37 - -USES= metaport - -.include <bsd.port.mk> diff --git a/lang/clang37/pkg-descr b/lang/clang37/pkg-descr deleted file mode 100644 index 1df07184406d..000000000000 --- a/lang/clang37/pkg-descr +++ /dev/null @@ -1,7 +0,0 @@ -The goal of the Clang project is to create a new C, C++, Objective C and -Objective C++ front-end for the LLVM compiler. - -This is a meta port. The Clang compiler is installed by the -devel/llvm-devel port. - -WWW: http://clang.llvm.org/ |