llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-clang Author: None (Sirraide) <details> <summary>Changes</summary> In the discussion around #<!-- -->116792, @<!-- -->rjmccall mentioned that ARCMigrate has been obsoleted and that we could go ahead and remove it from Clang, so this patch does just that. I searched for every mention of ‘ARCMT’/‘ARCMigrate’/‘ObjCRewrite’ and removed everything that seemed related to what I was able to find. I also had to touch a bunch of bazel and gn build scripts as part of this, neither of which I’m familiar with so it’s possible that I missed something there. --- Patch is 1.49 MiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/119269.diff 383 Files Affected: - (modified) clang/CMakeLists.txt (-9) - (modified) clang/cmake/caches/Android.cmake (-1) - (modified) clang/cmake/caches/Fuchsia-stage2.cmake (-1) - (modified) clang/cmake/caches/Fuchsia.cmake (-1) - (modified) clang/docs/ReleaseNotes.rst (+2) - (modified) clang/include/clang-c/Index.h (-60) - (removed) clang/include/clang/ARCMigrate/ARCMT.h (-130) - (removed) clang/include/clang/ARCMigrate/ARCMTActions.h (-76) - (removed) clang/include/clang/ARCMigrate/FileRemapper.h (-84) - (modified) clang/include/clang/Basic/DiagnosticCommonKinds.td (-10) - (modified) clang/include/clang/Config/config.h.cmake (-2) - (modified) clang/include/clang/Driver/Action.h (-12) - (modified) clang/include/clang/Driver/Options.td (+1-109) - (modified) clang/include/clang/Frontend/FrontendOptions.h (+8-84) - (modified) clang/include/clang/Rewrite/Frontend/FrontendActions.h (-6) - (removed) clang/lib/ARCMigrate/ARCMT.cpp (-616) - (removed) clang/lib/ARCMigrate/ARCMTActions.cpp (-59) - (removed) clang/lib/ARCMigrate/CMakeLists.txt (-48) - (removed) clang/lib/ARCMigrate/FileRemapper.cpp (-274) - (removed) clang/lib/ARCMigrate/Internals.h (-180) - (removed) clang/lib/ARCMigrate/ObjCMT.cpp (-2262) - (removed) clang/lib/ARCMigrate/PlistReporter.cpp (-124) - (removed) clang/lib/ARCMigrate/TransAPIUses.cpp (-107) - (removed) clang/lib/ARCMigrate/TransARCAssign.cpp (-77) - (removed) clang/lib/ARCMigrate/TransAutoreleasePool.cpp (-435) - (removed) clang/lib/ARCMigrate/TransBlockObjCVariable.cpp (-146) - (removed) clang/lib/ARCMigrate/TransEmptyStatementsAndDealloc.cpp (-249) - (removed) clang/lib/ARCMigrate/TransGCAttrs.cpp (-350) - (removed) clang/lib/ARCMigrate/TransGCCalls.cpp (-76) - (removed) clang/lib/ARCMigrate/TransProperties.cpp (-379) - (removed) clang/lib/ARCMigrate/TransProtectedScope.cpp (-203) - (removed) clang/lib/ARCMigrate/TransRetainReleaseDealloc.cpp (-459) - (removed) clang/lib/ARCMigrate/TransUnbridgedCasts.cpp (-466) - (removed) clang/lib/ARCMigrate/TransUnusedInitDelegate.cpp (-77) - (removed) clang/lib/ARCMigrate/TransZeroOutPropsInDealloc.cpp (-224) - (removed) clang/lib/ARCMigrate/TransformActions.cpp (-700) - (removed) clang/lib/ARCMigrate/Transforms.cpp (-594) - (removed) clang/lib/ARCMigrate/Transforms.h (-224) - (modified) clang/lib/CMakeLists.txt (-3) - (modified) clang/lib/Driver/Action.cpp (+2-7) - (modified) clang/lib/Driver/Driver.cpp (+2-4) - (modified) clang/lib/Driver/ToolChain.cpp (-1) - (modified) clang/lib/Driver/ToolChains/Clang.cpp (-76) - (modified) clang/lib/Driver/ToolChains/Darwin.cpp (-14) - (modified) clang/lib/Frontend/CompilerInstance.cpp (-4) - (modified) clang/lib/Frontend/CompilerInvocation.cpp (-13) - (modified) clang/lib/Frontend/InitPreprocessor.cpp (+1-2) - (modified) clang/lib/Frontend/Rewrite/CMakeLists.txt (-2) - (modified) clang/lib/Frontend/Rewrite/FrontendActions.cpp (-21) - (removed) clang/lib/Frontend/Rewrite/RewriteModernObjC.cpp (-7531) - (removed) clang/lib/Frontend/Rewrite/RewriteObjC.cpp (-5866) - (modified) clang/lib/FrontendTool/CMakeLists.txt (-6) - (modified) clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp (+3-44) - (modified) clang/lib/Tooling/DependencyScanning/ModuleDepCollector.cpp (-3) - (removed) clang/test/ARCMT/Common.h (-110) - (removed) clang/test/ARCMT/GC-check-warn-nsalloc.m (-10) - (removed) clang/test/ARCMT/GC-check.m (-19) - (removed) clang/test/ARCMT/GC-no-arc-runtime.m (-80) - (removed) clang/test/ARCMT/GC-no-arc-runtime.m.result (-72) - (removed) clang/test/ARCMT/GC-no-finalize-removal.m (-88) - (removed) clang/test/ARCMT/GC-no-finalize-removal.m.result (-96) - (removed) clang/test/ARCMT/GC.h (-6) - (removed) clang/test/ARCMT/GC.m (-93) - (removed) clang/test/ARCMT/GC.m.result (-88) - (removed) clang/test/ARCMT/Inputs/Module.framework/Frameworks/SubFramework.framework/Headers/SubFramework.h (-5) - (removed) clang/test/ARCMT/Inputs/Module.framework/Headers/Buried/Treasure.h (-1) - (removed) clang/test/ARCMT/Inputs/Module.framework/Headers/Module.h (-28) - (removed) clang/test/ARCMT/Inputs/Module.framework/Headers/NotInModule.h (-1) - (removed) clang/test/ARCMT/Inputs/Module.framework/Headers/Sub.h (-3) - (removed) clang/test/ARCMT/Inputs/Module.framework/Headers/Sub2.h (-1) - (removed) clang/test/ARCMT/Inputs/Module.framework/Module () - (removed) clang/test/ARCMT/Inputs/Module.framework/PrivateHeaders/ModulePrivate.h (-1) - (removed) clang/test/ARCMT/Inputs/module.modulemap (-309) - (removed) clang/test/ARCMT/Inputs/test.h (-15) - (removed) clang/test/ARCMT/Inputs/test.h.result (-13) - (removed) clang/test/ARCMT/Inputs/test1.m.in (-16) - (removed) clang/test/ARCMT/Inputs/test1.m.in.result (-15) - (removed) clang/test/ARCMT/Inputs/test2.m.in (-6) - (removed) clang/test/ARCMT/Inputs/test2.m.in.result (-5) - (removed) clang/test/ARCMT/Inputs/with space/test.h (-15) - (removed) clang/test/ARCMT/Inputs/with space/test.h.result (-13) - (removed) clang/test/ARCMT/Inputs/with space/test1.m.in (-6) - (removed) clang/test/ARCMT/Inputs/with space/test1.m.in.result (-5) - (removed) clang/test/ARCMT/Inputs/with space/test2.m.in (-6) - (removed) clang/test/ARCMT/Inputs/with space/test2.m.in.result (-5) - (removed) clang/test/ARCMT/allowlisted/Inputs/header1.h (-1) - (removed) clang/test/ARCMT/allowlisted/header1.h (-8) - (removed) clang/test/ARCMT/allowlisted/header1.h.result (-7) - (removed) clang/test/ARCMT/allowlisted/header2.h (-8) - (removed) clang/test/ARCMT/allowlisted/header2.h.result (-7) - (removed) clang/test/ARCMT/allowlisted/objcmt-with-allowlist-impl.m (-18) - (removed) clang/test/ARCMT/allowlisted/objcmt-with-allowlist-impl.m.result (-18) - (removed) clang/test/ARCMT/allowlisted/objcmt-with-allowlist.m (-12) - (removed) clang/test/ARCMT/api.m (-9) - (removed) clang/test/ARCMT/api.m.result (-9) - (removed) clang/test/ARCMT/assign-prop-no-arc-runtime.m (-15) - (removed) clang/test/ARCMT/assign-prop-no-arc-runtime.m.result (-15) - (removed) clang/test/ARCMT/assign-prop-with-arc-runtime.m (-72) - (removed) clang/test/ARCMT/assign-prop-with-arc-runtime.m.result (-72) - (removed) clang/test/ARCMT/atautorelease-2.m (-29) - (removed) clang/test/ARCMT/atautorelease-2.m.result (-28) - (removed) clang/test/ARCMT/atautorelease-3.m (-40) - (removed) clang/test/ARCMT/atautorelease-3.m.result (-31) - (removed) clang/test/ARCMT/atautorelease-check.m (-144) - (removed) clang/test/ARCMT/atautorelease.m (-61) - (removed) clang/test/ARCMT/atautorelease.m.result (-60) - (removed) clang/test/ARCMT/autoreleases.m (-75) - (removed) clang/test/ARCMT/autoreleases.m.result (-69) - (removed) clang/test/ARCMT/block_copy_release.m (-17) - (removed) clang/test/ARCMT/block_copy_release.m.result (-15) - (removed) clang/test/ARCMT/check-api.m (-43) - (removed) clang/test/ARCMT/check-with-pch.m (-15) - (removed) clang/test/ARCMT/check-with-serialized-diag.m (-55) - (removed) clang/test/ARCMT/checking-in-arc.m (-50) - (removed) clang/test/ARCMT/checking.m (-351) - (removed) clang/test/ARCMT/cxx-checking.mm (-100) - (removed) clang/test/ARCMT/cxx-rewrite.mm (-33) - (removed) clang/test/ARCMT/cxx-rewrite.mm.result (-31) - (removed) clang/test/ARCMT/dealloc.m (-24) - (removed) clang/test/ARCMT/dealloc.m.result (-20) - (removed) clang/test/ARCMT/designated-init-in-header/designated-init-in-header.m (-3) - (removed) clang/test/ARCMT/designated-init-in-header/file1.m.in (-2) - (removed) clang/test/ARCMT/designated-init-in-header/file2.m.in (-14) - (removed) clang/test/ARCMT/designated-init-in-header/file2.m.in.result (-14) - (removed) clang/test/ARCMT/designated-init-in-header/header1.h (-14) - (removed) clang/test/ARCMT/designated-init-in-header/header1.h.result (-13) - (removed) clang/test/ARCMT/dispatch.m (-18) - (removed) clang/test/ARCMT/dispatch.m.result (-14) - (removed) clang/test/ARCMT/driver-migrate.m (-15) - (removed) clang/test/ARCMT/init.m (-39) - (removed) clang/test/ARCMT/init.m.result (-39) - (removed) clang/test/ARCMT/lit.local.cfg (-2) - (removed) clang/test/ARCMT/migrate-emit-errors.m (-12) - (removed) clang/test/ARCMT/migrate-on-pch-and-module.m (-12) - (removed) clang/test/ARCMT/migrate-plist-output.m (-51) - (removed) clang/test/ARCMT/migrate-space-in-path.m (-5) - (removed) clang/test/ARCMT/migrate-with-pch.m (-6) - (removed) clang/test/ARCMT/migrate.m (-5) - (removed) clang/test/ARCMT/no-canceling-bridge-to-bridge-cast.m (-41) - (removed) clang/test/ARCMT/nonobjc-to-objc-cast-2.m (-63) - (removed) clang/test/ARCMT/nonobjc-to-objc-cast.m (-83) - (removed) clang/test/ARCMT/nonobjc-to-objc-cast.m.result (-83) - (removed) clang/test/ARCMT/objcmt-arc-cf-annotations.m (-2017) - (removed) clang/test/ARCMT/objcmt-arc-cf-annotations.m.result (-2063) - (removed) clang/test/ARCMT/objcmt-atomic-property.m (-227) - (removed) clang/test/ARCMT/objcmt-atomic-property.m.result (-200) - (removed) clang/test/ARCMT/objcmt-boxing.m (-106) - (removed) clang/test/ARCMT/objcmt-boxing.m.result (-106) - (removed) clang/test/ARCMT/objcmt-designated-initializer.m (-44) - (removed) clang/test/ARCMT/objcmt-designated-initializer.m.result (-44) - (removed) clang/test/ARCMT/objcmt-instancetype-2.m (-103) - (removed) clang/test/ARCMT/objcmt-instancetype-2.m.result (-103) - (removed) clang/test/ARCMT/objcmt-instancetype-unnecessary-diff.m (-10) - (removed) clang/test/ARCMT/objcmt-instancetype.m (-111) - (removed) clang/test/ARCMT/objcmt-instancetype.m.result (-111) - (removed) clang/test/ARCMT/objcmt-invalid-code.mm (-19) - (removed) clang/test/ARCMT/objcmt-invalid-code.mm.result (-19) - (removed) clang/test/ARCMT/objcmt-migrate-all.m (-133) - (removed) clang/test/ARCMT/objcmt-migrate-all.m.result (-132) - (removed) clang/test/ARCMT/objcmt-ns-enum-crash.m (-14) - (removed) clang/test/ARCMT/objcmt-ns-enum-crash.m.result (-14) - (removed) clang/test/ARCMT/objcmt-ns-macros.m (-379) - (removed) clang/test/ARCMT/objcmt-ns-macros.m.result (-355) - (removed) clang/test/ARCMT/objcmt-ns-nonatomic-iosonly.m (-233) - (removed) clang/test/ARCMT/objcmt-ns-nonatomic-iosonly.m.result (-206) - (removed) clang/test/ARCMT/objcmt-ns-returns-inner-pointer.m (-128) - (removed) clang/test/ARCMT/objcmt-ns-returns-inner-pointer.m.result (-128) - (removed) clang/test/ARCMT/objcmt-numeric-literals.m (-502) - (removed) clang/test/ARCMT/objcmt-numeric-literals.m.result (-502) - (removed) clang/test/ARCMT/objcmt-property-availability.m (-45) - (removed) clang/test/ARCMT/objcmt-property-availability.m.result (-42) - (removed) clang/test/ARCMT/objcmt-property-dot-syntax.m (-117) - (removed) clang/test/ARCMT/objcmt-property-dot-syntax.m.result (-117) - (removed) clang/test/ARCMT/objcmt-property.m (-243) - (removed) clang/test/ARCMT/objcmt-property.m.result (-215) - (removed) clang/test/ARCMT/objcmt-protocol-conformance.m (-129) - (removed) clang/test/ARCMT/objcmt-protocol-conformance.m.result (-129) - (removed) clang/test/ARCMT/objcmt-subscripting-literals-in-arc.m (-108) - (removed) clang/test/ARCMT/objcmt-subscripting-literals-in-arc.m.result (-108) - (removed) clang/test/ARCMT/objcmt-subscripting-literals.m (-230) - (removed) clang/test/ARCMT/objcmt-subscripting-literals.m.result (-230) - (removed) clang/test/ARCMT/objcmt-subscripting-unavailable.m (-79) - (removed) clang/test/ARCMT/objcmt-subscripting-unavailable.m.result (-79) - (removed) clang/test/ARCMT/objcmt-undefined-ns-macros.m (-22) - (removed) clang/test/ARCMT/objcmt-undefined-ns-macros.m.result (-24) - (removed) clang/test/ARCMT/objcmt-with-pch.m (-17) - (removed) clang/test/ARCMT/objcmt-with-pch.m.result (-17) - (removed) clang/test/ARCMT/protected-scope.m (-36) - (removed) clang/test/ARCMT/protected-scope.m.result (-38) - (removed) clang/test/ARCMT/releases-driver.m (-67) - (removed) clang/test/ARCMT/releases-driver.m.result (-58) - (removed) clang/test/ARCMT/releases.m (-98) - (removed) clang/test/ARCMT/releases.m.result (-87) - (removed) clang/test/ARCMT/remap-applying.c (-4) - (removed) clang/test/ARCMT/remap-applying.c.result (-4) - (removed) clang/test/ARCMT/remove-dealloc-method.m (-26) - (removed) clang/test/ARCMT/remove-dealloc-method.m.result (-20) - (removed) clang/test/ARCMT/remove-dealloc-zerouts.m (-44) - (removed) clang/test/ARCMT/remove-dealloc-zerouts.m.result (-39) - (removed) clang/test/ARCMT/remove-statements.m (-45) - (removed) clang/test/ARCMT/remove-statements.m.result (-38) - (removed) clang/test/ARCMT/retains.m (-71) - (removed) clang/test/ARCMT/retains.m.result (-65) - (removed) clang/test/ARCMT/rewrite-block-var.m (-45) - (removed) clang/test/ARCMT/rewrite-block-var.m.result (-45) - (removed) clang/test/ARCMT/safe-arc-assign.m (-14) - (removed) clang/test/ARCMT/safe-arc-assign.m.result (-14) - (removed) clang/test/ARCMT/verify.m (-17) - (removed) clang/test/ARCMT/with-arc-mode-modify.m (-13) - (removed) clang/test/ARCMT/with-arc-mode-modify.m.result (-12) - (modified) clang/test/CMakeLists.txt (+1-9) - (modified) clang/test/ClangScanDeps/strip-input-args.m (+2-7) - (removed) clang/test/Driver/objc-sdk-migration-options.m (-8) - (modified) clang/test/Misc/warning-flags.c (+1-3) - (removed) clang/test/Rewriter/blockcast3.mm (-25) - (removed) clang/test/Rewriter/blockstruct.m (-16) - (removed) clang/test/Rewriter/crash.m (-23) - (removed) clang/test/Rewriter/finally.m (-43) - (removed) clang/test/Rewriter/func-in-impl.m (-30) - (removed) clang/test/Rewriter/id-test-3.m (-14) - (removed) clang/test/Rewriter/inner-block-helper-funcs.mm (-31) - (removed) clang/test/Rewriter/instancetype-test.mm (-77) - (removed) clang/test/Rewriter/ivar-encoding-1.m (-15) - (removed) clang/test/Rewriter/ivar-encoding-2.m (-12) - (removed) clang/test/Rewriter/line-generation-test.m (-39) - (removed) clang/test/Rewriter/lit.local.cfg (-3) - (removed) clang/test/Rewriter/metadata-test-1.m (-12) - (removed) clang/test/Rewriter/metadata-test-2.m (-15) - (removed) clang/test/Rewriter/method-encoding-1.m (-18) - (removed) clang/test/Rewriter/modern-write-bf-abi.mm (-119) - (removed) clang/test/Rewriter/no-integrated-preprocessing-64bit.m (-25) - (removed) clang/test/Rewriter/no-integrated-preprocessing.m (-25) - (removed) clang/test/Rewriter/objc-bool-literal-check-modern.mm (-28) - (removed) clang/test/Rewriter/objc-bool-literal-modern-1.mm (-32) - (removed) clang/test/Rewriter/objc-bool-literal-modern.mm (-22) - (removed) clang/test/Rewriter/objc-encoding-bug-1.m (-19) - (removed) clang/test/Rewriter/objc-ivar-receiver-1.m (-24) - (removed) clang/test/Rewriter/objc-modern-StretAPI-2.mm (-29) - (removed) clang/test/Rewriter/objc-modern-StretAPI-3.mm (-57) - (removed) clang/test/Rewriter/objc-modern-StretAPI.mm (-44) - (removed) clang/test/Rewriter/objc-modern-boxing.mm (-72) - (removed) clang/test/Rewriter/objc-modern-class-init-hooks.mm (-35) - (removed) clang/test/Rewriter/objc-modern-class-init.mm (-22) - (removed) clang/test/Rewriter/objc-modern-container-subscript.mm (-48) - (removed) clang/test/Rewriter/objc-modern-fast-enumeration.mm (-24) - (removed) clang/test/Rewriter/objc-modern-getclass-proto.mm (-9) - (removed) clang/test/Rewriter/objc-modern-implicit-cast.mm (-32) - (removed) clang/test/Rewriter/objc-modern-ivar-receiver-1.mm (-30) - (removed) clang/test/Rewriter/objc-modern-linkage-spec.mm (-20) - (removed) clang/test/Rewriter/objc-modern-metadata-visibility.mm (-39) - (removed) clang/test/Rewriter/objc-modern-numeric-literal.mm (-68) - (removed) clang/test/Rewriter/objc-modern-property-attributes.mm (-55) - (removed) clang/test/Rewriter/objc-modern-property-bitfield.m (-42) - (removed) clang/test/Rewriter/objc-string-concat-1.m (-14) - (removed) clang/test/Rewriter/objc-super-test.m (-18) - (removed) clang/test/Rewriter/objc-synchronized-1.m (-20) - (removed) clang/test/Rewriter/properties.m (-57) - (removed) clang/test/Rewriter/property-dot-syntax.mm (-44) - (removed) clang/test/Rewriter/protocol-rewrite-1.m (-70) - (removed) clang/test/Rewriter/protocol-rewrite-2.m (-6) - (removed) clang/test/Rewriter/rewrite-anonymous-union.m (-29) - (removed) clang/test/Rewriter/rewrite-api-bug.m (-11) - (removed) clang/test/Rewriter/rewrite-block-argument.m (-32) - (removed) clang/test/Rewriter/rewrite-block-consts.mm (-18) - (removed) clang/test/Rewriter/rewrite-block-ivar-call.mm (-12) - (removed) clang/test/Rewriter/rewrite-block-literal-1.mm (-36) - (removed) clang/test/Rewriter/rewrite-block-literal.mm (-76) - (removed) clang/test/Rewriter/rewrite-block-pointer.mm (-106) - (removed) clang/test/Rewriter/rewrite-block-property.m (-14) - (removed) clang/test/Rewriter/rewrite-byref-in-nested-blocks.mm (-28) - (removed) clang/test/Rewriter/rewrite-byref-vars.mm (-56) - (removed) clang/test/Rewriter/rewrite-captured-nested-bvar.c (-34) - (removed) clang/test/Rewriter/rewrite-cast-ivar-access.mm (-51) - (removed) clang/test/Rewriter/rewrite-cast-ivar-modern-access.mm (-45) - (removed) clang/test/Rewriter/rewrite-cast-to-bool.mm (-16) - (removed) clang/test/Rewriter/rewrite-category-property.mm (-14) - (removed) clang/test/Rewriter/rewrite-constructor-init.mm (-23) - (removed) clang/test/Rewriter/rewrite-eh.m (-19) - (removed) clang/test/Rewriter/rewrite-elaborated-type.mm (-39) - (removed) clang/test/Rewriter/rewrite-extern-c.mm (-7) - (removed) clang/test/Rewriter/rewrite-foreach-1.m (-37) - (removed) clang/test/Rewriter/rewrite-foreach-2.m (-34) - (removed) clang/test/Rewriter/rewrite-foreach-3.m (-29) - (removed) clang/test/Rewriter/rewrite-foreach-4.m (-32) - (removed) clang/test/Rewriter/rewrite-foreach-5.m (-51) - (removed) clang/test/Rewriter/rewrite-foreach-6.m (-16) - (removed) clang/test/Rewriter/rewrite-foreach-7.m (-7) - (removed) clang/test/Rewriter/rewrite-foreach-in-block.mm (-31) - (removed) clang/test/Rewriter/rewrite-foreach-protocol-id.m (-28) - (removed) clang/test/Rewriter/rewrite-forward-class.m (-34) - (removed) clang/test/Rewriter/rewrite-forward-class.mm (-53) - (removed) clang/test/Rewriter/rewrite-function-decl.mm (-31) - (removed) clang/test/Rewriter/rewrite-implementation.mm (-15) - (removed) clang/test/Rewriter/rewrite-interface-locals.mm (-19) - (removed) clang/test/Rewriter/rewrite-ivar-use.m (-26) - (removed) clang/test/Rewriter/rewrite-line-directive.m (-17) - (removed) clang/test/Rewriter/rewrite-local-externs-in-block.mm (-22) - (removed) clang/test/Rewriter/rewrite-local-static-id.mm (-23) - (removed) clang/test/Rewriter/rewrite-message-expr.mm (-24) - (removed) clang/test/Rewriter/rewrite-modern-array-literal.mm (-26) - (removed) clang/test/Rewriter/rewrite-modern-atautoreleasepool.mm (-31) - (removed) clang/test/Rewriter/rewrite-modern-block-consts.mm (-20) - (removed) clang/test/Rewriter/rewrite-modern-block-ivar-call.mm (-17) - (removed) clang/test/Rewriter/rewrite-modern-block.mm (-63) - (removed) clang/test/Rewriter/rewrite-modern-captured-nested-bvar.mm (-34) - (removed) clang/test/Rewriter/rewrite-modern-catch.m (-31) - (removed) clang/test/Rewriter/rewrite-modern-class.mm (-70) - (removed) clang/test/Rewriter/rewrite-modern-container-literal.mm (-54) - (removed) clang/test/Rewriter/rewrite-modern-default-property-synthesis.mm (-79) - (removed) clang/test/Rewriter/rewrite-modern-extern-c-func-decl.mm (-91) - (removed) clang/test/Rewriter/rewrite-modern-ivar-access.mm (-98) - (removed) clang/test/Rewriter/rewrite-modern-ivar-use.mm (-25) - (removed) clang/test/Rewriter/rewrite-modern-ivars-1.mm (-124) - (removed) clang/test/Rewriter/rewrite-modern-ivars-2.mm (-99) - (removed) clang/test/Rewriter/rewrite-modern-ivars.mm (-64) - (removed) clang/test/Rewriter/rewrite-modern-nested-ivar.mm (-33) - (removed) clang/test/Rewriter/rewrite-modern-private-ivars.mm (-52) - (removed) clang/test/Rewriter/rewrite-modern-protocol-1.mm (-13) - (removed) clang/test/Rewriter/rewrite-modern-protocol.mm (-31) - (removed) clang/test/Rewriter/rewrite-modern-qualified-type.mm (-10) - (removed) clang/test/Rewriter/rewrite-modern-struct-ivar-1.mm (-47) - (removed) clang/test/Rewriter/rewrite-modern-struct-ivar.mm (-51) - (removed) clang/test/Rewriter/rewrite-modern-super.mm (-22) - (removed) clang/test/Rewriter/rewrite-modern-synchronized.m (-45) - (removed) clang/test/Rewriter/rewrite-modern-throw.m (-92) - (removed) clang/test/Rewriter/rewrite-modern-try-catch-finally.m (-63) - (removed) clang/test/Rewriter/rewrite-modern-try-finally.m (-40) ``````````diff diff --git a/clang/CMakeLists.txt b/clang/CMakeLists.txt index 27e8095534a65c..7050746e3a0380 100644 --- a/clang/CMakeLists.txt +++ b/clang/CMakeLists.txt @@ -432,20 +432,11 @@ if(NOT LLVM_STATIC_LINK_CXX_STDLIB) set(HAVE_CLANG_REPL_SUPPORT ON) endif() -option(CLANG_ENABLE_ARCMT "Build ARCMT." ON) option(CLANG_ENABLE_STATIC_ANALYZER "Include static analyzer in clang binary." ON) option(CLANG_ENABLE_PROTO_FUZZER "Build Clang protobuf fuzzer." OFF) -if(NOT CLANG_ENABLE_STATIC_ANALYZER AND CLANG_ENABLE_ARCMT) - message(FATAL_ERROR "Cannot disable static analyzer while enabling ARCMT or Z3") -endif() - -if(CLANG_ENABLE_ARCMT) - set(CLANG_ENABLE_OBJC_REWRITER ON) -endif() - # This option is a stop-gap, we should commit to removing this as # soon as possible. See discussion: # https://discourse.llvm.org/t/rationale-for-removing-versioned-libclang-middle-ground-to-keep-it-behind-option/ diff --git a/clang/cmake/caches/Android.cmake b/clang/cmake/caches/Android.cmake index d5ca6b50d4ada7..c89e31f67cc9b1 100644 --- a/clang/cmake/caches/Android.cmake +++ b/clang/cmake/caches/Android.cmake @@ -2,7 +2,6 @@ set(LLVM_TARGETS_TO_BUILD X86 CACHE STRING "") -set(CLANG_ENABLE_ARCMT OFF CACHE BOOL "") set(CLANG_ENABLE_STATIC_ANALYZER OFF CACHE BOOL "") set(CLANG_TIDY_ENABLE_STATIC_ANALYZER OFF CACHE BOOL "") set(CLANG_VENDOR Android CACHE STRING "") diff --git a/clang/cmake/caches/Fuchsia-stage2.cmake b/clang/cmake/caches/Fuchsia-stage2.cmake index 784a883a3bf916..3db19c36acc581 100644 --- a/clang/cmake/caches/Fuchsia-stage2.cmake +++ b/clang/cmake/caches/Fuchsia-stage2.cmake @@ -44,7 +44,6 @@ set(CLANG_DEFAULT_LINKER lld CACHE STRING "") set(CLANG_DEFAULT_OBJCOPY llvm-objcopy CACHE STRING "") set(CLANG_DEFAULT_RTLIB compiler-rt CACHE STRING "") set(CLANG_DEFAULT_UNWINDLIB libunwind CACHE STRING "") -set(CLANG_ENABLE_ARCMT OFF CACHE BOOL "") set(CLANG_ENABLE_STATIC_ANALYZER ON CACHE BOOL "") set(CLANG_PLUGIN_SUPPORT OFF CACHE BOOL "") diff --git a/clang/cmake/caches/Fuchsia.cmake b/clang/cmake/caches/Fuchsia.cmake index 07637cd0ed08f0..83336589da305d 100644 --- a/clang/cmake/caches/Fuchsia.cmake +++ b/clang/cmake/caches/Fuchsia.cmake @@ -84,7 +84,6 @@ set(CLANG_DEFAULT_LINKER lld CACHE STRING "") set(CLANG_DEFAULT_OBJCOPY llvm-objcopy CACHE STRING "") set(CLANG_DEFAULT_RTLIB compiler-rt CACHE STRING "") set(CLANG_DEFAULT_UNWINDLIB libunwind CACHE STRING "") -set(CLANG_ENABLE_ARCMT OFF CACHE BOOL "") set(CLANG_ENABLE_STATIC_ANALYZER OFF CACHE BOOL "") set(CLANG_PLUGIN_SUPPORT OFF CACHE BOOL "") diff --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst index 3f58e64cf0ccbc..c168606af609ed 100644 --- a/clang/docs/ReleaseNotes.rst +++ b/clang/docs/ReleaseNotes.rst @@ -58,6 +58,8 @@ code bases. containing strict-aliasing violations. The new default behavior can be disabled using ``-fno-pointer-tbaa``. +- The Objective-C ARC migrator (ARCMigrate) has been removed. + C/C++ Language Potentially Breaking Changes ------------------------------------------- diff --git a/clang/include/clang-c/Index.h b/clang/include/clang-c/Index.h index 8fc06328f0bcef..ee9e159b6dad76 100644 --- a/clang/include/clang-c/Index.h +++ b/clang/include/clang-c/Index.h @@ -5850,66 +5850,6 @@ CINDEX_LINKAGE const char *clang_EvalResult_getAsStr(CXEvalResult E); * Disposes the created Eval memory. */ CINDEX_LINKAGE void clang_EvalResult_dispose(CXEvalResult E); -/** - * @} - */ - -/** \defgroup CINDEX_REMAPPING Remapping functions - * - * @{ - */ - -/** - * A remapping of original source files and their translated files. - */ -typedef void *CXRemapping; - -/** - * Retrieve a remapping. - * - * \param path the path that contains metadata about remappings. - * - * \returns the requested remapping. This remapping must be freed - * via a call to \c clang_remap_dispose(). Can return NULL if an error occurred. - */ -CINDEX_LINKAGE CXRemapping clang_getRemappings(const char *path); - -/** - * Retrieve a remapping. - * - * \param filePaths pointer to an array of file paths containing remapping info. - * - * \param numFiles number of file paths. - * - * \returns the requested remapping. This remapping must be freed - * via a call to \c clang_remap_dispose(). Can return NULL if an error occurred. - */ -CINDEX_LINKAGE -CXRemapping clang_getRemappingsFromFileList(const char **filePaths, - unsigned numFiles); - -/** - * Determine the number of remappings. - */ -CINDEX_LINKAGE unsigned clang_remap_getNumFiles(CXRemapping); - -/** - * Get the original and the associated filename from the remapping. - * - * \param original If non-NULL, will be set to the original filename. - * - * \param transformed If non-NULL, will be set to the filename that the original - * is associated with. - */ -CINDEX_LINKAGE void clang_remap_getFilenames(CXRemapping, unsigned index, - CXString *original, - CXString *transformed); - -/** - * Dispose the remapping. - */ -CINDEX_LINKAGE void clang_remap_dispose(CXRemapping); - /** * @} */ diff --git a/clang/include/clang/ARCMigrate/ARCMT.h b/clang/include/clang/ARCMigrate/ARCMT.h deleted file mode 100644 index 2b950e3d2cc2bf..00000000000000 --- a/clang/include/clang/ARCMigrate/ARCMT.h +++ /dev/null @@ -1,130 +0,0 @@ -//===-- ARCMT.h - ARC Migration Rewriter ------------------------*- C++ -*-===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// - -#ifndef LLVM_CLANG_ARCMIGRATE_ARCMT_H -#define LLVM_CLANG_ARCMIGRATE_ARCMT_H - -#include "clang/ARCMigrate/FileRemapper.h" -#include "clang/Basic/SourceLocation.h" -#include "clang/Frontend/CompilerInvocation.h" - -namespace clang { - class ASTContext; - class DiagnosticConsumer; - class PCHContainerOperations; - -namespace arcmt { - class MigrationPass; - -/// Creates an AST with the provided CompilerInvocation but with these -/// changes: -/// -if a PCH/PTH is set, the original header is used instead -/// -Automatic Reference Counting mode is enabled -/// -/// It then checks the AST and produces errors/warning for ARC migration issues -/// that the user needs to handle manually. -/// -/// \param emitPremigrationARCErrors if true all ARC errors will get emitted -/// even if the migrator can fix them, but the function will still return false -/// if all ARC errors can be fixed. -/// -/// \param plistOut if non-empty, it is the file path to store the plist with -/// the pre-migration ARC diagnostics. -/// -/// \returns false if no error is produced, true otherwise. -bool -checkForManualIssues(CompilerInvocation &CI, const FrontendInputFile &Input, - std::shared_ptr<PCHContainerOperations> PCHContainerOps, - DiagnosticConsumer *DiagClient, - bool emitPremigrationARCErrors = false, - StringRef plistOut = StringRef()); - -/// Works similar to checkForManualIssues but instead of checking, it -/// applies automatic modifications to source files to conform to ARC. -/// -/// \returns false if no error is produced, true otherwise. -bool -applyTransformations(CompilerInvocation &origCI, - const FrontendInputFile &Input, - std::shared_ptr<PCHContainerOperations> PCHContainerOps, - DiagnosticConsumer *DiagClient); - -/// Applies automatic modifications and produces temporary files -/// and metadata into the \p outputDir path. -/// -/// \param emitPremigrationARCErrors if true all ARC errors will get emitted -/// even if the migrator can fix them, but the function will still return false -/// if all ARC errors can be fixed. -/// -/// \param plistOut if non-empty, it is the file path to store the plist with -/// the pre-migration ARC diagnostics. -/// -/// \returns false if no error is produced, true otherwise. -bool migrateWithTemporaryFiles( - CompilerInvocation &origCI, const FrontendInputFile &Input, - std::shared_ptr<PCHContainerOperations> PCHContainerOps, - DiagnosticConsumer *DiagClient, StringRef outputDir, - bool emitPremigrationARCErrors, StringRef plistOut); - -/// Get the set of file remappings from the \p outputDir path that -/// migrateWithTemporaryFiles produced. -/// -/// \returns false if no error is produced, true otherwise. -bool getFileRemappings(std::vector<std::pair<std::string,std::string> > &remap, - StringRef outputDir, - DiagnosticConsumer *DiagClient); - -/// Get the set of file remappings from a list of files with remapping -/// info. -/// -/// \returns false if no error is produced, true otherwise. -bool getFileRemappingsFromFileList( - std::vector<std::pair<std::string,std::string> > &remap, - ArrayRef<StringRef> remapFiles, - DiagnosticConsumer *DiagClient); - -typedef void (*TransformFn)(MigrationPass &pass); - -std::vector<TransformFn> getAllTransformations(LangOptions::GCMode OrigGCMode, - bool NoFinalizeRemoval); - -class MigrationProcess { - CompilerInvocation OrigCI; - std::shared_ptr<PCHContainerOperations> PCHContainerOps; - DiagnosticConsumer *DiagClient; - FileRemapper Remapper; - -public: - bool HadARCErrors; - - MigrationProcess(CompilerInvocation &CI, - std::shared_ptr<PCHContainerOperations> PCHContainerOps, - DiagnosticConsumer *diagClient, - StringRef outputDir = StringRef()); - - class RewriteListener { - public: - virtual ~RewriteListener(); - - virtual void start(ASTContext &Ctx) { } - virtual void finish() { } - - virtual void insert(SourceLocation loc, StringRef text) { } - virtual void remove(CharSourceRange range) { } - }; - - bool applyTransform(TransformFn trans, RewriteListener *listener = nullptr); - - FileRemapper &getRemapper() { return Remapper; } -}; - -} // end namespace arcmt - -} // end namespace clang - -#endif diff --git a/clang/include/clang/ARCMigrate/ARCMTActions.h b/clang/include/clang/ARCMigrate/ARCMTActions.h deleted file mode 100644 index 714f4b33db446b..00000000000000 --- a/clang/include/clang/ARCMigrate/ARCMTActions.h +++ /dev/null @@ -1,76 +0,0 @@ -//===--- ARCMTActions.h - ARC Migrate Tool Frontend Actions -----*- C++ -*-===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// - -#ifndef LLVM_CLANG_ARCMIGRATE_ARCMTACTIONS_H -#define LLVM_CLANG_ARCMIGRATE_ARCMTACTIONS_H - -#include "clang/ARCMigrate/FileRemapper.h" -#include "clang/Frontend/FrontendAction.h" -#include <memory> - -namespace clang { -namespace arcmt { - -class CheckAction : public WrapperFrontendAction { -protected: - bool BeginInvocation(CompilerInstance &CI) override; - -public: - CheckAction(std::unique_ptr<FrontendAction> WrappedAction); -}; - -class ModifyAction : public WrapperFrontendAction { -protected: - bool BeginInvocation(CompilerInstance &CI) override; - -public: - ModifyAction(std::unique_ptr<FrontendAction> WrappedAction); -}; - -class MigrateSourceAction : public ASTFrontendAction { - FileRemapper Remapper; -protected: - bool BeginInvocation(CompilerInstance &CI) override; - std::unique_ptr<ASTConsumer> CreateASTConsumer(CompilerInstance &CI, - StringRef InFile) override; -}; - -class MigrateAction : public WrapperFrontendAction { - std::string MigrateDir; - std::string PlistOut; - bool EmitPremigrationARCErrors; -protected: - bool BeginInvocation(CompilerInstance &CI) override; - -public: - MigrateAction(std::unique_ptr<FrontendAction> WrappedAction, - StringRef migrateDir, - StringRef plistOut, - bool emitPremigrationARCErrors); -}; - -/// Migrates to modern ObjC syntax. -class ObjCMigrateAction : public WrapperFrontendAction { - std::string MigrateDir; - unsigned ObjCMigAction; - FileRemapper Remapper; - CompilerInstance *CompInst; -public: - ObjCMigrateAction(std::unique_ptr<FrontendAction> WrappedAction, - StringRef migrateDir, unsigned migrateAction); - -protected: - std::unique_ptr<ASTConsumer> CreateASTConsumer(CompilerInstance &CI, - StringRef InFile) override; - bool BeginInvocation(CompilerInstance &CI) override; -}; - -} -} - -#endif diff --git a/clang/include/clang/ARCMigrate/FileRemapper.h b/clang/include/clang/ARCMigrate/FileRemapper.h deleted file mode 100644 index afcee363516a21..00000000000000 --- a/clang/include/clang/ARCMigrate/FileRemapper.h +++ /dev/null @@ -1,84 +0,0 @@ -//===-- FileRemapper.h - File Remapping Helper ------------------*- C++ -*-===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// - -#ifndef LLVM_CLANG_ARCMIGRATE_FILEREMAPPER_H -#define LLVM_CLANG_ARCMIGRATE_FILEREMAPPER_H - -#include "clang/Basic/FileEntry.h" -#include "clang/Basic/LLVM.h" -#include "llvm/ADT/DenseMap.h" -#include "llvm/ADT/STLExtras.h" -#include "llvm/ADT/StringRef.h" -#include <memory> -#include <variant> - -namespace llvm { - class MemoryBuffer; - class MemoryBufferRef; -} - -namespace clang { - class FileManager; - class DiagnosticsEngine; - class PreprocessorOptions; - -namespace arcmt { - -class FileRemapper { - // FIXME: Reuse the same FileManager for multiple ASTContexts. - std::unique_ptr<FileManager> FileMgr; - - using Target = std::variant<FileEntryRef, llvm::MemoryBuffer *>; - using MappingsTy = llvm::DenseMap<FileEntryRef, Target>; - MappingsTy FromToMappings; - - llvm::DenseMap<const FileEntry *, FileEntryRef> ToFromMappings; - -public: - FileRemapper(); - ~FileRemapper(); - - bool initFromDisk(StringRef outputDir, DiagnosticsEngine &Diag, - bool ignoreIfFilesChanged); - bool initFromFile(StringRef filePath, DiagnosticsEngine &Diag, - bool ignoreIfFilesChanged); - bool flushToDisk(StringRef outputDir, DiagnosticsEngine &Diag); - bool flushToFile(StringRef outputPath, DiagnosticsEngine &Diag); - - bool overwriteOriginal(DiagnosticsEngine &Diag, - StringRef outputDir = StringRef()); - - void remap(StringRef filePath, std::unique_ptr<llvm::MemoryBuffer> memBuf); - - void applyMappings(PreprocessorOptions &PPOpts) const; - - /// Iterate through all the mappings. - void forEachMapping( - llvm::function_ref<void(StringRef, StringRef)> CaptureFile, - llvm::function_ref<void(StringRef, const llvm::MemoryBufferRef &)> - CaptureBuffer) const; - - void clear(StringRef outputDir = StringRef()); - -private: - void remap(FileEntryRef file, std::unique_ptr<llvm::MemoryBuffer> memBuf); - void remap(FileEntryRef file, FileEntryRef newfile); - - OptionalFileEntryRef getOriginalFile(StringRef filePath); - void resetTarget(Target &targ); - - bool report(const Twine &err, DiagnosticsEngine &Diag); - - std::string getRemapInfoFile(StringRef outputDir); -}; - -} // end namespace arcmt - -} // end namespace clang - -#endif diff --git a/clang/include/clang/Basic/DiagnosticCommonKinds.td b/clang/include/clang/Basic/DiagnosticCommonKinds.td index f4a155bb00bb37..f26c906b46447a 100644 --- a/clang/include/clang/Basic/DiagnosticCommonKinds.td +++ b/clang/include/clang/Basic/DiagnosticCommonKinds.td @@ -402,16 +402,6 @@ def note_file_misc_sloc_usage : Note< def err_module_format_unhandled : Error< "no handler registered for module format '%0'">, DefaultFatal; -// TransformActions -// TODO: Use a custom category name to distinguish rewriter errors. -def err_mt_message : Error<"[rewriter] %0">, SuppressInSystemHeader; -def warn_mt_message : Warning<"[rewriter] %0">; -def note_mt_message : Note<"[rewriter] %0">; - -// ARCMigrate -def warn_arcmt_nsalloc_realloc : Warning<"[rewriter] call returns pointer to GC managed memory; it will become unmanaged in ARC">; -def err_arcmt_nsinvocation_ownership : Error<"NSInvocation's %0 is not safe to be used with an object with ownership other than __unsafe_unretained">; - // API notes def err_apinotes_message : Error<"%0">; def warn_apinotes_message : Warning<"%0">, InGroup<DiagGroup<"apinotes">>; diff --git a/clang/include/clang/Config/config.h.cmake b/clang/include/clang/Config/config.h.cmake index 27ed69e21562bf..805721237609b1 100644 --- a/clang/include/clang/Config/config.h.cmake +++ b/clang/include/clang/Config/config.h.cmake @@ -76,8 +76,6 @@ #cmakedefine01 PPC_LINUX_DEFAULT_IEEELONGDOUBLE /* Enable each functionality of modules */ -#cmakedefine01 CLANG_ENABLE_ARCMT -#cmakedefine01 CLANG_ENABLE_OBJC_REWRITER #cmakedefine01 CLANG_ENABLE_STATIC_ANALYZER /* Spawn a new process clang.exe for the CC1 tool invocation, when necessary */ diff --git a/clang/include/clang/Driver/Action.h b/clang/include/clang/Driver/Action.h index 04fa8b01b418f8..bb9444d2e9ccdc 100644 --- a/clang/include/clang/Driver/Action.h +++ b/clang/include/clang/Driver/Action.h @@ -60,7 +60,6 @@ class Action { PrecompileJobClass, ExtractAPIJobClass, AnalyzeJobClass, - MigrateJobClass, CompileJobClass, BackendJobClass, AssembleJobClass, @@ -459,17 +458,6 @@ class AnalyzeJobAction : public JobAction { } }; -class MigrateJobAction : public JobAction { - void anchor() override; - -public: - MigrateJobAction(Action *Input, types::ID OutputType); - - static bool classof(const Action *A) { - return A->getKind() == MigrateJobClass; - } -}; - class CompileJobAction : public JobAction { void anchor() override; diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td index a89a4e8f8ec985..642d2a1268a002 100644 --- a/clang/include/clang/Driver/Options.td +++ b/clang/include/clang/Driver/Options.td @@ -692,20 +692,6 @@ def ccc_print_phases : Flag<["-"], "ccc-print-phases">, def ccc_print_bindings : Flag<["-"], "ccc-print-bindings">, InternalDebugOpt, HelpText<"Show bindings of tools to actions">; -def ccc_arcmt_check : Flag<["-"], "ccc-arcmt-check">, InternalDriverOpt, - HelpText<"Check for ARC migration issues that need manual handling">; -def ccc_arcmt_modify : Flag<["-"], "ccc-arcmt-modify">, InternalDriverOpt, - HelpText<"Apply modifications to files to conform to ARC">; -def ccc_arcmt_migrate : Separate<["-"], "ccc-arcmt-migrate">, InternalDriverOpt, - HelpText<"Apply modifications and produces temporary files that conform to ARC">; -def arcmt_migrate_report_output : Separate<["-"], "arcmt-migrate-report-output">, - HelpText<"Output path for the plist report">, - Visibility<[ClangOption, CC1Option]>, - MarshallingInfoString<FrontendOpts<"ARCMTMigrateReportOut">>; -def arcmt_migrate_emit_arc_errors : Flag<["-"], "arcmt-migrate-emit-errors">, - HelpText<"Emit ARC errors even if the migrator can fix them">, - Visibility<[ClangOption, CC1Option]>, - MarshallingInfoFlag<FrontendOpts<"ARCMTMigrateEmitARCErrors">>; def gen_reproducer_eq: Joined<["-"], "gen-reproducer=">, Flags<[NoArgumentUnused]>, Visibility<[ClangOption, CLOption, DXCOption]>, HelpText<"Emit reproducer on (option: off, crash (default), error, always)">; @@ -721,87 +707,6 @@ def no_round_trip_args : Flag<["-"], "no-round-trip-args">, Visibility<[CC1Option]>, HelpText<"Disable command line arguments round-trip.">; -def _migrate : Flag<["--"], "migrate">, Flags<[NoXarchOption]>, - HelpText<"Run the migrator">; -def ccc_objcmt_migrate : Separate<["-"], "ccc-objcmt-migrate">, - InternalDriverOpt, - HelpText<"Apply modifications and produces temporary files to migrate to " - "modern ObjC syntax">; - -def objcmt_migrate_literals : Flag<["-"], "objcmt-migrate-literals">, - Visibility<[ClangOption, CC1Option]>, - HelpText<"Enable migration to modern ObjC literals">, ... [truncated] `````````` </details> https://github.com/llvm/llvm-project/pull/119269 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits