aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2009-06-14Sink the BuiltinInfo object from ASTContext into theChris Lattner
preprocessor and initialize it early in clang-cc. This ensures that __has_builtin works in all modes, not just when ASTContext is around. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73319 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-14move the various builtins stuff from libast to libbasic. ThisChris Lattner
fixes a layering violation in lib/Basic/Targets.cpp. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73318 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-14prune #includes, Builtins.h/cpp no longer depends on libast.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73317 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-14move GetBuiltinType from Builtin::Context to ASTContext.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73316 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-14change ParseStatementOrDeclaration to emit the 'missing ;' withChris Lattner
ExpectAndConsume instead of custom diag logic. This gets us an insertion hint and positions the ; at the end of the line instead of on the next token. Before: t.c:5:1: error: expected ';' after return statement } ^ after: t.c:4:11: error: expected ';' after return statement return 4 ^ ; git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73315 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-14improve localizability by not passing english phrases into Chris Lattner
diagnostics in some cases. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73314 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-13Simplify mangleFunctionDecl by unnesting a crazy condition. This fixesChris Lattner
the check for extern "c" system headers, which should prevent functiondecls from being mangled. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73311 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-13add a handy predicate.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73310 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-13Fix the calling convention for structs/unions containing SSE vectors on Eli Friedman
x86-32. This is slightly messy, but I think it's consistent with gcc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73306 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-13declare an 'operator delete' to match operator new, this avoids many manyChris Lattner
warnings when building with VC++, patch by AlisdairM! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73305 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-13fix typoChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73304 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-13Don't include system headers when overriding triple.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73301 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-13Force Obj-C runtime version for this testDaniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73300 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-13Switch to the new test runner.Daniel Dunbar
- TestRunner.sh still needs to be moved over. - Please let me know if you find problems / missing features. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73298 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-13Have CheckClassTemplatePartialSpecializationArgs take a ↵Anders Carlsson
TemplateArgumentListBuilder. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73297 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-13a couple minor tweaksChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73296 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-13Allow initializing a vector with a vector in addition to allowing a list Eli Friedman
of the elements. Issue reported on cfe-dev by Mattias Holm. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73292 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-13implement and document a new __has_feature and __has_builtin magic Chris Lattner
builtin preprocessor macro. This appears to work with two caveats: 1) builtins are registered in -E mode, and 2) target-specific builtins are unconditionally registered even if they aren't supported by the target (e.g. SSE4 builtin when only SSE1 is enabled). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73289 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-13Move a bunch of tests into temp.param, and write a few tests for paragraphs ↵Douglas Gregor
that hadn't been touched before git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73288 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-13Add some random C++ standard tests.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73287 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-13Add the structure for a C++ test suite that mimics the structure of the C++ ↵Douglas Gregor
standard git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73286 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-13Fix for PR4382: allow instantiating dependent nested name specifiers. Eli Friedman
I'm not completely sure this is the right way to fix this issue, but it seems reasonable, and it's consistent with the non-template code for this construct. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73285 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-13If a CXXRecordDecl is a class template, the 'this' type should be the ↵Anders Carlsson
injected class name type. Fixes pr4383. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73284 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-13More work on type parameter packs.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73281 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-13Stop tracking non-compound value for struct. It may be caused by imprecise castZhongxing Xu
logic. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73279 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-13Remove a bunch of unnecessary template argument deduction code that wasDouglas Gregor
obviously written by someone who didn't read C++ [temp.class.spec]. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73276 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-13Move template type argument checking out into a separate function. No ↵Anders Carlsson
functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73275 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-13When some template parameters of a class template partialDouglas Gregor
specialization cannot be deduced, produce a warning noting that the affected class template partial specialization will never be used. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73274 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-13Fix PR4372, another case where non-prototyped functions can prevent Chris Lattner
always_inline from working. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73273 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-13Improvements to TemplateArgumentListBuilder to make it work better with ↵Anders Carlsson
parameter packs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73272 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-12A parameter pack must always come last in a class template.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73269 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-12No need to mark the parameter as invalid, just ignore the default argument.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73268 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-12Address more comments from Doug.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73267 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-12add the location of the ')' in a do/while statement to DoStmt.Chris Lattner
This fixes a source range problem reported by Olaf Krzikalla. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73266 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-12Address comments from Doug - Add a Sema::SemaRef.BuildBlockPointerType and ↵Anders Carlsson
use it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73264 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-12It looks like we've finished off matching of class template partial ↵Douglas Gregor
specializations; add comments and update the C++ status page git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73263 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-12Parameter packs can't have default arguments.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73262 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-12Keep track of whether a type parameter is actually a type parameter pack.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73261 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-12Finish implementing checking of class template partial specializationsDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73260 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-12Diagnose C++ [temp.class.spec]p9b3, where a class template partialDouglas Gregor
specialization's arguments are identical to the implicit template arguments of the primary template. Typically, this is meant to be a declaration/definition of the primary template, so we give that advice. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73259 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-12Diagnose the incorrect use of non-type template arguments for classDouglas Gregor
template partial specializations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73254 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-12Minor formatting tweak.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73251 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-12Fix a minor formatting mistake.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73250 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-12Some updates to the gcc extension sections of the users manual.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73249 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-12Parse support for C++0x type parameter packs.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73247 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-12Verify that the template parameters of a class template partialDouglas Gregor
specialization do not have default arguments (C++ [temp.class.spec]p10). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73245 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-12Update the C++ status to reflect improvements in template argument deduction ↵Douglas Gregor
and the handling of class template partial specializations git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73242 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-12Fix PR4365.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73240 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-12Improve template argument deduction to keep track of why templateDouglas Gregor
argument deduction failed. For example, given template<typename T> struct is_same<T, T> { ... }; template argument deduction will fail for is_same<int, float>, and now reports enough information Right now, we don't do anything with this extra information, but it can be used for informative diagnostics that say, e.g., "template argument deduction failed because T was deduced to 'int' in one context and 'float' in another". git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73237 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-12It's an error to use a function declared in a class definition as a default ↵Anders Carlsson
argument before the function has been declared. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73234 91177308-0d34-0410-b5e6-96231b3b80d8