Skip to content
  1. Mar 14, 2013
  2. Mar 12, 2013
  3. Mar 09, 2013
  4. Mar 08, 2013
  5. Mar 07, 2013
    • Edwin Vane's avatar
      Have LoopConvert use 'auto &&' where necessary · 4f05d714
      Edwin Vane authored
      For iterators where the dereference operator returns by value, LoopConvert
      should use 'auto &&' in the range-based for loop expression.
      
      If the dereference operator returns an rvalue reference, this is deemed too
      strange and the for loop is not converted.
      
      Moved test case from iterator_failing.cpp to iterator.cpp and added extra
      tests.
      
      Fixes PR15437.
      
      Reviewer: gribozavr
      llvm-svn: 176631
      4f05d714
    • Chandler Carruth's avatar
      Switch from autogenerating tests to using the preprocessor. · 074a3568
      Chandler Carruth authored
      NOTE: You may need to run 'make clean' or 'ninja -t clean' etc!!! This
            is due to really nasty bug/interactions between
            CMake/configure/make/Ninja/LIT...
      
      This commit tries to back out the support for generating test cases as
      part of the build system due to the issues I brought up in post-commit
      review:
      
      1) It adds a *lot* of complexity and fragility to the build system. See
         the number of commits required to try to get all the bots happy.
      2) It isn't really necessary -- we can already run scripts to generate
         things with the RUN lines of a test.
      3) It makes the tests somewhat harder to debug as they cross between
         more domains.
      4) In almost all cases it isn't really needed or it can be done directly
         using the preprocessor.
      
      I should have been more proactive reviewing this, and I'm really sorry
      about the churn here. =/ To help keep track of what commits are going
      where, this backs out most of the non-test-changes from these revisions:
        r176397
        r176373
        r176293
        r176184
        r175744
        r175624
        r175545
        r175544
      
      There were several trivial or cleanup changes to the lit files or other
      files. Some of these looked ok, but I didn't try to tease them apart...
      Edwin, if you know what to look for, please carry on with the cleanups
      there, and sorry for hosing stuff here but I'm not much of a Python
      person, and so I was erring on the side of cautiously backing out the
      change.
      
      I've tried to preserve the test changes everywhere I could, but review
      is appreciated here in case I missed some.
      
      I then re-wrote the tests to use the preprocessor rather than python to
      expand to the various bits of code. The nicest part of this is that now
      all the files are just C++ code. They edit and behave like C++ code,
      etc. RUN lines with different -D flags are used to run the same test
      over multiple different configurations, and includes bracketed in
      special defines are used to flesh out a collection of standard interface
      stubs to test interactions between pieces. These probably aren't perfect
      yet, but I think its an improvement (at least in terms of build system
      complexity) and will hopefully be a useful demonstration of the
      technique I prefer for these types of tests.
      
      llvm-svn: 176627
      074a3568
  6. Mar 06, 2013
    • Stefanus Du Toit's avatar
      Test case for PR-15414 - nullptr_t functions · 49fe6388
      Stefanus Du Toit authored
         
      The use-null-ptr transform will transform calls to functions that return a
      nullptr_t. Even if the function were to only return a null pointer and do
      nothing else, this replacement would still be undesired as the behavior and
      signature of the function could change in the future.
      
      This adds an XFAILed test case to demonstrate the issue.
      
      Reviewed by: Edwin Vane, Tareq Siraj
      
      llvm-svn: 176553
      49fe6388
    • Edwin Vane's avatar
      Fixed Use-Nullptr when replacing return(0) · 105963d1
      Edwin Vane authored
      Before fix, the paren expression was being replaced resulting in returnnullptr.
      ParenExpr and implicit casts now ignored so we get return(nullptr) instead.
      
      Added new test cases.
      
      Fixes PR15398
      
      Author: Ariel Bernal <ariel.j.bernal@intel.com>
      llvm-svn: 176551
      105963d1
  7. Mar 05, 2013
  8. Mar 04, 2013
  9. Mar 03, 2013
    • Sean Silva's avatar
      .gitignore: ignore docs/_build · 206bc114
      Sean Silva authored
      That is where the documentation gets built to.
      
      I'm pretty much clueless about SVN; I would appreciate if someone more
      knowledgeable about SVN made the equivalent change.
      
      llvm-svn: 176417
      206bc114
  10. Mar 02, 2013
  11. Mar 01, 2013
    • Edwin Vane's avatar
      Avoid parallelism problems generating lit.site.cfgs · a98217a2
      Edwin Vane authored
      extra/test/cpp11-migrate/Makefile was using the same tmp file for generating
      lit.site.cfg for two different directories. Parallelism caused conflicts so now
      using differently named temp files.
      
      llvm-svn: 176379
      a98217a2
    • Stefanus Du Toit's avatar
      cpp11-migrate: Reduce the number of parsing passes. · e9779bbe
      Stefanus Du Toit authored
      Previously we would check the syntax of the file before we transform
      it, but that's redundant since it'll be checked as part of the
      transformation. Remove that check completely.
      
      We also had an unconditional syntax check after transforming. This
      is only really useful to debug cpp11-migrate, since users will end
      up compiling the transformed source anyways, and the transformations
      *should* never introduce a failure. Made this an option, accessible
      via "-final-syntax-check".
      
      Resolves PR 15380.
      
      llvm-svn: 176376
      e9779bbe
    • Edwin Vane's avatar
      Fix recursive make in clang-tools-extra · b1bb4c2d
      Edwin Vane authored
      Autoconf make (all) now properly recurses from tools/extra/Makefile into
      tools/extra/test/Makefile and tools/extra/test/cpp11-migrate/Makefile. The
      'all' target is responsible for creating lit config files and autogenerating
      tests. Subsequent 'check-all' targets will properly work.
      
      Re-enabling UseAuto/iterator.cpp test.
      
      General clean-up of clang-tools-extra makefiles; removing dead targets and
      removing duplicated pieces of llvm/Makefile.rules.
      
      llvm-svn: 176373
      b1bb4c2d
    • Stefanus Du Toit's avatar
      cpp11-migrate: Factor out duplicate code in UseNullPtr · 16994972
      Stefanus Du Toit authored
      This moves the actual replacement code into a separate
      function. There is still a bit of code duplication to
      go from macros to expansion areas, but that code will
      need to be fixed anyways to resolve bugs around macro
      replacement.
      
      Reviewed by: Tareq Siraj, Edwin Vane
      
      llvm-svn: 176372
      16994972
  12. Feb 28, 2013
    • Edwin Vane's avatar
      Don't use 'exit' in lit script · 4b807525
      Edwin Vane authored
      Some buildbots use a shell that doesn't know 'exit'. So instead of using XFAIL
      for UseAuto/iterator.cpp (since this problem doesn't exist for cmake) leave the
      'grep' command and turn off the others.
      
      llvm-svn: 176295
      4b807525
    • Edwin Vane's avatar
      Turning off UseAuto/iterator.cpp test until recursive make issue fixed · ca5a85fa
      Edwin Vane authored
          
      The way 'make check-all' causes configuration files to be generated results in
      the cpp11-migrate/Makefile not being triggered to generated any files. These
      files are necessary for UseAuto/iterator.cpp to run. Turning off this test
      until the problem is fixed properly.
      
      llvm-svn: 176293
      ca5a85fa
    • Dmitri Gribenko's avatar
      Add doxygen support for the tools in clang-tools-extra · f38da0dc
      Dmitri Gribenko authored
      Patch by Ariel Bernal.
      
      llvm-svn: 176267
      f38da0dc
    • Edwin Vane's avatar
      Introducing Use-Auto transform for cpp11-migrate · 266b625c
      Edwin Vane authored
      The new Use-Auto transform replaces the type specifier for variable
      declarations with the special C++11 'auto' type specifier. For now, the
      replacement is done only for variables that are iterators of any of the
      std containers and only if the type used is one of those explicitly
      allowed by the standard (i.e. not an implementation-specific type).
      
      Reviewers: gribozavr, silvas, klimek
      llvm-svn: 176266
      266b625c
  13. Feb 27, 2013
  14. Feb 25, 2013
    • Edwin Vane's avatar
      Add user documentation for cpp11-migrate · 30f7004d
      Edwin Vane authored
      Adding an RST document for cpp11-migrate. This user documentation explains
      command line options, transformations, risk level and how it applies to
      loop convert, and code examples of transformations.
      
      There is a TODO task under "Risk" for "Loop Convert" to find code examples
      that produce incorrect transformations that change semantics. The definition
      of risk in loop convert and instances where the confidence level is lowered
      will need to be looked at more carefully.
      
      Information for all new features (including verbose output, auto transform)
      will be added in a later change.
      
      Author: Jack Yang <jack.wang@intel.com>
      Reviewer: grigozavr
      llvm-svn: 176046
      30f7004d
  15. Feb 23, 2013
  16. Feb 21, 2013
    • Edwin Vane's avatar
      Fixing a "multiple rules generate X" warning from ninja · 12db04f8
      Edwin Vane authored
      CMake's Ninja generator was not detecting that test/lit.site.cfg.in and
      test/subdir/../lit.site.cfg.in were really the same file. Ninja noticed this
      and complained as both appeared as targets (for the missing file rule). Now
      canonicalizing the path to ensure the paths presented to CMake are identical
      and the duplication is now fixed.
      
      llvm-svn: 175744
      12db04f8
  17. Feb 20, 2013
  18. Feb 19, 2013
    • Edwin Vane's avatar
      Adding files left out of commit r175544. · 963a7b41
      Edwin Vane authored
      llvm-svn: 175545
      963a7b41
    • Edwin Vane's avatar
      Add support for auto-generating LIT tests by the build · 8b526f22
      Edwin Vane authored
          
      autoconf and CMake flavours both updated to auto-generate files for use
      in cpp11-migrate's LIT tests.
      
      Auto-generated files are placed in the build directory under
      test/cpp11-migrate/autogen. The directory structure past this point
      mirrors the structure in the source directory under test/cpp11-migrate.
      A lit.site.cfg is generated in test/cpp11-migrate/autogen to describe
      the new test suite. When LIT runs, it runs the standard testsuite and
      now also the auto-generated testsuite.
      
      llvm-svn: 175544
      8b526f22
  19. Feb 17, 2013
    • Edwin Vane's avatar
      Fix -use-nullptr problems with assert() · 4ad00b46
      Edwin Vane authored
      If a cast expression (NullToPointer) is detected in a function-like macro
      parameter, we should use the spelling location instead of the expansion
      location. Using SourceManager::getFileLoc() fixes this problem.
      
      Also added testcases for this bug.
      
      Fixes: PR15279
      Author: Tareq A Siraj <tareq.a.siraj@intel.com>
      Reviewer: klimek
      llvm-svn: 175399
      4ad00b46
  20. Feb 15, 2013
    • Edwin Vane's avatar
      Propagate changes through no-op transforms · dd4743d1
      Edwin Vane authored
      Currently, changes made by previous transforms are not kept if a transform
      doesn't make any changes itself to a given file. Now file states are propagated
      properly through transforms that don't make changes.
      
      Fixes: PR15281
      Author: Jack Yang <jack.yang@intel.com>
      Reviewer: klimek
      llvm-svn: 175288
      dd4743d1
Loading