aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2009-01-06ccc: Introduce ArgList for keeping input argv & parsed Args together.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61780 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-05rename these tests to match the attribute.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61770 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-05Optimize stringification a bit to avoid std::string thrashing andChris Lattner
avoid the version of Preprocessor::getSpelling that returns an std::string. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61769 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-05Remainder is only valid on integer vector operands.Daniel Dunbar
Improve ext vector test case. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61766 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-05Back out code for handling VectorType's in getFloatingRank.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61764 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-05Use CheckVectorOperands when % is applied to a vector type.Daniel Dunbar
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61763 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-05Implement getFloatingRank() for extended vectors.Daniel Dunbar
- I'm not sure this is appropriate, but it seems reasonable to be able to call getFloatingRank on anything which isFloatingType(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61758 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-05Silence a GCC warningSebastian Redl
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61747 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-05PODness and Type TraitsSebastian Redl
Make C++ classes track the POD property (C++ [class]p4) Track the existence of a copy assignment operator. Implicitly declare the copy assignment operator if none is provided. Implement most of the parsing job for the G++ type traits extension. Fully implement the low-hanging fruit of the type traits: __is_pod: Whether a type is a POD. __is_class: Whether a type is a (non-union) class. __is_union: Whether a type is a union. __is_enum: Whether a type is an enum. __is_polymorphic: Whether a type is polymorphic (C++ [class.virtual]p1). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61746 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-05Add prototype ccc rewrite.Daniel Dunbar
- Entry point is tools/ccc/xcc until we are a functional replacement for ccc. This is highly experimental (FIXME/LOC ratio of 3.4%), quite crufty, and barely usable (and then only on my specific Darwin). However, many of the right ideas are present, and it already fixes a number of things gcc gets wrong. The major missing component is argument translation for tools (translating driver arguments into cc1/ld/as/etc. arguments). This is a large part of the driver functionality and will probably double the LOC, but my hope is that the current architecture is relatively stable. Documentation & motivation to follow soon... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61739 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-05Add forgotten test case for linkage specificationsDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61737 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-05Introduce support for "transparent" DeclContexts, which areDouglas Gregor
DeclContexts whose members are visible from enclosing DeclContexts up to (and including) the innermost enclosing non-transparent DeclContexts. Transparent DeclContexts unify the mechanism to be used for various language features, including C enumerations, anonymous unions, C++0x inline namespaces, and C++ linkage specifications. Please refer to the documentation in the Clang internals manual for more information. Only enumerations and linkage specifications currently use transparent DeclContexts. Still to do: use transparent DeclContexts to implement anonymous unions and GCC's anonymous structs extension, and, later, the C++0x features. We also need to tighten up the DeclContext/ScopedDecl link to ensure that every ScopedDecl is in a single DeclContext, which will ensure that we can then enforce ownership and reduce the memory footprint of DeclContext. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61735 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-05simplify Preprocessor::getSpelling now that identifiers carry aroundChris Lattner
their length. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61734 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-05Fix an uninitialized-variable warningDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61700 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-05remove optimization to avoid looking ahead for cases like ::foo. ThisChris Lattner
isn't worth the complexity and the code already does a ton of lookahead. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61671 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-05simplify some code.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61668 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-05Rearrange some code in TryAnnotateTypeOrScopeToken to make it Chris Lattner
early exit for C and avoid template lookup for C. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61667 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-05Fix a bug where we'd try to look beyond the current cached tokens whenChris Lattner
not in backtracking mode. This was just using the wrong predicate. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61666 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-05Pass '-undefined- to the linkerAnders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61663 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-05TryAnnotateTypeOrScopeToken and TryAnnotateCXXScopeToken can Chris Lattner
only be called when they might be needed now, so make them assert that their current token is :: or identifier. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61662 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-05Generate debug info for VLA typesAnders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61661 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-05add a testcaseChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61660 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-05ParseCXXSimpleTypeSpecifier can only be called on things that areChris Lattner
verified to be simple type specifiers, so there is no need for it to call TryAnnotateTypeOrScopeToken. Make MaybeParseCXXScopeSpecifier reject ::new and ::delete with a hard error now that it may never be transitively called in a context where these are legal. This allows me to start disentangling things more. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61659 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-05sink a call to TryAnnotateCXXScopeToken down into theChris Lattner
applicable cases in ParseDeclarationSpecifiers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61657 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-04Simplify some control flow and remove a call to TryAnnotateCXXScopeTokenChris Lattner
that isn't doing what is desired. It was annotating the current token not the 'next' token. This code should be fixed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61656 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-04code simplificationChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61654 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-04sink calls to TryAnnotateTypeOrScopeToken down into the only cases that they Chris Lattner
can interact with. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61652 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-04push the call in isCXXDeclarationSpecifier to TryAnnotateTypeOrScopeToken Chris Lattner
down into the two cases that it can possibly affect. This avoids calls to it that obviously can't do anything. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61651 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-04my previous patch caused sema to drop the global qualifier, makeChris Lattner
sure to pass it down. This makes the code a bit gross, I will clean it up in subsequent commits. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61650 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-04sink the call to TryAnnotateTypeOrScopeToken in Chris Lattner
ParseCastExpression into the switch. This gets it out of the hot path through ParseCastExpression for all the non-identifier and non-:: tokens. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61643 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-04use early exits to reduce nesting.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61642 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-04simplify control flow by removing a goto.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61641 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-04eliminate lookahead when parsing ::new / ::delete.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61638 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-04minor simplifications.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61637 91177308-0d34-0410-b5e6-96231b3b80d8
2009-01-04Fix the bug that would cause Python to crash at startup.Anders Carlsson
When emitting the static variables we need to make sure that the order is preserved. Fix this by making StaticDecls a std::list which has O(1) random removal. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61621 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-31Rename AddReadAttrs to FunctionAttrs. This is related to Duncan's patch r61525.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61534 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-31Perform default function/array conversion for input arguments to inline asm ↵Anders Carlsson
statements if the input expr can be a memory operand git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61515 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-30Parser support for C++ using directives, from Piotr RakDouglas Gregor
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61486 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-29Remove hasKind(). Use existing getKind().Fariborz Jahanian
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61476 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-28Fill in C++ status table for statements.Sebastian Redl
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61457 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-28Convert a two more statement actions to smart pointers.Sebastian Redl
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61456 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-28Fix a grep error that caused CodeGenObjC/encode-test.m to fail.Sebastian Redl
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61455 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-28Diagnose declarations that don't declare anything, and fix PR3020.Sebastian Redl
Examples: int; typedef int; git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61454 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-28Fix filename typo.Sebastian Redl
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61453 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-27add RUN lineNuno Lopes
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61452 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-27Add a MS specific intrinsic.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61446 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-26Eli noticed that I had forgotten some #defines. Add them.Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61445 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-26Add float.h header. Eli, please review :)Anders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61444 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-26Add __builtin_flt_roundsAnders Carlsson
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61443 91177308-0d34-0410-b5e6-96231b3b80d8
2008-12-26Add support for out-of-line definitions of conversion functions and member ↵Douglas Gregor
operators git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@61442 91177308-0d34-0410-b5e6-96231b3b80d8