| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
| |
It's a useful function to have around for target-specific attributes.
llvm-svn: 191768
|
| |
|
|
| |
llvm-svn: 191736
|
| |
|
|
| |
llvm-svn: 191730
|
| |
|
|
|
|
|
|
|
|
| |
When nested C++11 lambdas are used in NSDMI's - this patch prevents infinite recursion by computing the linkage of any nested lambda by determining the linkage of the outermost enclosing lambda (which might inherit its linkage from its parent).
See http://llvm-reviews.chandlerc.com/D1783 for Doug's approval.
[On a related note, I need this patch so as to pass tests of transformations of nested lambdas returned from member functions]
llvm-svn: 191727
|
| |
|
|
|
|
|
|
|
|
| |
When we check access for lookup results, make sure we propagate the
result's access to the access control APIs; this can be different from
the natural access of the declaration depending on the path used by the lookup.
PR17394.
llvm-svn: 191726
|
| |
|
|
|
|
| |
-relaxed-aliasing.
llvm-svn: 191725
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Currently, IR generation can't handle file-scope compound literals with
non-constant initializers in C++.
Fixes PR17415 (the first crash in the bug).
(We should probably change (T){1,2,3} to use the same codepath as T{1,2,3} in
C++ eventually, given that the semantics of the latter are actually defined by
the standard.)
llvm-svn: 191719
|
| |
|
|
|
|
| |
out of the working paper. This reverts r179962 and r179992.
llvm-svn: 191718
|
| |
|
|
| |
llvm-svn: 191707
|
| |
|
|
| |
llvm-svn: 191700
|
| |
|
|
|
|
| |
Use -no-struct-path-tbaa to turn it off.
llvm-svn: 191695
|
| |
|
|
|
|
| |
Differential Revision: http://llvm-reviews.chandlerc.com/D1751
llvm-svn: 191681
|
| |
|
|
|
|
|
|
|
| |
The help text for clang-format's -style option and the function that processes
its value is moved to libFormat in this patch. The goal is to enable other
tools that use libFormat and also have a -style option to behave consistently
with clang-format.
llvm-svn: 191666
|
| |
|
|
|
|
|
|
| |
TemplateDeclInstantiator takes the MultiLevelArgumentList by const-ref
and stores a const-ref member. Thus, we must not pass a temporary
into the constructor.
llvm-svn: 191665
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, comments, could totally confuse it.
Before:
return
// true if code is one of a or b.
code == a ||
code == b;
After:
return
// true if code is one of a or b.
code == a || code == b;
llvm-svn: 191654
|
| |
|
|
| |
llvm-svn: 191648
|
| |
|
|
|
|
| |
I got a bunch of buildbot failures that i don't understand - sorry.
llvm-svn: 191647
|
| |
|
|
|
|
|
| |
As Richard pointed out to me, dyn_cast is very cheap - there is no real benefit from adding cluttery overloads to only avoid that cast.
No functionality change.
llvm-svn: 191646
|
| |
|
|
|
|
|
|
|
|
| |
When nested lambdas are used in NSDMI's - this prevents infinite recursion.
See http://llvm-reviews.chandlerc.com/D1783 for Doug's approval regarding the code, and then request for some tests.
[On a related note, I need this patch so as to pass tests of transformations of nested lambdas returned from member functions]
llvm-svn: 191645
|
| |
|
|
| |
llvm-svn: 191641
|
| |
|
|
| |
llvm-svn: 191640
|
| |
|
|
|
|
|
|
| |
Before, this could would lead to an assert:
llvm::errs() << "
<< a;
llvm-svn: 191639
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The general strategy is to create template versions of the conversion function and static invoker and then during template argument deduction of the conversion function, create the corresponding call-operator and static invoker specializations, and when the conversion function is marked referenced generate the body of the conversion function using the corresponding static-invoker specialization. Similarly, Codegen does something similar - when asked to emit the IR for a specialized static invoker of a generic lambda, it forwards emission to the corresponding call operator.
This patch has been reviewed in person both by Doug and Richard. Richard gave me the LGTM.
A few minor changes:
- per Richard's request i added a simple check to gracefully inform that captures (init, explicit or default) have not been added to generic lambdas just yet (instead of the assertion violation).
- I removed a few lines of code that added the call operators instantiated parameters to the currentinstantiationscope. Not only did it not handle parameter packs, but it is more relevant in the patch for nested lambdas which will follow this one, and fix that problem more comprehensively.
- Doug had commented that the original implementation strategy of using the TypeSourceInfo of the call operator to create the static-invoker was flawed and allowed const as a member qualifier to creep into the type of the static-invoker. I currently kludge around it - but after my initial discussion with Doug, with a follow up session with Richard, I have added a FIXME so that a more elegant solution that involves the use of TrivialTypeSourceInfo call followed by the correct wiring of the template parameters to the functionprototypeloc is forthcoming.
Thanks!
llvm-svn: 191634
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Clang uses UTF-16 and UTF-32 for its char16_t's and char32_t's
exclusively. This means that we can define __STDC_UTF_16__ and
__STDC_UTF_32__ unconditionally.
While there, define __STDC_MB_MIGHT_NEQ_WC__ for FreeBSD. FreeBSD's
wchar_t's don't encode characters as ISO-10646; the encoding depends on
the locale used. Because the character set used might not be a superset
of ASCII, we must define __STDC_MB_MIGHT_NEQ_WC__.
llvm-svn: 191631
|
| |
|
|
|
|
|
| |
instead, it's enabled by the -cc1 flag -fsized-deallocation, until we sort out
the backward-compatibility issues.
llvm-svn: 191629
|
| |
|
|
| |
llvm-svn: 191615
|
| |
|
|
|
|
|
|
|
|
|
| |
- We scan for whitespace between comments anyways, remember any newlines seen
along the way.
- Use this newline number to decide whether two comments are adjacent.
- Since the newline check is now free remove the caching and unused code.
- Remove unnecessary boolean state from the comment list.
- No behavioral change.
llvm-svn: 191614
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
multi-library path suffix.
The code calculates MIPS toolchain specific multi-lib path suffixes like
mips16/soft-float/el is moved to the separate function
findMultiLibSuffix(). This function called during GCC installation
detection and result is stored for the future using.
The patch reviewed by Rafael Espindola.
http://llvm-reviews.chandlerc.com/D1738
llvm-svn: 191612
|
| |
|
|
| |
llvm-svn: 191609
|
| |
|
|
| |
llvm-svn: 191607
|
| |
|
|
|
|
|
|
| |
putting them in the call operator's DeclContext. This better matches the
language wording and avoids some cases where code gets confused by them for
namespace-scope lambdas and the like.
llvm-svn: 191606
|
| |
|
|
|
|
| |
and capturing a variable declaration, and complete the implementation of them.
llvm-svn: 191605
|
| |
|
|
|
|
|
|
|
|
|
|
| |
...rather than trying to figure it out from the call site, and having
people complain that we guessed wrong and that a prototype-less call is
the same as a variadic call on their system. More importantly, fix a
crash when there's no decl at the call site (though we could have just
returned a default value).
<rdar://problem/15037033>
llvm-svn: 191599
|
| |
|
|
| |
llvm-svn: 191592
|
| |
|
|
|
|
| |
Differential Revision: http://llvm-reviews.chandlerc.com/D1766
llvm-svn: 191590
|
| |
|
|
| |
llvm-svn: 191589
|
| |
|
|
|
|
|
| |
Struct-path aware TBAA generates tags to specify the access path,
while scalar TBAA only generates tags to scalar types.
llvm-svn: 191586
|
| |
|
|
|
|
|
| |
if property name is a valid identifier in the underlying
language. // rdar://15044184
llvm-svn: 191584
|
| |
|
|
|
|
|
|
|
| |
uses.
This fixes one of the two remaining failures to implement [[deprecated]]
as specified for C++14.
llvm-svn: 191572
|
| |
|
|
|
|
|
|
|
| |
disable-objc-default-synthesize-properties.
We want the modern behavior most of the time, so inverting the option simplifies
the driver and the tests.
llvm-svn: 191551
|
| |
|
|
|
|
| |
here goes to Larisse Voufo.
llvm-svn: 191549
|
| |
|
|
|
|
| |
appropriately, especially when they appear within class templates.
llvm-svn: 191548
|
| |
|
|
| |
llvm-svn: 191545
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Move some tests from typo-correction.cpp to typo-correction-pt2.cpp
because they were running afoul of the hard-coded limit of 20 typos
corrected. Some of the tests after it were still working due to the
limit not applying to cached corrections and in cases where a non-NULL
MemberContext is passed in to Sema::CorrectTypo. Most of the moved tests
still passed after being moved, but the test involving "data_struct" had
only been passing because the test had exceeded that limit so a fix for
it is also included (most of the changes to ParseStmt.cpp are shared with
and originated from another typo correction impovement that was split
into a separate commit).
llvm-svn: 191544
|
| |
|
|
|
|
| |
isn't repeatedly attempted for the same identifier at the same location.
llvm-svn: 191543
|
| |
|
|
|
|
|
| |
We started parsing /FI in r191442, and now we can pass it on to the
fallback too.
llvm-svn: 191537
|
| |
|
|
|
|
|
|
|
| |
- We really shouldn't compute line numbers for every file that is asked if it's
the main file, it destroys the lazy computation.
- Invalid locations are no longer accounted to the main file, no other
functionality change.
llvm-svn: 191535
|
| |
|
|
| |
llvm-svn: 191533
|
| |
|
|
|
|
| |
Found by Arthur Yoo.
llvm-svn: 191532
|
| |
|
|
| |
llvm-svn: 191530
|