- Mar 04, 2014
-
-
Richard Smith authored
module import. llvm-svn: 202771
-
David Blaikie authored
DebugInfo: Emit only the declaration of a class template that has an explicit instantiation declaration (& always emit such a type when there's an explicit instantiation definition) We should only have this optimization fire when the explicit instantiation definition would cause at least one member function to be emitted, thus ensuring that even a compiler not performing this optimization would still emit the full type information elsewhere. But we should also pessimize output still by always emitting the definition when the explicit instantiation definition appears so that at some point in the future we can depend on that information even when no code had to be emitted in that TU. (this shouldn't happen very often, since people mostly use explicit spec decl/defs to reduce code size - but perhaps one day they could use it to explicitly reduce debug info size too) This was worth about 2% for Clang and LLVM - so not a huge win, but a win. It looks really great for simple STL programs (include <string> and just declare a string - 14k -> 1.4k of .dwo) llvm-svn: 202769
-
- Mar 03, 2014
-
-
Fariborz Jahanian authored
for metadata symbols for forward referenced protocols which are never defined. // rdar://16203115 llvm-svn: 202761
-
Richard Smith authored
the type of the first parameter fails, and it is the only, unnamed, parameter). llvm-svn: 202759
-
Diego Novillo authored
This needs to modify a line table test to account for the new lexical block created to hold the new discriminator value. llvm-svn: 202754
-
Jordan Rose authored
Always run the test again, even for a trivial change... llvm-svn: 202747
-
Jordan Rose authored
llvm-svn: 202746
-
Argyrios Kyrtzidis authored
[libclang] Have clang_getCursorSpelling() return the string for a CXCursor_ObjCStringLiteral or CXCursor_StringLiteral cursor. rdar://16206459 llvm-svn: 202745
-
Jordan Rose authored
Serialized diagnostics were accidentally using the AST diagnostic level values rather than a dedicated stable enum, so the addition of "remark" broke the reading of existing serialized diagnostics files. I've added a .dia file generated from Xcode 5's Clang to make sure we don't break this in the future. llvm-svn: 202733
-
Tom Stellard authored
llvm-svn: 202721
-
Tim Northover authored
llvm-svn: 202703
-
David Majnemer authored
This commit reverts r201037, it's functionality is not needed given the definition of std::max_align_t in libcxx circa r201843. llvm-svn: 202667
-
- Mar 02, 2014
-
-
David Majnemer authored
Some files had CRLF line terminators, some only had a mixture of CRLF and LF. Switch to LF. llvm-svn: 202659
-
Hal Finkel authored
This adds support for the PPC "wc" inline asm constraint (used for allocating individual CR bits). Support for this constraint type was recently added to the LLVM PowerPC backend. Although gcc does not currently support allocating individual CR bits, this identifier choice has been coordinated with the gcc PowerPC team, and will be marked as reserved for this purpose in the gcc constraints.md file. Prior to this change, none of the multi-character PPC constraints were handled correctly (the '^' escape character was not being added as required by the parsing code in LLVM). This should now be fixed. I'll add tests for these other constraints as support is added for them in the backend. llvm-svn: 202658
-
Richard Smith authored
Add [extern_c] attribute for modules, allowing a C module to be imported within an extern "C" block in C++ code. llvm-svn: 202615
-
- Mar 01, 2014
-
-
Warren Hunt authored
When lowering a bitfield, CGRecordLowering would assign the wrong storage type to a bitfield in some cases and trigger an assertion. In these cases the layout was still correct, just the bitfield info was wrong. llvm-svn: 202562
-
Richard Smith authored
it, importers of B should not see the macro. This is complicated by the fact that A's macro could also be visible through a different path. The rules (as hashed out on cfe-commits) are included as a documentation update in this change. With this, the number of regressions in libc++'s testsuite when modules are enabled drops from 47 to 7. Those remaining 7 are also macro-related, and are due to remaining bugs in this change (in particular, the handling of submodules is imperfect). llvm-svn: 202560
-
- Feb 28, 2014
-
-
Anton Yartsev authored
Additional conditions that prevent useful nodes before call from being reclaimed. llvm-svn: 202553
-
Ben Langmuir authored
Was r202442 There were two issues with the original patch that have now been fixed. 1. We were memset'ing over a FileEntry in a test case. After adding a std::string to FileEntry, this still happened to not break for me. 2. I didn't pass the FileManager into the new compiler instance in compileModule. This was hidden in some cases by the fact I didn't clear the module cache in the test. Also, I changed the copy constructor for FileEntry, which was memcpy'ing in a (now) unsafe way. llvm-svn: 202539
-
Richard Smith authored
llvm-svn: 202534
-
Richard Smith authored
Fix a minor bug in lexing pp-numbers with digit separators: if a pp-number contains "'e+", the pp-number ends between the 'e' and the '+'. llvm-svn: 202533
-
Anders Carlsson authored
When completing Objective-C instance method invocations, perform a contextual conversion to an Objective-C pointer type of the target expression if needed. This fixes code completion of method invocations where the target is a smart pointer that has an explicit conversion operator to an Objective-C type. llvm-svn: 202529
-
Kaelyn Uhrain authored
won't work (i.e. when not doing a member lookup and not in a method from the same class or a descendant class). llvm-svn: 202520
-
Aaron Ballman authored
Adding a test case to ensure that type attributes applied to the decl-specifier are applied across all declarations in a group. llvm-svn: 202501
-
Benjamin Kramer authored
PR18999. llvm-svn: 202491
-
Bob Wilson authored
llvm-svn: 202468
-
Nick Lewycky authored
llvm-svn: 202467
-
Rafael Espindola authored
Patch by Brad Smith. llvm-svn: 202462
-
Richard Smith authored
Add a -Wclass-varargs to warn on objects of any class type being passed through an ellipsis. Since C++11 relaxed the rules on this, we allow a lot more bad code through silently, such as: const char *format = "%s"; std::experimental::string_view view = "foo"; printf(format, view); In this case, not only warn about a class type being used here, but also suggest that calling c_str() might be a good idea. llvm-svn: 202461
-
Reid Kleckner authored
It makes our -fdump-record-layouts a little more sane. llvm-svn: 202457
-
Hal Finkel authored
The backend currently enables CR-bit tracking by default at -O2 and higher. These flags allow the user to override that default. llvm-svn: 202453
-
Ben Langmuir authored
Revert r202442, which broke the buildbots. llvm-svn: 202443
-
Ben Langmuir authored
Pass through the externally-visible names that we got from the VFS down to FileManager, and test that this is the name showing up in __FILE__, diagnostics, and debug information. llvm-svn: 202442
-
- Feb 27, 2014
-
-
Ted Kremenek authored
This is a heuristic. Many switch statements, although they look covered over an enum, may actually handle at runtime more values than in the enum. This is overly conservative, as there are some cases that clearly can be ruled as being clearly unreachable, e.g. 'switch (42) { case 1: ... }'. We can refine this later. llvm-svn: 202436
-
Ted Kremenek authored
llvm-svn: 202435
-
John McCall authored
or virtual functions, but permit that error to be downgraded to a warning (with -Wno-error=incompatible-ms-struct), and officially support this kind of dual, ABI-mixing layout. The basic problem here is that projects which use ms_struct are often not very circumspect about what types they annotate; for example, some projects enable the pragma in a prefix header and then only selectively disable it around system header inclusions. They may only care about binary compatibility with MSVC for a subset of those structs, but that doesn't mean they have no binary compatibility concerns at all for the rest; thus we are essentially forced into supporting this hybrid ABI. But it's reasonable for us to at least point out the places where we're not making any guarantees. The original diagnostic was for dynamic classes, i.e. those with virtual functions or virtual bases; I've extended it to include all classes with bases, because we are not actually making any attempt to duplicate MSVC's base subobject layout in ms_struct (and it is indeed quite different from Itanium, even for non-virtual bases). rdar://16178895 llvm-svn: 202427
-
Reid Kleckner authored
Summary: This merges VFPtrInfo and VBTableInfo into VPtrInfo, since they hold almost the same information. With that change, the vbtable mangling code can easily be applied to vftable data and we magically get the correct, unambiguous vftable names. Fixes PR17748. Reviewers: timurrrr, majnemer CC: cfe-commits Differential Revision: http://llvm-reviews.chandlerc.com/D2893 llvm-svn: 202425
-
Rafael Espindola authored
In llvm the only semantic difference between internal and private is that llvm tries to hide private globals my mangling them with a private prefix. Since the globals changed by this patch already had the magic don't mangle marker, there should be no change in the generated assembly. A followup patch should then be able to drop the \01L and \01l prefixes and let llvm mangle as appropriate. llvm-svn: 202419
-
Dmitri Gribenko authored
clang_Type_getTemplateArgument Note that these functions don't handle variadic templates -- see tests. Patch by Matthieu Nottale and Philippe Daouadi. llvm-svn: 202406
-
Alexey Bataev authored
llvm-svn: 202360
-