- Oct 08, 2013
-
-
Rui Ueyama authored
llvm-svn: 192170
-
Rui Ueyama authored
llvm-svn: 192169
-
Daniel Jasper authored
Specifically make ConstructorInitializerAllOnOneLineOrOnePerLine work nicely with BreakConstructorInitializersBeforeComma. This fixes llvm.org/PR17395. llvm-svn: 192168
-
Rui Ueyama authored
Differential Revision: http://llvm-reviews.chandlerc.com/D1853 llvm-svn: 192167
-
Faisal Vali authored
As described by Richard in https://groups.google.com/a/isocpp.org/d/msg/std-discussion/S1kmj0wF5-g/fb6agEYoL2IJ we should allow: template<typename S> struct A { template<typename T> static auto default_lambda() { return [](const T&) { return 42; }; } template<class U = decltype(default_lambda<S>())> U func(U u = default_lambda<S>()) { return u; } }; int run2 = A<double>{}.func()(3.14); int run3 = A<char>{}.func()('a'); This patch allows the code using the same trickery that was used to allow the code in non-member functions at namespace scope. Please see http://llvm-reviews.chandlerc.com/D1844 for richard's approval. llvm-svn: 192166
-
Rui Ueyama authored
llvm-svn: 192165
-
Rui Ueyama authored
llvm-svn: 192164
-
Rui Ueyama authored
llvm-svn: 192163
-
Rui Ueyama authored
llvm-svn: 192162
-
Jason Molenda authored
<rdar://problem/15099306> llvm-svn: 192161
-
Venkatraman Govindaraju authored
[Sparc] Do not hardcode nop in the delay slot of TLS_CALL. Use DelaySlotFiller to fill the delay slot instead. llvm-svn: 192160
-
Jason Molenda authored
in the middle because of alignment rules. llvm-svn: 192159
-
Adrian Prantl authored
llvm-svn: 192158
-
Adrian Prantl authored
llvm-svn: 192157
-
Adrian Prantl authored
llvm-svn: 192156
-
Richard Smith authored
llvm-svn: 192155
-
Nick Kledzik authored
llvm-svn: 192154
-
Nick Kledzik authored
llvm-svn: 192153
-
Nick Kledzik authored
llvm-svn: 192152
-
Nick Kledzik authored
llvm-svn: 192151
-
Reid Kleckner authored
Summary: Operator new, new[], delete, and delete[] are all implicitly static when declared inside a record. CXXMethodDecl already knows this, but we need to account for that before we pick the calling convention for the function type. Fixes PR17371. Reviewers: rsmith CC: cfe-commits Differential Revision: http://llvm-reviews.chandlerc.com/D1761 llvm-svn: 192150
-
Rui Ueyama authored
llvm-svn: 192149
-
Rui Ueyama authored
Summary: The original code with enum "_" is intended to emulate scoped enums. Now we have real scoped enums, so use it. Reviewers: Bigcheese CC: llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D1852 llvm-svn: 192148
-
Nick Kledzik authored
This is the first step in how I plan to get mach-o object files support into lld. We need to be able to test the mach-o Reader and Write on systems without a mach-o tools. Therefore, we want to support a textual way (YAML) to represent mach-o files. MachONormalizedFile.h defines an in-memory abstraction of the content of mach-o files. The in-memory data structures are always native endianess and always use 64-bit sizes. That internal data structure can then be converted to or from three different formats: 1) yaml (text) encoded mach-o, 2) binary mach-o files, 3) lld Atoms. This patch defines the internal model and uses YAML I/O to implement the conversion to and from the model to yaml. The next patch will implement the conversion from normalized to binary mach-o. This patch includes unit tests to validate the yaml conversion APIs. llvm-svn: 192147
-
Justin Bogner authored
In r186373, we started merging attributes on typedefs, but this causes us to try to merge attributes even if the previous declaration was not a typedef. Only merge the attributes if the previous decl was also a typedef. Fixes rdar://problem/15044218 llvm-svn: 192146
-
Manman Ren authored
An updated version of r191586 with bug fix. Struct-path aware TBAA generates tags to specify the access path, while scalar TBAA only generates tags to scalar types. We should not generate a TBAA tag with null being the first field. When a TBAA type node is null, the tag should be null too. Make sure we don't decorate an instruction with a null TBAA tag. Added a testing case for the bug reported by Richard with -relaxed-aliasing and -fsanitizer=thread. llvm-svn: 192145
-
Ted Kremenek authored
llvm-svn: 192144
-
Ted Kremenek authored
Fixes <rdar://problem/10679282>. I'm not completely satisfied with this patch. Sprinkling "diagnostic ignored" _Pragmas throughout this file is gross, but I couldn't suppress it for the entire file. llvm-svn: 192143
-
Marshall Clow authored
llvm-svn: 192142
-
Reid Kleckner authored
Patch by David Ziman! llvm-svn: 192141
-
Richard Smith authored
llvm-svn: 192140
-
Hans Wennborg authored
Tip-of-tree CMake has become clang-cl aware [1]. In this case, CMAKE_CXX_COMPILER_ID will still be Clang, but MSVC will be true. [1] See http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=3d8356d4 llvm-svn: 192139
-
- Oct 07, 2013
-
-
Rui Ueyama authored
Summary: Rename lld:*_error::_ -> lld:*_error::ErrorCode. Reviewers: shankarke CC: llvm-commits Differential Revision: http://llvm-reviews.chandlerc.com/D1851 llvm-svn: 192138
-
David Majnemer authored
This is ever-so faster but more importantly matches what we have elsewhere. llvm-svn: 192137
-
Nick Kledzik authored
libcxxabi contains the runtime support for C++. But, as some folks have realized, it is not complete. It relies on some _Unwind_* functions to be supplied by the OS. That means it cannot be ported to platforms that don’t already have an unwinder. Years ago Apple wrote its own unwinder for MacOSX and iOS. To make libcxxabi complete, Apple has decided the source code for its unwinder can be contributed to the open source LLVM libcxxabi project, with a dual licensed under LLVM and MIT license. So, I’ve spent some time cleaning up the sources to make them conform with LLVM style and to conditionalize the sources in a way that should make it easier to port to other platforms. The sources are in a separate "Unwind" directory under "src" in libcxxabi. Background: Most architectures now use "zero cost" exceptions for C++. The zero cost means there are no extra instructions executed if no exceptions are thrown. But if an exception is thrown, the runtime must consult side tables and figure out how to restore registers and "unwind" from the current stack frame to the catch clause. That ability to modify the stack frames and cause the thread to resume in a catch clause with all registers restored properly is the main purpose of the unwinder. This unwinder has two levels of API. The high level APIs are the _Unwind_* functions which the cxa_* exception functions in libcxxabi require. The low level APIs are the unw_* functions which are an interface defined by the the old HP libunwind project (which shares no code with this unwinder). llvm-svn: 192136
-
Akira Hatanaka authored
llvm-svn: 192135
-
Ed Maste authored
llvm-svn: 192134
-
Arnold Schwaighofer authored
Otherwise, we don't perform operations that would have been performed on the scalar version. Fixes PR17498. llvm-svn: 192133
-
Ashok Thirumurthi authored
llvm-svn: 192132
-
Richard Smith authored
llvm-svn: 192131
-