- Jun 27, 2013
-
-
Eli Friedman authored
Armed with a much better understanding of what TemplateSpecializationTypeLoc::initializeArgLocs actually does, I now understand that it's fine to just use an empty TemplateArgumentLocInfo for Integral, Declaration, and NullPtr TemplateArguments. Fixes PR14281. (The testcases are actually derived from libcxx_test in deduction-crash.cpp because the original testcase was impossible to reduce.) llvm-svn: 185038
-
Richard Smith authored
side-effect is not sequenced before its value computation. Also fix a mishandling of ?: expressions where the condition is constant that was exposed by the tests for this. llvm-svn: 185035
-
Fariborz Jahanian authored
private ivars in class extensions and class @implementation. // rdar://14278560 llvm-svn: 185025
-
- Jun 26, 2013
-
-
Aaron Ballman authored
Patch thanks to Robert Wilhelm. llvm-svn: 185022
-
Eli Friedman authored
The old implementation of ms_struct in RecordLayoutBuilder was a complete mess: it depended on complicated conditionals which didn't really reflect the underlying logic, and placed a burden on users of the resulting RecordLayout. This commit rips out almost all of the old code, and replaces it with simple checks in RecordLayoutBuilder::LayoutBitField. This commit also fixes <rdar://problem/14252115>, a bug where class inheritance would cause us to lay out bitfields incorrectly. llvm-svn: 185018
-
Joey Gouly authored
llvm-svn: 184970
-
Reid Kleckner authored
This allows clang to parse the type_traits header in Visual Studio 2012, which is included widely in practice. This is a rework of r163022 by João Matos. The original patch broke preprocessing of gtest headers, which this patch addresses. Patch by Will Wilson! llvm-svn: 184968
-
NAKAMURA Takumi authored
clang/test/Driver/pth.c: Fix r184942, a regexp like "\\\\" is redundant here. Should be matched to single \ with '\\'. llvm-svn: 184952
-
Rafael Espindola authored
llvm-svn: 184942
-
NAKAMURA Takumi authored
clang/test/lit.cfg: Tweak getClangBuiltinIncludeDir() not to expose dosish path separator on MSYS bash.exe, since r184774. $ bin/clang.exe -print-file-name=include e:/path/to/build/bin\..\lib\clang\3.4\include llvm-svn: 184930
-
Richard Smith authored
declaration. This PCH a little lazier, and breaks a deserialization cycle that causes crashes with modules enabled. llvm-svn: 184904
-
Faisal Vali authored
As noted by Richard in the post: http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20130624/082605.html, the following code should not add an entry into PendingLocalImplicitInstantiations, since local instantiations should only occur within the context of other instantiations: int foo(double y) { struct Lambda { template<class T> T operator()(T t) const { return t; }; } lambda; return lambda(y); } Hence the attached code does the following: 1) In MarkFunctionReferenced, check if ActiveInstantiations.size() is non-zero before adding to PendingLocalImplicitInstantiations. 2) In InstantiateFunctionDefinition, we swap out/in PendingLocalImplicitInstantiations so that only those pending local instantiations that are added during the instantiation of the current function are instantiated recursively. llvm-svn: 184903
-
Rafael Espindola authored
llvm-svn: 184902
-
Nick Lewycky authored
answer until after instantiation. Fixes PR16061! llvm-svn: 184890
-
David Majnemer authored
Friend declarations that specify a default argument must be a definition and the only declaration in the translation unit. llvm-svn: 184889
-
Richard Smith authored
llvm-svn: 184887
-
Richard Smith authored
llvm-svn: 184885
-
Richard Smith authored
template parameter. llvm-svn: 184884
-
Matt Beaumont-Gay authored
When the decl that we're getting alignment for is a FieldDecl, and the field's parent record is invalid, skip the actual field alignment calculation (and return 1-byte alignment in the general case). Also, assert in in getASTRecordLayout that the decl is valid. This was inspired by PR16292; see also r184581 and r184751. llvm-svn: 184883
-
David Majnemer authored
A default template-argument shall not be specified in a friend template declaration. Interestingly, we properly handled default template arguments on friend class members but not on just friend classes. llvm-svn: 184882
-
- Jun 25, 2013
-
-
Richard Smith authored
WenHan Gu! llvm-svn: 184875
-
Richard Smith authored
More of N3652: don't add an implicit 'const' to 'constexpr' member functions when checking for overloads in C++1y. llvm-svn: 184865
-
Fariborz Jahanian authored
is declared to have 'assign' attribute. // rdar://14212998 llvm-svn: 184863
-
Chandler Carruth authored
this code. These aren't technically standard predefines for the platform but apparantly lots of folks use them as they show up within LLVM's own codebase. ;] This may even fix some self host issues w/ the JIT!!! llvm-svn: 184830
-
Chandler Carruth authored
This test doesn't actually pass when run with llvm-lit for me or in a bot that actually always tries to run it. llvm-svn: 184817
-
Jordan Rose authored
Re-apply r184511, reverted in r184561, with the trivial default constructor fast path removed -- it turned out not to be necessary here. Certain expressions can cause a constructor invocation to zero-initialize its object even if the constructor itself does no initialization. The analyzer now handles that before evaluating the call to the constructor, using the same "default binding" mechanism that calloc() uses, rather than simply ignoring the zero-initialization flag. <rdar://problem/14212563> llvm-svn: 184815
-
Jordan Rose authored
In order to make sure virtual base classes are always initialized once, the AST contains initializers for the base class in /all/ of its descendents, not just the immediate descendents. However, at runtime, the most-derived object is responsible for initializing all the virtual base classes; all the other initializers will be ignored. The analyzer now checks to see if it's being called from another base constructor, and if so does not perform virtual base initialization. <rdar://problem/14236851> llvm-svn: 184814
-
Eli Friedman authored
Specifically, CallExpr::getCalleeDecl() can return null, so make sure to handle that correctly. llvm-svn: 184813
-
Richard Smith authored
numbers as we deserialize class template partial specializations. We can't assume that the old sequence numbers will work. The sequence numbers are still deterministic, but are now a lot less predictable for class template partial specializations in modules/PCH. llvm-svn: 184811
-
Eli Friedman authored
Using "delete" on a pointer to an incomplete type can't throw. While I'm here, clean up the signature of the canCalleeThrow() helper. llvm-svn: 184810
-
Richard Smith authored
llvm-svn: 184791
-
Rafael Espindola authored
llvm-svn: 184790
-
- Jun 24, 2013
-
-
Ted Kremenek authored
Tweak -Wdeprecated-objc-pointer-introspection to have a subgroup for results of using -performSelectorXXX. -performSelector: and friends return a value that is boxed as an Objective-C pointer. Sometimes it is an Objective-C pointer, sometimes it isn't. Some clients may wish to silence this warning based on calling this method. Fixes <rdar://problem/14147304> llvm-svn: 184789
-
Michael Gottesman authored
This is a large test and thus it will only run if you pass in --param run_long_tests=trueto LIT. This is intended so that this test can run on buildbots and not when one runs make check. llvm-svn: 184787
-
Eli Friedman authored
This changes the mangling of local static variables/etc. inside blocks to do something simple and sane. This avoids depending on the way we mangle blocks, which isn't really appropriate here. John, please take a look at this to make sure the mangling I chose is sane. Fixes <rdar://problem/14074423>. llvm-svn: 184780
-
Reid Kleckner authored
At this point, it's clear that the MSVC mangler uses the type-as-written instead of the canonical type, so this should bring us closer to MSVC. The main thrust of this change is to fix the way we mangle decayed array parameters of function pointer parameters. With a DecayedType sugar node, this code can now be much simpler. Fixes PR16096. This also fixes a separate issue that Richard spotted in review. Because separate declarations of the same entity can be spelled and mangled differently, MSVC always mangles the earliest declaration in an attempt to avoid link errors. Clang now does the same. Reviewers: rsmith Differential Revision: http://llvm-reviews.chandlerc.com/D844 llvm-svn: 184777
-
Argyrios Kyrtzidis authored
"argument unused during compilation" warning. rdar://14240566 llvm-svn: 184776
-
Reid Kleckner authored
The goal of this sugar node is to be able to look at an arbitrary FunctionType and tell if any of the parameters were decayed from an array or function type. Ultimately this is necessary to implement Microsoft's C++ name mangling scheme, which mangles decayed arrays differently from normal pointers. Reviewers: rsmith Differential Revision: http://llvm-reviews.chandlerc.com/D1014 llvm-svn: 184763
-
Kaelyn Uhrain authored
namespaces to try for potential typo corrections. llvm-svn: 184762
-
Reid Kleckner authored
This will prevent breakage when I introduce the DecayedType sugar node. llvm-svn: 184755
-