<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div>On Jun 22, 2011, at 12:42 PM, Galina Kistanova wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div>Hi Argyrios,<br><br>This set of ARCMT tests are failing on the ARM builder<br><a href="http://google1.osuosl.org:8011/builders/clang-native-arm-cortex-a9">http://google1.osuosl.org:8011/builders/clang-native-arm-cortex-a9</a> builder:<br><br>Clang :: ARCMT/alloc-with-zone-check.m<br>Clang :: ARCMT/alloc-with-zone.m<br>Clang :: ARCMT/atautorelease-2.m<br>Clang :: ARCMT/atautorelease-3.m<br>Clang :: ARCMT/atautorelease-check.m<br>Clang :: ARCMT/atautorelease.m<br>Clang :: ARCMT/autoreleases.m<br>Clang :: ARCMT/checking.m<br>Clang :: ARCMT/cxx-checking.mm<br>Clang :: ARCMT/dealloc.m<br>Clang :: ARCMT/nonobjc-to-objc-cast-2.m<br>Clang :: ARCMT/init.m<br>Clang :: ARCMT/nonobjc-to-objc-cast.m<br>Clang :: ARCMT/releases-driver.m<br>Clang :: ARCMT/releases.m<br>Clang :: ARCMT/remove-dealloc-method.m<br>Clang :: ARCMT/remove-dealloc-zerouts.m<br>Clang :: ARCMT/remove-statements.m<br>Clang :: ARCMT/retains.m<br>Clang :: ARCMT/rewrite-block-var.m<br>Clang :: ARCMT/safe-arc-assign.m<br>Clang :: ARCMT/with-working-dir.m<br><br>If they are target-specific, please declare them as such.<br></div></blockquote><div><br></div><div>No they are not. Are they all crashing at StmtVisitor.h:102, "assert(0 && "Unknown stmt kind!")" ?</div><div><br></div><div>-Argyrios</div><br><blockquote type="cite"><div><font class="Apple-style-span" color="#000000"><font class="Apple-style-span" color="#144FAE"><br></font></font></div></blockquote><blockquote type="cite"><div>Tnanks<br><br>Galina<br><br><br>On Fri, Jun 17, 2011 at 5:53 PM, Argyrios Kyrtzidis <<a href="mailto:akyrtzi@gmail.com">akyrtzi@gmail.com</a>> wrote:<br><blockquote type="cite">Author: akirtzidis<br></blockquote><blockquote type="cite">Date: Fri Jun 17 19:53:41 2011<br></blockquote><blockquote type="cite">New Revision: 133323<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">URL: <a href="http://llvm.org/viewvc/llvm-project?rev=133323&view=rev">http://llvm.org/viewvc/llvm-project?rev=133323&view=rev</a><br></blockquote><blockquote type="cite">Log:<br></blockquote><blockquote type="cite">[arcmt] Fix the ARC migrator. -arcmt-modify requires running before the initialization of SourceManager<br></blockquote><blockquote type="cite">because it is going to modify the input file.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Added:<br></blockquote><blockquote type="cite">   cfe/trunk/test/ARCMT/releases-driver.m<br></blockquote><blockquote type="cite">   cfe/trunk/test/ARCMT/releases-driver.m.result<br></blockquote><blockquote type="cite">Modified:<br></blockquote><blockquote type="cite">   cfe/trunk/include/clang/ARCMigrate/ARCMTActions.h<br></blockquote><blockquote type="cite">   cfe/trunk/include/clang/Frontend/FrontendAction.h<br></blockquote><blockquote type="cite">   cfe/trunk/lib/ARCMigrate/ARCMT.cpp<br></blockquote><blockquote type="cite">   cfe/trunk/lib/ARCMigrate/ARCMTActions.cpp<br></blockquote><blockquote type="cite">   cfe/trunk/lib/ARCMigrate/Internals.h<br></blockquote><blockquote type="cite">   cfe/trunk/lib/Frontend/FrontendAction.cpp<br></blockquote><blockquote type="cite">   cfe/trunk/test/ARCMT/alloc-with-zone-check.m<br></blockquote><blockquote type="cite">   cfe/trunk/test/ARCMT/atautorelease-check.m<br></blockquote><blockquote type="cite">   cfe/trunk/test/ARCMT/checking.m<br></blockquote><blockquote type="cite">   cfe/trunk/test/ARCMT/cxx-checking.mm<br></blockquote><blockquote type="cite">   cfe/trunk/test/ARCMT/nonobjc-to-objc-cast-2.m<br></blockquote><blockquote type="cite">   cfe/trunk/tools/arcmt-test/arcmt-test.cpp<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Modified: cfe/trunk/include/clang/ARCMigrate/ARCMTActions.h<br></blockquote><blockquote type="cite">URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/ARCMigrate/ARCMTActions.h?rev=133323&r1=133322&r2=133323&view=diff">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/ARCMigrate/ARCMTActions.h?rev=133323&r1=133322&r2=133323&view=diff</a><br></blockquote><blockquote type="cite">==============================================================================<br></blockquote><blockquote type="cite">--- cfe/trunk/include/clang/ARCMigrate/ARCMTActions.h (original)<br></blockquote><blockquote type="cite">+++ cfe/trunk/include/clang/ARCMigrate/ARCMTActions.h Fri Jun 17 19:53:41 2011<br></blockquote><blockquote type="cite">@@ -18,7 +18,7 @@<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"> class CheckAction : public WrapperFrontendAction {<br></blockquote><blockquote type="cite"> protected:<br></blockquote><blockquote type="cite">-  virtual void ExecuteAction();<br></blockquote><blockquote type="cite">+  virtual bool BeginInvocation(CompilerInstance &CI);<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"> public:<br></blockquote><blockquote type="cite">  CheckAction(FrontendAction *WrappedAction);<br></blockquote><blockquote type="cite">@@ -26,7 +26,7 @@<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"> class TransformationAction : public WrapperFrontendAction {<br></blockquote><blockquote type="cite"> protected:<br></blockquote><blockquote type="cite">-  virtual void ExecuteAction();<br></blockquote><blockquote type="cite">+  virtual bool BeginInvocation(CompilerInstance &CI);<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"> public:<br></blockquote><blockquote type="cite">  TransformationAction(FrontendAction *WrappedAction);<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Modified: cfe/trunk/include/clang/Frontend/FrontendAction.h<br></blockquote><blockquote type="cite">URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Frontend/FrontendAction.h?rev=133323&r1=133322&r2=133323&view=diff">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Frontend/FrontendAction.h?rev=133323&r1=133322&r2=133323&view=diff</a><br></blockquote><blockquote type="cite">==============================================================================<br></blockquote><blockquote type="cite">--- cfe/trunk/include/clang/Frontend/FrontendAction.h (original)<br></blockquote><blockquote type="cite">+++ cfe/trunk/include/clang/Frontend/FrontendAction.h Fri Jun 17 19:53:41 2011<br></blockquote><blockquote type="cite">@@ -78,6 +78,14 @@<br></blockquote><blockquote type="cite">  virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI,<br></blockquote><blockquote type="cite">                                         llvm::StringRef InFile) = 0;<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">+  /// \brief Callback before starting processing a single input, giving the<br></blockquote><blockquote type="cite">+  /// opportunity to modify the CompilerInvocation or do some other action<br></blockquote><blockquote type="cite">+  /// before BeginSourceFileAction is called.<br></blockquote><blockquote type="cite">+  ///<br></blockquote><blockquote type="cite">+  /// \return True on success; on failure \see BeginSourceFileAction() and<br></blockquote><blockquote type="cite">+  /// ExecutionAction() and EndSourceFileAction() will not be called.<br></blockquote><blockquote type="cite">+  virtual bool BeginInvocation(CompilerInstance &CI) { return true; }<br></blockquote><blockquote type="cite">+<br></blockquote><blockquote type="cite">  /// BeginSourceFileAction - Callback at the start of processing a single<br></blockquote><blockquote type="cite">  /// input.<br></blockquote><blockquote type="cite">  ///<br></blockquote><blockquote type="cite">@@ -265,6 +273,7 @@<br></blockquote><blockquote type="cite"> protected:<br></blockquote><blockquote type="cite">  virtual ASTConsumer *CreateASTConsumer(CompilerInstance &CI,<br></blockquote><blockquote type="cite">                                         llvm::StringRef InFile);<br></blockquote><blockquote type="cite">+  virtual bool BeginInvocation(CompilerInstance &CI);<br></blockquote><blockquote type="cite">  virtual bool BeginSourceFileAction(CompilerInstance &CI,<br></blockquote><blockquote type="cite">                                     llvm::StringRef Filename);<br></blockquote><blockquote type="cite">  virtual void ExecuteAction();<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Modified: cfe/trunk/lib/ARCMigrate/ARCMT.cpp<br></blockquote><blockquote type="cite">URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/ARCMigrate/ARCMT.cpp?rev=133323&r1=133322&r2=133323&view=diff">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/ARCMigrate/ARCMT.cpp?rev=133323&r1=133322&r2=133323&view=diff</a><br></blockquote><blockquote type="cite">==============================================================================<br></blockquote><blockquote type="cite">--- cfe/trunk/lib/ARCMigrate/ARCMT.cpp (original)<br></blockquote><blockquote type="cite">+++ cfe/trunk/lib/ARCMigrate/ARCMT.cpp Fri Jun 17 19:53:41 2011<br></blockquote><blockquote type="cite">@@ -79,6 +79,14 @@<br></blockquote><blockquote type="cite">    Diags.Report(*I);<br></blockquote><blockquote type="cite"> }<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">+bool CapturedDiagList::hasErrors() const {<br></blockquote><blockquote type="cite">+  for (ListTy::const_iterator I = List.begin(), E = List.end(); I != E; ++I)<br></blockquote><blockquote type="cite">+    if (I->getLevel() >= Diagnostic::Error)<br></blockquote><blockquote type="cite">+      return true;<br></blockquote><blockquote type="cite">+<br></blockquote><blockquote type="cite">+  return false;<br></blockquote><blockquote type="cite">+}<br></blockquote><blockquote type="cite">+<br></blockquote><blockquote type="cite"> namespace {<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"> class CaptureDiagnosticClient : public DiagnosticClient {<br></blockquote><blockquote type="cite">@@ -236,7 +244,7 @@<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">  DiagClient->EndSourceFile();<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">-  return Diags->getClient()->getNumErrors() > 0;<br></blockquote><blockquote type="cite">+  return capturedDiags.hasErrors();<br></blockquote><blockquote type="cite"> }<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"> //===----------------------------------------------------------------------===//<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Modified: cfe/trunk/lib/ARCMigrate/ARCMTActions.cpp<br></blockquote><blockquote type="cite">URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/ARCMigrate/ARCMTActions.cpp?rev=133323&r1=133322&r2=133323&view=diff">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/ARCMigrate/ARCMTActions.cpp?rev=133323&r1=133322&r2=133323&view=diff</a><br></blockquote><blockquote type="cite">==============================================================================<br></blockquote><blockquote type="cite">--- cfe/trunk/lib/ARCMigrate/ARCMTActions.cpp (original)<br></blockquote><blockquote type="cite">+++ cfe/trunk/lib/ARCMigrate/ARCMTActions.cpp Fri Jun 17 19:53:41 2011<br></blockquote><blockquote type="cite">@@ -14,29 +14,24 @@<br></blockquote><blockquote type="cite"> using namespace clang;<br></blockquote><blockquote type="cite"> using namespace arcmt;<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">-void CheckAction::ExecuteAction() {<br></blockquote><blockquote type="cite">-  CompilerInstance &CI = getCompilerInstance();<br></blockquote><blockquote type="cite">+bool CheckAction::BeginInvocation(CompilerInstance &CI) {<br></blockquote><blockquote type="cite">  if (arcmt::checkForManualIssues(CI.getInvocation(), getCurrentFile(),<br></blockquote><blockquote type="cite">                                  getCurrentFileKind(),<br></blockquote><blockquote type="cite">                                  CI.getDiagnostics().getClient()))<br></blockquote><blockquote type="cite">-    return;<br></blockquote><blockquote type="cite">+    return false; // errors, stop the action.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">  // We only want to see warnings reported from arcmt::checkForManualIssues.<br></blockquote><blockquote type="cite">  CI.getDiagnostics().setIgnoreAllWarnings(true);<br></blockquote><blockquote type="cite">-  WrapperFrontendAction::ExecuteAction();<br></blockquote><blockquote type="cite">+  return true;<br></blockquote><blockquote type="cite"> }<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"> CheckAction::CheckAction(FrontendAction *WrappedAction)<br></blockquote><blockquote type="cite">  : WrapperFrontendAction(WrappedAction) {}<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">-void TransformationAction::ExecuteAction() {<br></blockquote><blockquote type="cite">-  CompilerInstance &CI = getCompilerInstance();<br></blockquote><blockquote type="cite">-  if (arcmt::applyTransformations(CI.getInvocation(), getCurrentFile(),<br></blockquote><blockquote type="cite">+bool TransformationAction::BeginInvocation(CompilerInstance &CI) {<br></blockquote><blockquote type="cite">+  return !arcmt::applyTransformations(CI.getInvocation(), getCurrentFile(),<br></blockquote><blockquote type="cite">                                  getCurrentFileKind(),<br></blockquote><blockquote type="cite">-                                  CI.getDiagnostics().getClient()))<br></blockquote><blockquote type="cite">-    return;<br></blockquote><blockquote type="cite">-<br></blockquote><blockquote type="cite">-  WrapperFrontendAction::ExecuteAction();<br></blockquote><blockquote type="cite">+                                  CI.getDiagnostics().getClient());<br></blockquote><blockquote type="cite"> }<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"> TransformationAction::TransformationAction(FrontendAction *WrappedAction)<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Modified: cfe/trunk/lib/ARCMigrate/Internals.h<br></blockquote><blockquote type="cite">URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/ARCMigrate/Internals.h?rev=133323&r1=133322&r2=133323&view=diff">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/ARCMigrate/Internals.h?rev=133323&r1=133322&r2=133323&view=diff</a><br></blockquote><blockquote type="cite">==============================================================================<br></blockquote><blockquote type="cite">--- cfe/trunk/lib/ARCMigrate/Internals.h (original)<br></blockquote><blockquote type="cite">+++ cfe/trunk/lib/ARCMigrate/Internals.h Fri Jun 17 19:53:41 2011<br></blockquote><blockquote type="cite">@@ -30,6 +30,8 @@<br></blockquote><blockquote type="cite">  bool hasDiagnostic(llvm::ArrayRef<unsigned> IDs, SourceRange range) const;<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">  void reportDiagnostics(Diagnostic &diags) const;<br></blockquote><blockquote type="cite">+<br></blockquote><blockquote type="cite">+  bool hasErrors() const;<br></blockquote><blockquote type="cite"> };<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"> class TransformActions {<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Modified: cfe/trunk/lib/Frontend/FrontendAction.cpp<br></blockquote><blockquote type="cite">URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/FrontendAction.cpp?rev=133323&r1=133322&r2=133323&view=diff">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Frontend/FrontendAction.cpp?rev=133323&r1=133322&r2=133323&view=diff</a><br></blockquote><blockquote type="cite">==============================================================================<br></blockquote><blockquote type="cite">--- cfe/trunk/lib/Frontend/FrontendAction.cpp (original)<br></blockquote><blockquote type="cite">+++ cfe/trunk/lib/Frontend/FrontendAction.cpp Fri Jun 17 19:53:41 2011<br></blockquote><blockquote type="cite">@@ -130,6 +130,9 @@<br></blockquote><blockquote type="cite">  setCurrentFile(Filename, InputKind);<br></blockquote><blockquote type="cite">  setCompilerInstance(&CI);<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">+  if (!BeginInvocation(CI))<br></blockquote><blockquote type="cite">+    goto failure;<br></blockquote><blockquote type="cite">+<br></blockquote><blockquote type="cite">  // AST files follow a very different path, since they share objects via the<br></blockquote><blockquote type="cite">  // AST unit.<br></blockquote><blockquote type="cite">  if (InputKind == IK_AST) {<br></blockquote><blockquote type="cite">@@ -386,8 +389,13 @@<br></blockquote><blockquote type="cite">                                                      llvm::StringRef InFile) {<br></blockquote><blockquote type="cite">  return WrappedAction->CreateASTConsumer(CI, InFile);<br></blockquote><blockquote type="cite"> }<br></blockquote><blockquote type="cite">+bool WrapperFrontendAction::BeginInvocation(CompilerInstance &CI) {<br></blockquote><blockquote type="cite">+  return WrappedAction->BeginInvocation(CI);<br></blockquote><blockquote type="cite">+}<br></blockquote><blockquote type="cite"> bool WrapperFrontendAction::BeginSourceFileAction(CompilerInstance &CI,<br></blockquote><blockquote type="cite">                                                  llvm::StringRef Filename) {<br></blockquote><blockquote type="cite">+  WrappedAction->setCurrentFile(getCurrentFile(), getCurrentFileKind());<br></blockquote><blockquote type="cite">+  WrappedAction->setCompilerInstance(&CI);<br></blockquote><blockquote type="cite">  return WrappedAction->BeginSourceFileAction(CI, Filename);<br></blockquote><blockquote type="cite"> }<br></blockquote><blockquote type="cite"> void WrapperFrontendAction::ExecuteAction() {<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Modified: cfe/trunk/test/ARCMT/alloc-with-zone-check.m<br></blockquote><blockquote type="cite">URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/ARCMT/alloc-with-zone-check.m?rev=133323&r1=133322&r2=133323&view=diff">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/ARCMT/alloc-with-zone-check.m?rev=133323&r1=133322&r2=133323&view=diff</a><br></blockquote><blockquote type="cite">==============================================================================<br></blockquote><blockquote type="cite">--- cfe/trunk/test/ARCMT/alloc-with-zone-check.m (original)<br></blockquote><blockquote type="cite">+++ cfe/trunk/test/ARCMT/alloc-with-zone-check.m Fri Jun 17 19:53:41 2011<br></blockquote><blockquote type="cite">@@ -1,4 +1,4 @@<br></blockquote><blockquote type="cite">-// RUN: arcmt-test -check-only -verify --args %s<br></blockquote><blockquote type="cite">+// RUN: %clang_cc1 -arcmt-check -verify -triple x86_64-apple-darwin10 -fobjc-nonfragile-abi %s<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"> #if __has_feature(objc_arr)<br></blockquote><blockquote type="cite"> #define NS_AUTOMATED_REFCOUNT_UNAVAILABLE __attribute__((unavailable("not available in automatic reference counting mode")))<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Modified: cfe/trunk/test/ARCMT/atautorelease-check.m<br></blockquote><blockquote type="cite">URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/ARCMT/atautorelease-check.m?rev=133323&r1=133322&r2=133323&view=diff">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/ARCMT/atautorelease-check.m?rev=133323&r1=133322&r2=133323&view=diff</a><br></blockquote><blockquote type="cite">==============================================================================<br></blockquote><blockquote type="cite">--- cfe/trunk/test/ARCMT/atautorelease-check.m (original)<br></blockquote><blockquote type="cite">+++ cfe/trunk/test/ARCMT/atautorelease-check.m Fri Jun 17 19:53:41 2011<br></blockquote><blockquote type="cite">@@ -1,4 +1,4 @@<br></blockquote><blockquote type="cite">-// RUN: arcmt-test -check-only -verify --args %s<br></blockquote><blockquote type="cite">+// RUN: %clang_cc1 -arcmt-check -verify -triple x86_64-apple-darwin10 -fobjc-nonfragile-abi %s<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"> #if __has_feature(objc_arr)<br></blockquote><blockquote type="cite"> #define NS_AUTOMATED_REFCOUNT_UNAVAILABLE __attribute__((unavailable("not available in automatic reference counting mode")))<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Modified: cfe/trunk/test/ARCMT/checking.m<br></blockquote><blockquote type="cite">URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/ARCMT/checking.m?rev=133323&r1=133322&r2=133323&view=diff">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/ARCMT/checking.m?rev=133323&r1=133322&r2=133323&view=diff</a><br></blockquote><blockquote type="cite">==============================================================================<br></blockquote><blockquote type="cite">--- cfe/trunk/test/ARCMT/checking.m (original)<br></blockquote><blockquote type="cite">+++ cfe/trunk/test/ARCMT/checking.m Fri Jun 17 19:53:41 2011<br></blockquote><blockquote type="cite">@@ -1,4 +1,4 @@<br></blockquote><blockquote type="cite">-// RUN: arcmt-test -check-only -verify --args %s<br></blockquote><blockquote type="cite">+// RUN: %clang_cc1 -arcmt-check -verify -triple x86_64-apple-darwin10 -fobjc-nonfragile-abi %s<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"> #include "Common.h"<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Modified: cfe/trunk/test/ARCMT/cxx-checking.mm<br></blockquote><blockquote type="cite">URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/ARCMT/cxx-checking.mm?rev=133323&r1=133322&r2=133323&view=diff">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/ARCMT/cxx-checking.mm?rev=133323&r1=133322&r2=133323&view=diff</a><br></blockquote><blockquote type="cite">==============================================================================<br></blockquote><blockquote type="cite">--- cfe/trunk/test/ARCMT/cxx-checking.mm (original)<br></blockquote><blockquote type="cite">+++ cfe/trunk/test/ARCMT/cxx-checking.mm Fri Jun 17 19:53:41 2011<br></blockquote><blockquote type="cite">@@ -1,4 +1,4 @@<br></blockquote><blockquote type="cite">-// RUN: arcmt-test -check-only -verify --args -triple x86_64-apple-darwin10 -fobjc-nonfragile-abi -fsyntax-only -fblocks -Warc-abi  %s<br></blockquote><blockquote type="cite">+// RUN: %clang_cc1 -arcmt-check -verify -triple x86_64-apple-darwin10 -fobjc-nonfragile-abi -fsyntax-only -fblocks -Warc-abi  %s<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"> // Classes that have an Objective-C object pointer.<br></blockquote><blockquote type="cite"> struct HasObjectMember0 { // expected-warning{{'HasObjectMember0' cannot be shared between ARC and non-ARC code; add a copy constructor, a copy assignment operator, and a destructor to make it ABI-compatible}}<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Modified: cfe/trunk/test/ARCMT/nonobjc-to-objc-cast-2.m<br></blockquote><blockquote type="cite">URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/ARCMT/nonobjc-to-objc-cast-2.m?rev=133323&r1=133322&r2=133323&view=diff">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/ARCMT/nonobjc-to-objc-cast-2.m?rev=133323&r1=133322&r2=133323&view=diff</a><br></blockquote><blockquote type="cite">==============================================================================<br></blockquote><blockquote type="cite">--- cfe/trunk/test/ARCMT/nonobjc-to-objc-cast-2.m (original)<br></blockquote><blockquote type="cite">+++ cfe/trunk/test/ARCMT/nonobjc-to-objc-cast-2.m Fri Jun 17 19:53:41 2011<br></blockquote><blockquote type="cite">@@ -1,4 +1,4 @@<br></blockquote><blockquote type="cite">-// RUN: arcmt-test -check-only -verify --args %s<br></blockquote><blockquote type="cite">+// RUN: %clang_cc1 -arcmt-check -verify -triple x86_64-apple-darwin10 -fobjc-nonfragile-abi %s<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"> typedef int BOOL;<br></blockquote><blockquote type="cite"> typedef const struct __CFString * CFStringRef;<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Added: cfe/trunk/test/ARCMT/releases-driver.m<br></blockquote><blockquote type="cite">URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/ARCMT/releases-driver.m?rev=133323&view=auto">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/ARCMT/releases-driver.m?rev=133323&view=auto</a><br></blockquote><blockquote type="cite">==============================================================================<br></blockquote><blockquote type="cite">--- cfe/trunk/test/ARCMT/releases-driver.m (added)<br></blockquote><blockquote type="cite">+++ cfe/trunk/test/ARCMT/releases-driver.m Fri Jun 17 19:53:41 2011<br></blockquote><blockquote type="cite">@@ -0,0 +1,68 @@<br></blockquote><blockquote type="cite">+// RUN: %clang_cc1 -fobjc-nonfragile-abi -fblocks -fsyntax-only -fobjc-arc -x objective-c %s.result<br></blockquote><blockquote type="cite">+// RUN: cp %s %t<br></blockquote><blockquote type="cite">+// RUN: %clang_cc1 -arcmt-modify -triple x86_64-apple-macosx10.6 -fobjc-nonfragile-abi -x objective-c %t<br></blockquote><blockquote type="cite">+// RUN: diff %t %s.result<br></blockquote><blockquote type="cite">+// RUN: rm %t<br></blockquote><blockquote type="cite">+<br></blockquote><blockquote type="cite">+typedef int BOOL;<br></blockquote><blockquote type="cite">+<br></blockquote><blockquote type="cite">+id IhaveSideEffect();<br></blockquote><blockquote type="cite">+<br></blockquote><blockquote type="cite">+@protocol NSObject<br></blockquote><blockquote type="cite">+- (BOOL)isEqual:(id)object;<br></blockquote><blockquote type="cite">+- (id)retain;<br></blockquote><blockquote type="cite">+- (oneway void)release;<br></blockquote><blockquote type="cite">+@end<br></blockquote><blockquote type="cite">+<br></blockquote><blockquote type="cite">+@interface NSObject <NSObject> {}<br></blockquote><blockquote type="cite">+@end<br></blockquote><blockquote type="cite">+<br></blockquote><blockquote type="cite">+@interface Foo : NSObject {<br></blockquote><blockquote type="cite">+  id bar;<br></blockquote><blockquote type="cite">+}<br></blockquote><blockquote type="cite">+@property (retain) id bar;<br></blockquote><blockquote type="cite">+-(void)test:(id)obj;<br></blockquote><blockquote type="cite">+@end<br></blockquote><blockquote type="cite">+<br></blockquote><blockquote type="cite">+@implementation Foo<br></blockquote><blockquote type="cite">+<br></blockquote><blockquote type="cite">+@synthesize bar;<br></blockquote><blockquote type="cite">+<br></blockquote><blockquote type="cite">+-(void)test:(id)obj {<br></blockquote><blockquote type="cite">+  id x = self.bar;<br></blockquote><blockquote type="cite">+  [x retain];<br></blockquote><blockquote type="cite">+  self.bar = obj;<br></blockquote><blockquote type="cite">+  // do stuff with x;<br></blockquote><blockquote type="cite">+  [x release];<br></blockquote><blockquote type="cite">+<br></blockquote><blockquote type="cite">+  [IhaveSideEffect() release];<br></blockquote><blockquote type="cite">+<br></blockquote><blockquote type="cite">+  [x release], x = 0;<br></blockquote><blockquote type="cite">+}<br></blockquote><blockquote type="cite">+<br></blockquote><blockquote type="cite">+@end<br></blockquote><blockquote type="cite">+<br></blockquote><blockquote type="cite">+void func(Foo *p) {<br></blockquote><blockquote type="cite">+  [p release];<br></blockquote><blockquote type="cite">+  (([p release]));<br></blockquote><blockquote type="cite">+}<br></blockquote><blockquote type="cite">+<br></blockquote><blockquote type="cite">+@interface Baz {<br></blockquote><blockquote type="cite">+       id <NSObject> _foo;<br></blockquote><blockquote type="cite">+}<br></blockquote><blockquote type="cite">+@end<br></blockquote><blockquote type="cite">+<br></blockquote><blockquote type="cite">+@implementation Baz<br></blockquote><blockquote type="cite">+- dealloc {<br></blockquote><blockquote type="cite">+  [_foo release];<br></blockquote><blockquote type="cite">+  return 0;<br></blockquote><blockquote type="cite">+}<br></blockquote><blockquote type="cite">+@end<br></blockquote><blockquote type="cite">+<br></blockquote><blockquote type="cite">+#define RELEASE_MACRO(x) [x release]<br></blockquote><blockquote type="cite">+#define RELEASE_MACRO2(x) RELEASE_MACRO(x)<br></blockquote><blockquote type="cite">+<br></blockquote><blockquote type="cite">+void test2(id p) {<br></blockquote><blockquote type="cite">+  RELEASE_MACRO(p);<br></blockquote><blockquote type="cite">+  RELEASE_MACRO2(p);<br></blockquote><blockquote type="cite">+}<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Added: cfe/trunk/test/ARCMT/releases-driver.m.result<br></blockquote><blockquote type="cite">URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/test/ARCMT/releases-driver.m.result?rev=133323&view=auto">http://llvm.org/viewvc/llvm-project/cfe/trunk/test/ARCMT/releases-driver.m.result?rev=133323&view=auto</a><br></blockquote><blockquote type="cite">==============================================================================<br></blockquote><blockquote type="cite">--- cfe/trunk/test/ARCMT/releases-driver.m.result (added)<br></blockquote><blockquote type="cite">+++ cfe/trunk/test/ARCMT/releases-driver.m.result Fri Jun 17 19:53:41 2011<br></blockquote><blockquote type="cite">@@ -0,0 +1,61 @@<br></blockquote><blockquote type="cite">+// RUN: %clang_cc1 -fobjc-nonfragile-abi -fblocks -fsyntax-only -fobjc-arc -x objective-c %s.result<br></blockquote><blockquote type="cite">+// RUN: cp %s %t<br></blockquote><blockquote type="cite">+// RUN: %clang_cc1 -arcmt-modify -triple x86_64-apple-macosx10.6 -fobjc-nonfragile-abi -x objective-c %t<br></blockquote><blockquote type="cite">+// RUN: diff %t %s.result<br></blockquote><blockquote type="cite">+// RUN: rm %t<br></blockquote><blockquote type="cite">+<br></blockquote><blockquote type="cite">+typedef int BOOL;<br></blockquote><blockquote type="cite">+<br></blockquote><blockquote type="cite">+id IhaveSideEffect();<br></blockquote><blockquote type="cite">+<br></blockquote><blockquote type="cite">+@protocol NSObject<br></blockquote><blockquote type="cite">+- (BOOL)isEqual:(id)object;<br></blockquote><blockquote type="cite">+- (id)retain;<br></blockquote><blockquote type="cite">+- (oneway void)release;<br></blockquote><blockquote type="cite">+@end<br></blockquote><blockquote type="cite">+<br></blockquote><blockquote type="cite">+@interface NSObject <NSObject> {}<br></blockquote><blockquote type="cite">+@end<br></blockquote><blockquote type="cite">+<br></blockquote><blockquote type="cite">+@interface Foo : NSObject {<br></blockquote><blockquote type="cite">+  id bar;<br></blockquote><blockquote type="cite">+}<br></blockquote><blockquote type="cite">+@property (retain) id bar;<br></blockquote><blockquote type="cite">+-(void)test:(id)obj;<br></blockquote><blockquote type="cite">+@end<br></blockquote><blockquote type="cite">+<br></blockquote><blockquote type="cite">+@implementation Foo<br></blockquote><blockquote type="cite">+<br></blockquote><blockquote type="cite">+@synthesize bar;<br></blockquote><blockquote type="cite">+<br></blockquote><blockquote type="cite">+-(void)test:(id)obj {<br></blockquote><blockquote type="cite">+  id x = self.bar;<br></blockquote><blockquote type="cite">+  self.bar = obj;<br></blockquote><blockquote type="cite">+  // do stuff with x;<br></blockquote><blockquote type="cite">+<br></blockquote><blockquote type="cite">+  IhaveSideEffect();<br></blockquote><blockquote type="cite">+<br></blockquote><blockquote type="cite">+  x = 0;<br></blockquote><blockquote type="cite">+}<br></blockquote><blockquote type="cite">+<br></blockquote><blockquote type="cite">+@end<br></blockquote><blockquote type="cite">+<br></blockquote><blockquote type="cite">+void func(Foo *p) {<br></blockquote><blockquote type="cite">+}<br></blockquote><blockquote type="cite">+<br></blockquote><blockquote type="cite">+@interface Baz {<br></blockquote><blockquote type="cite">+       id <NSObject> _foo;<br></blockquote><blockquote type="cite">+}<br></blockquote><blockquote type="cite">+@end<br></blockquote><blockquote type="cite">+<br></blockquote><blockquote type="cite">+@implementation Baz<br></blockquote><blockquote type="cite">+- dealloc {<br></blockquote><blockquote type="cite">+  return 0;<br></blockquote><blockquote type="cite">+}<br></blockquote><blockquote type="cite">+@end<br></blockquote><blockquote type="cite">+<br></blockquote><blockquote type="cite">+#define RELEASE_MACRO(x) [x release]<br></blockquote><blockquote type="cite">+#define RELEASE_MACRO2(x) RELEASE_MACRO(x)<br></blockquote><blockquote type="cite">+<br></blockquote><blockquote type="cite">+void test2(id p) {<br></blockquote><blockquote type="cite">+}<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">Modified: cfe/trunk/tools/arcmt-test/arcmt-test.cpp<br></blockquote><blockquote type="cite">URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/arcmt-test/arcmt-test.cpp?rev=133323&r1=133322&r2=133323&view=diff">http://llvm.org/viewvc/llvm-project/cfe/trunk/tools/arcmt-test/arcmt-test.cpp?rev=133323&r1=133322&r2=133323&view=diff</a><br></blockquote><blockquote type="cite">==============================================================================<br></blockquote><blockquote type="cite">--- cfe/trunk/tools/arcmt-test/arcmt-test.cpp (original)<br></blockquote><blockquote type="cite">+++ cfe/trunk/tools/arcmt-test/arcmt-test.cpp Fri Jun 17 19:53:41 2011<br></blockquote><blockquote type="cite">@@ -111,10 +111,11 @@<br></blockquote><blockquote type="cite">  if (!CI.getLangOpts().ObjC1)<br></blockquote><blockquote type="cite">    return false;<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">-  return arcmt::checkForManualIssues(CI,<br></blockquote><blockquote type="cite">-                                     CI.getFrontendOpts().Inputs[0].second,<br></blockquote><blockquote type="cite">-                                     CI.getFrontendOpts().Inputs[0].first,<br></blockquote><blockquote type="cite">-                                     Diags->getClient());<br></blockquote><blockquote type="cite">+  arcmt::checkForManualIssues(CI,<br></blockquote><blockquote type="cite">+                              CI.getFrontendOpts().Inputs[0].second,<br></blockquote><blockquote type="cite">+                              CI.getFrontendOpts().Inputs[0].first,<br></blockquote><blockquote type="cite">+                              Diags->getClient());<br></blockquote><blockquote type="cite">+  return Diags->getClient()->getNumErrors() > 0;<br></blockquote><blockquote type="cite"> }<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"> static void printResult(FileRemapper &remapper, llvm::raw_ostream &OS) {<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">_______________________________________________<br></blockquote><blockquote type="cite">cfe-commits mailing list<br></blockquote><blockquote type="cite"><a href="mailto:cfe-commits@cs.uiuc.edu">cfe-commits@cs.uiuc.edu</a><br></blockquote><blockquote type="cite"><a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br></blockquote><blockquote type="cite"><br></blockquote></div></blockquote></div><br></body></html>