<feed xmlns='http://www.w3.org/2005/Atom'>
<title>bcm5719-llvm/clang-tools-extra/test/cpp11-migrate/UseAuto, branch meklort-10.0.1</title>
<subtitle>Project Ortega BCM5719 LLVM</subtitle>
<id>https://git.raptorcs.com/git/bcm5719-llvm/atom?h=meklort-10.0.1</id>
<link rel='self' href='https://git.raptorcs.com/git/bcm5719-llvm/atom?h=meklort-10.0.1'/>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/'/>
<updated>2013-09-04T17:35:07+00:00</updated>
<entry>
<title>Rename cpp11-migrate to clang-modernize.</title>
<updated>2013-09-04T17:35:07+00:00</updated>
<author>
<name>Chandler Carruth</name>
<email>chandlerc@gmail.com</email>
</author>
<published>2013-09-04T17:35:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=d9063c46f59f4bec47bcbeddca8ca2f789348c03'/>
<id>urn:sha1:d9063c46f59f4bec47bcbeddca8ca2f789348c03</id>
<content type='text'>
There is no reason to expect this tool to be limited to C++11, it seems
very likely to be of on-going interest. It seems likely to be useful for
modernizing even as new libraries come out in TSes and other formats
than a complete standard. Fundamentally, we need something a bit more
general. After some discussion on the list, going with
'clang-modernize'.

I've tried to do a reasonably comprehensive job of fixing up the names,
but I may still have missed some. Feel free to poke me if you spot any
fallout here. Things I've tried reasonably hard to find and fix:

- cpp11-migrate -&gt; clang-modernize
- Migrator -&gt; Modernizer
- Clean up the introductory documentation that was C++11 specific.

I'll also point out that this tool continues to delight me. =] Also,
a huge thanks to those who have so carefully, thoroughly documented the
tool. The docs here are simply phenomenal. Every tool should be this
well documented. I hope I have updated the documentation reasonably
well, but I'm not very good at documentation, so review much
appreciated.

llvm-svn: 189960
</content>
</entry>
<entry>
<title>Fix UseAuto not transforming iterator when non-fully qualifiers are used and</title>
<updated>2013-07-15T15:37:05+00:00</updated>
<author>
<name>Ariel J. Bernal</name>
<email>ariel.j.bernal@intel.com</email>
</author>
<published>2013-07-15T15:37:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=601858aed76429a0ddf2324b05946d13e59a6471'/>
<id>urn:sha1:601858aed76429a0ddf2324b05946d13e59a6471</id>
<content type='text'>
using inline namespaces is specified.

UseAuto used to fail to transform iterators when using inline namespaces and
non-fully qualified types, relying on a using directive previously declared.
- This fix uses the already define isFromStdNamespace matcher.
- Fixed tests and added a new test using inline namespaces.
- Added CustomMatchers to reuse common matchers among transforms.

llvm-svn: 186327
</content>
</entry>
<entry>
<title>Fix UseAuto replacing declaration lists with new expressions</title>
<updated>2013-05-27T14:30:23+00:00</updated>
<author>
<name>Ariel J. Bernal</name>
<email>ariel.j.bernal@intel.com</email>
</author>
<published>2013-05-27T14:30:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=1d66e366e96d9622bfdbc9a78383033e89a808b4'/>
<id>urn:sha1:1d66e366e96d9622bfdbc9a78383033e89a808b4</id>
<content type='text'>
UseAuto used to replace declarion lists with new expressons where some
variable were not initialized with new.
This fix checks that every DeclStmt has a VarDecl with an initializer and it
also ensures that all declarations have the same type.

Added tests for multiple declarations and for typedefs.

llvm-svn: 182736
</content>
</entry>
<entry>
<title>Fix UseAuto replacing variable declaration lists containing non-initialized</title>
<updated>2013-05-17T15:30:17+00:00</updated>
<author>
<name>Ariel J. Bernal</name>
<email>ariel.j.bernal@intel.com</email>
</author>
<published>2013-05-17T15:30:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=eba5189f9a81a3360dc5a27f82a03cc555fa8ee7'/>
<id>urn:sha1:eba5189f9a81a3360dc5a27f82a03cc555fa8ee7</id>
<content type='text'>
variables.

UseAuto used to match initialized variable declarations independently of
whether they were defined in a declaration list or as a single declaration.
Now it matches declaration statements where every variable declaration is
initialized.

llvm-svn: 182114
</content>
</entry>
<entry>
<title>Use 'auto' with 'new' expressions</title>
<updated>2013-04-02T20:43:57+00:00</updated>
<author>
<name>Edwin Vane</name>
<email>edwin.vane@intel.com</email>
</author>
<published>2013-04-02T20:43:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=eeed39a58372135639c0b5918efb13ca552daec5'/>
<id>urn:sha1:eeed39a58372135639c0b5918efb13ca552daec5</id>
<content type='text'>
For variable declarations initialized with new expressions, use 'auto' for the
type specifier.

The 'auto' replacement happens only when the type of the VarDecl exactly
matches the type of the initializer and the VarDecl is *not* CV-qualified. The
only case that is currently handled is if the pointer type of the VarDecl is
itself CV qualified.

Some improvements need to be made to Clang's TypeLoc information in order for
other CV qualifier cases to be successfully handled. See the new test suite
new_cv_failing.cpp for examples of usages that could be handled with such an
improvement.

Function pointers are, for now, not transformed until the identifier info can
be extracted.

Reviewer: klimek
llvm-svn: 178575
</content>
</entry>
<entry>
<title>cpp11-migrate segfaults transforming map&lt;string,int&gt;::iterator </title>
<updated>2013-03-27T18:49:31+00:00</updated>
<author>
<name>Ariel J. Bernal</name>
<email>ariel.j.bernal@intel.com</email>
</author>
<published>2013-03-27T18:49:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=3f08aae84f3f6816c119ceecf59eade751132aa3'/>
<id>urn:sha1:3f08aae84f3f6816c119ceecf59eade751132aa3</id>
<content type='text'>
cpp11-migrate segfaults when -use-auto tries to resolve initializing 
expression resulting in an expression with cleanups.

- Skip expressions with cleanups from the initializer
- Added test case

Fixes PR15550

llvm-svn: 178167
</content>
</entry>
<entry>
<title>Switch from autogenerating tests to using the preprocessor.</title>
<updated>2013-03-07T10:09:47+00:00</updated>
<author>
<name>Chandler Carruth</name>
<email>chandlerc@gmail.com</email>
</author>
<published>2013-03-07T10:09:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=074a3568fca118fd59fdc8d1729580d5ad295654'/>
<id>urn:sha1:074a3568fca118fd59fdc8d1729580d5ad295654</id>
<content type='text'>
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
</content>
</entry>
<entry>
<title>Make gen_my_std.h.py compatible with python 2.5 too.</title>
<updated>2013-03-02T15:52:55+00:00</updated>
<author>
<name>Benjamin Kramer</name>
<email>benny.kra@googlemail.com</email>
</author>
<published>2013-03-02T15:52:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=65d2d14f329052aacb26ae0eb554f7d3fda02314'/>
<id>urn:sha1:65d2d14f329052aacb26ae0eb554f7d3fda02314</id>
<content type='text'>
llvm-svn: 176409
</content>
</entry>
<entry>
<title>Make the UseAuto test case generator compatible with python 2.5.</title>
<updated>2013-03-02T09:24:42+00:00</updated>
<author>
<name>Benjamin Kramer</name>
<email>benny.kra@googlemail.com</email>
</author>
<published>2013-03-02T09:24:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=336ec56081e775f9355bcc40f93ead0572bdc7c5'/>
<id>urn:sha1:336ec56081e775f9355bcc40f93ead0572bdc7c5</id>
<content type='text'>
llvm-svn: 176406
</content>
</entry>
<entry>
<title>Fix recursive make in clang-tools-extra</title>
<updated>2013-03-01T19:50:52+00:00</updated>
<author>
<name>Edwin Vane</name>
<email>edwin.vane@intel.com</email>
</author>
<published>2013-03-01T19:50:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=b1bb4c2dbb4f035cabcd62e4911eeb767502d920'/>
<id>urn:sha1:b1bb4c2dbb4f035cabcd62e4911eeb767502d920</id>
<content type='text'>
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
</content>
</entry>
</feed>
