| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
| |
They were mostly copy&paste of each other, move it to CodeGenFunction. Of course
the two implementations have diverged over time; the one in CGExprCXX seems to
be the more modern one so I picked that one and moved it to CGClass which feels
like a better home for it. No intended functionality change.
llvm-svn: 189203
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Previously the backend wouldn't get to see the underlying GlobalValue
that corresponds to the template argument because it would be hidden by
a cast at the IR level. Instead strip the pointer casts off of the
value until we see the underlying GlobalValue.
Reviewers: dblaikie, echristo, majnemer
Reviewed By: majnemer
CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D1508
llvm-svn: 189200
|
| |
|
|
| |
llvm-svn: 189193
|
| |
|
|
|
|
| |
Patch by Jeroen Hofstee.
llvm-svn: 189190
|
| |
|
|
| |
llvm-svn: 189185
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
clang already had a mstrict-align which mentiones "Force all memory
accesses to be aligned (ARM only)". On gcc arm this is controlled by
-munaligned-access / -mno-unaligned-access. Add the gcc versions to
the frontend and make -mstrict-align and alias to -mno-unaligned-access
and only show it in clang -cc1 -help.
Since the default value for unaligned accesses / strict alignment
depends on the tripple, both the enable and disable flags are added.
If both are set, the no-unaligned-access is used.
Patch by Jeroen Hofstee.
llvm-svn: 189175
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This patch adds the -ffixed-r9 flag to clang to instruct llvm to
globally preserve the contents of r9. The flag is added to the newly
created ARM specific group.
While at it, also place marm / mno-thumb in that group.
Patch by Jeroen Hofstee.
llvm-svn: 189174
|
| |
|
|
|
|
| |
/me bows head in shame.
llvm-svn: 189172
|
| |
|
|
| |
llvm-svn: 189171
|
| |
|
|
| |
llvm-svn: 189170
|
| |
|
|
| |
llvm-svn: 189166
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This allows us to handle the general case where a non-type template
argument evaluates to a constant expression which isn't integral or a
declaration.
This fixes PR16939.
Reviewers: dblaikie, rsmith
Reviewed By: dblaikie
CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D1453
llvm-svn: 189165
|
| |
|
|
|
|
| |
Differential Revision: http://llvm-reviews.chandlerc.com/D1498
llvm-svn: 189156
|
| |
|
|
| |
llvm-svn: 189153
|
| |
|
|
|
|
| |
and function templates.
llvm-svn: 189152
|
| |
|
|
|
|
|
|
|
| |
- "clang -O3 -flto a.c -c", and
- "clang -emit-llvm a.c -c"
Thank Rafael for tips.
llvm-svn: 189150
|
| |
|
|
|
|
| |
We now saturate at -O3.
llvm-svn: 189149
|
| |
|
|
|
|
|
|
|
|
| |
One step toward differentiating following two commands:
clang -O3 -flto a.c -c, and
clang -O3 -emit-llvm a.c
Thanks many awesome folks for clarifying things.
llvm-svn: 189148
|
| |
|
|
| |
llvm-svn: 189142
|
| |
|
|
|
|
|
| |
The name of a class used in the testing files was updated to actually
be descriptive. Patch by chris.wailes@gmail.com.
llvm-svn: 189132
|
| |
|
|
| |
llvm-svn: 189129
|
| |
|
|
|
|
|
|
|
|
|
| |
Previously, the CMake build would look for llvm-tblgen to determine
if a directory is an LLVM build or install directory. Since we don't
want to include llvm-tblgen in the install, look for llvm-config instead,
and use that to find llvm-tblgen.
Differential Revision: http://llvm-reviews.chandlerc.com/D1483
llvm-svn: 189127
|
| |
|
|
|
|
|
|
|
|
| |
would cause us to concatenate these paragraphs into a single one.
The no-op whitespace churn in test/Index test happened because these tests
don't use the correct approach for testing and are more strict than required
for they are testing.
llvm-svn: 189126
|
| |
|
|
| |
llvm-svn: 189119
|
| |
|
|
| |
llvm-svn: 189115
|
| |
|
|
| |
llvm-svn: 189113
|
| |
|
|
|
|
| |
No functionality change intended.
llvm-svn: 189112
|
| |
|
|
|
|
|
|
|
|
|
| |
If the user has requested this warning, we should emit it, even if it's not
an extension in the current language mode. However, being an extension is
more important, so prefer the pedantic warning or the pedantic-compatibility
warning if those are enabled.
<rdar://problem/12922063>
llvm-svn: 189110
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This should be done, only if we are still in the unary expression's
scope.
Before:
bool aaaa = !aaaaaaaa( // break
aaaaaaaaaaa);
*aaaaaa = aaaaaaa( // break
aaaaaaaaaaaaaaaa);
After:
bool aaaa = !aaaaaaaa( // break
aaaaaaaaaaa); // <- (unchanged)
*aaaaaa = aaaaaaa( // break
aaaaaaaaaaaaaaaa); // <- (no longer indented relative to "*")
llvm-svn: 189108
|
| |
|
|
|
|
|
|
| |
.. in conjunction with Style.AlwaysBreakBeforeMultilineStrings. Also,
simplify the implementation by handling newly split strings and already
split strings by the same code.
llvm-svn: 189102
|
| |
|
|
|
|
|
|
|
|
| |
Before, this was causing errors.
Also exit early in breakProtrudingToken() (before the expensive call to
SourceManager::getSpellingColumnNumber()). This makes formatting huge
(100k+-item) braced lists possible.
llvm-svn: 189094
|
| |
|
|
| |
llvm-svn: 189093
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Instead of digging through the ExplodedGraph, to figure out which edge brought
us here, I compute the value of conditional expression by looking at the
sub-expression values.
To do this, I needed to change the liveness algorithm a bit -- now, the full
conditional expression also depends on all atomic sub-expressions, not only the
outermost ones.
Reviewers: jordan_rose
CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D1340
llvm-svn: 189090
|
| |
|
|
| |
llvm-svn: 189088
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
There were two things known to be wrong with our implementation of MSVC
mode template arguments:
- We didn't properly handle __uuidof/CXXUuidofExpr and skipped all type
checking completely.
- We didn't allow for MSVC's extension of allowing certain constant
"foldable" expressions from showing up in template arguments.
They allow various casts dereference and address-of operations.
We can make it more general as we find further peculiarities but this
is the known extent.
Reviewers: rsmith, doug.gregor, rjmccall
Reviewed By: doug.gregor
CC: cfe-commits, rnk
Differential Revision: http://llvm-reviews.chandlerc.com/D1444
llvm-svn: 189087
|
| |
|
|
|
|
| |
about a declaration within a return type.
llvm-svn: 189083
|
| |
|
|
|
|
|
|
| |
This was only used to ensure that the traversal order was the same as the
insertion order, but that guarantee was already being provided by the use
of a FoldingSetVector.
llvm-svn: 189075
|
| |
|
|
|
|
| |
audited types.
llvm-svn: 189072
|
| |
|
|
|
|
| |
code size.
llvm-svn: 189070
|
| |
|
|
| |
llvm-svn: 189069
|
| |
|
|
|
|
| |
that it's off.
llvm-svn: 189064
|
| |
|
|
|
|
|
|
|
|
|
| |
Patch by chris.wailes@gmail.com. The following functionality was added:
* The same functionality is now supported for both CXXOperatorCallExprs and CXXMemberCallExprs.
* Factored out some code in StmtVisitor.
* Removed variables from the state map when their destructors are encountered.
* Started adding documentation for the consumed analysis attributes.
llvm-svn: 189059
|
| |
|
|
|
|
| |
Differential Revision: http://llvm-reviews.chandlerc.com/D1443
llvm-svn: 189055
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
These typically come from static data members of class template
specializations. This accomplishes two things:
1. May expose GlobalOpt optimizations for Itanium C++ ABI code.
2. Works toward fixing double initialization in the Microsoft C++ ABI.
CC: cfe-commits
Differential Revision: http://llvm-reviews.chandlerc.com/D1475
llvm-svn: 189051
|
| |
|
|
| |
llvm-svn: 189042
|
| |
|
|
|
|
| |
CF methods too.
llvm-svn: 189041
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Refactor VariantMatcher to use an interface underneath.
It supports "Single" and "Polymorphic". Will support more in the future.
Reviewers: klimek
CC: cfe-commits, revane
Differential Revision: http://llvm-reviews.chandlerc.com/D1446
llvm-svn: 189032
|
| |
|
|
|
|
| |
I was bound to screw this up somehow.
llvm-svn: 189029
|
| |
|
|
| |
llvm-svn: 189028
|
| |
|
|
|
|
|
|
|
|
| |
Thanks for pointing this out, Stephen. I think this is right now -- I
attempted to try all four valid combinations with both the autoconf and
CMake builds.
See also LLVM changes to the configure script.
llvm-svn: 189027
|