| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
for Objective-C's array and dictionary literals.
rdar://17554063. This is wip.
llvm-svn: 214983
|
| |
|
|
| |
llvm-svn: 214976
|
| |
|
|
| |
llvm-svn: 214970
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before:
auto f (int x) -> decltype(x) { return sizeof(x); }
int g () noexcept(someCall ());
static_assert(sizeof(char) == 1, "Your compiler is broken");
After:
auto f (int x) -> decltype (x) { return sizeof (x); }
int g () noexcept (someCall ());
static_assert (sizeof (char) == 1, "Your compiler is broken");
This fixes llvm.org/PR20559.
Patch by Roman Kashitsyn, thank you!
llvm-svn: 214969
|
| |
|
|
| |
llvm-svn: 214967
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
With this patch:
int ThisWillBeFormatted;
// clang-format off
int ThisWontBeFormatted;
// clang-format on
int Formatted;
This is for regions where a significantly nicer code layout can be found
knowing the content of the code.
This fixes llvm.org/PR20463.
llvm-svn: 214966
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Before:
auto aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa =
new (aaaaaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaa))
typename aaaaaaaaaaaaaaaaaaaaaaaa();
After:
auto aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa =
new (aaaaaaaaaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaaaaa))
typename aaaaaaaaaaaaaaaaaaaaaaaa();
llvm-svn: 214964
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. Changes to the CFG:
When creating the CFG for temporary destructors, we create a structure
that mirrors the branch structure of the conditionally executed
temporary constructors in a full expression.
The branches we create use a CXXBindTemporaryExpr as terminator which
corresponds to the temporary constructor which must have been executed
to enter the destruction branch.
2. Changes to the Analyzer:
When we visit a CXXBindTemporaryExpr we mark the CXXBindTemporaryExpr as
executed in the state; when we reach a branch that contains the
corresponding CXXBindTemporaryExpr as terminator, we branch out
depending on whether the corresponding CXXBindTemporaryExpr was marked
as executed.
llvm-svn: 214962
|
| |
|
|
| |
llvm-svn: 214950
|
| |
|
|
|
|
|
|
|
|
|
|
| |
from the common driver code to the corresponding `MultilibSet` declarations.
Now the `MultilibSet` can hold an optional callback function which is
responsible to return a set of include directories specific for the toolchain.
That allows to remove MIPS toolchain specific directories from
`Linux::AddClangSystemIncludeArgs` method and simplify adding new directories
in the future.
llvm-svn: 214949
|
| |
|
|
|
|
|
|
| |
It is possible for lambdas to get the same mangling number because they
may exist in different mangling contexts. To handle this correctly,
mangle the context into the name as well.
llvm-svn: 214947
|
| |
|
|
| |
llvm-svn: 214935
|
| |
|
|
|
|
|
|
|
|
|
| |
The MS mangling scheme apparently has separate manglings for type and
non-type parameter packs when they are empty. Match template arguments
with parameters during mangling; check the parameter to see if it was
destined to hold type-ish things or nontype-ish things.
Differential Revision: http://reviews.llvm.org/D4792
llvm-svn: 214932
|
| |
|
|
| |
llvm-svn: 214931
|
| |
|
|
| |
llvm-svn: 214930
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This escapes any backslashes in the executable path and fixes an issue
with a trailing quote when the main file name had to be quoted during
printing.
It's impossible to test this without putting backslashes or quotes into
the executable path, so I didn't add automated tests.
The crash diagnostics are still only useful if you're using bash on
Windows, though. This should probably be writing a batch file instead.
llvm-svn: 214924
|
| |
|
|
|
|
|
|
|
| |
to instruct the code generator to not enforce a higher alignment
than the given number (of bytes) when accessing memory via an opaque
pointer or reference. Patch reviewed by John McCall (with post-commit
review pending). rdar://16254558
llvm-svn: 214911
|
| |
|
|
|
|
| |
Newly-created unconsumed instance is now assumed escaped if an invoked constructor has an argument of a pointer-to-record type.
llvm-svn: 214909
|
| |
|
|
|
|
|
|
|
|
| |
revision
for this patch is here: http://reviews.llvm.org/D4570. This will help with the
rebuild of Debian with clang. Here is a link to the errors that Debian is
experiencing: http://clang.debian.net/status.php?version=3.4.2&key=UNKNOWN_ARG
llvm-svn: 214907
|
| |
|
|
|
|
|
|
|
| |
a warning. Revision for this patch is here: http://reviews.llvm.org/D4565. This
patch will help with the rebuild of Debian with clang and many other projects
that wish to use clang. Here is a link to the errors that Debian is experiencing:
http://clang.debian.net/status.php?version=3.4.2&key=UNKNOWN_ARG
llvm-svn: 214906
|
| |
|
|
|
|
|
| |
Patch by "Roman Kashitsyn" <romankashicin@gmail.com>.
Phabricator revision: http://reviews.llvm.org/D4788
llvm-svn: 214904
|
| |
|
|
|
|
|
|
|
|
| |
Note that similar to palingr, we could further optimize these to emit
shufflevector when the shift count is <=64. This however does not
change the overall design that unlike palignr we would still need the LLVM
intrinsic corresponding to this intruction to handle the >64 cases. (palignr
uses the psrldq intrinsic in this case.)
llvm-svn: 214891
|
| |
|
|
| |
llvm-svn: 214883
|
| |
|
|
| |
llvm-svn: 214882
|
| |
|
|
|
|
|
|
| |
get rid of initializer list.
I am not sure whether -xcuda might imply -fno-ms-extensions.
llvm-svn: 214876
|
| |
|
|
|
|
| |
Angle brackets, aka < >, should be escaped.
llvm-svn: 214870
|
| |
|
|
| |
llvm-svn: 214869
|
| |
|
|
|
|
|
|
|
|
| |
This is required for GNU coding style, among others.
Also update the configuration documentation.
Modified from an original patch by Jarkko Hietaniemi, thank you!
llvm-svn: 214858
|
| |
|
|
|
|
|
|
|
| |
Seems to be the desired thing to do according to:
http://www.stroustrup.com/Programming/PPP-style-rev3.pdf
Patch by Jarkko Hietaniemi, thank you!
llvm-svn: 214857
|
| |
|
|
|
|
| |
changes.
llvm-svn: 214856
|
| |
|
|
|
|
|
|
|
| |
Embedded systems seem to have inherited Darwin's choise of "unsigned long" for
size_t (via a bunch of headers), so we should respect that.
rdar://problem/17872787
llvm-svn: 214854
|
| |
|
|
|
|
| |
Patch by Jacques Pienaar.
llvm-svn: 214852
|
| |
|
|
| |
llvm-svn: 214847
|
| |
|
|
| |
llvm-svn: 214830
|
| |
|
|
|
|
| |
I forgot to add this with the changes for r214699.
llvm-svn: 214829
|
| |
|
|
|
|
|
| |
int __declspec(align(16)) foo; is a tentative definition but the storage
for that variable should not have CommonLinkage.
llvm-svn: 214828
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
My original LE implementation of the vsldoi instruction, with its
altivec.h interfaces vec_sld and vec_vsldoi, produces incorrect
shufflevector operations in the LLVM IR. Correct code is generated
because the back end handles the incorrect shufflevector in a
consistent manner.
This patch and a companion patch for LLVM correct this problem by
removing the fixup from altivec.h and the corresponding fixup from the
PowerPC back end. Several test cases are also modified to reflect the
now-correct LLVM IR.
The vec_sums and vec_vsumsws interfaces in altivec.h are also fixed,
because they used vec_perm calls intended to be recognized as vsldoi
instructions. These vec_perm calls are now replaced with code that
more clearly shows the intent of the transformation.
llvm-svn: 214801
|
| |
|
|
| |
llvm-svn: 214796
|
| |
|
|
| |
llvm-svn: 214795
|
| |
|
|
|
|
|
|
|
|
| |
alignment doesn't affect packing.
Also, revert a couple of suppressions.
r214298, "Suppress clang/test/Sema/struct-packed-align.c for targeting LLP64."
r214301, "Suppress clang/test/Sema/struct-packed-align.c also on msvc for investigating."
llvm-svn: 214794
|
| |
|
|
| |
llvm-svn: 214793
|
| |
|
|
|
|
| |
It was always set to ".", which was duplicated in a few places.
llvm-svn: 214792
|
| |
|
|
|
|
|
| |
a mutex is acquired, but corresponding mutex is not provably not-held. This
is based on the earlier negative requirements patch.
llvm-svn: 214789
|
| |
|
|
| |
llvm-svn: 214786
|
| |
|
|
| |
llvm-svn: 214777
|
| |
|
|
|
|
|
|
|
|
| |
This matches MSVC's logic, which seems to be that when the friend
declaration is qualified, it cannot be a declaration of a new symbol
and so the dll linkage doesn't change.
Differential Revision: http://reviews.llvm.org/D4764
llvm-svn: 214774
|
| |
|
|
| |
llvm-svn: 214773
|
| |
|
|
|
|
| |
this instead of silently accepting and producing possibly-unexpected behavior.
llvm-svn: 214770
|
| |
|
|
| |
llvm-svn: 214759
|
| |
|
|
| |
llvm-svn: 214758
|