- Jan 05, 2009
-
-
Sebastian Redl authored
llvm-svn: 61747
-
Sebastian Redl authored
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). llvm-svn: 61746
-
Daniel Dunbar authored
- 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... llvm-svn: 61739
-
Douglas Gregor authored
llvm-svn: 61737
-
Douglas Gregor authored
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. llvm-svn: 61735
-
Chris Lattner authored
their length. llvm-svn: 61734
-
Douglas Gregor authored
llvm-svn: 61700
-
Chris Lattner authored
isn't worth the complexity and the code already does a ton of lookahead. llvm-svn: 61671
-
Chris Lattner authored
llvm-svn: 61668
-
Chris Lattner authored
early exit for C and avoid template lookup for C. llvm-svn: 61667
-
Chris Lattner authored
not in backtracking mode. This was just using the wrong predicate. llvm-svn: 61666
-
Anders Carlsson authored
llvm-svn: 61663
-
Chris Lattner authored
only be called when they might be needed now, so make them assert that their current token is :: or identifier. llvm-svn: 61662
-
Anders Carlsson authored
llvm-svn: 61661
-
Chris Lattner authored
llvm-svn: 61660
-
Chris Lattner authored
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. llvm-svn: 61659
-
Chris Lattner authored
applicable cases in ParseDeclarationSpecifiers. llvm-svn: 61657
-
Chris Lattner authored
that isn't doing what is desired. It was annotating the current token not the 'next' token. This code should be fixed. llvm-svn: 61656
-
Chris Lattner authored
llvm-svn: 61654
-
Chris Lattner authored
can interact with. llvm-svn: 61652
-
Chris Lattner authored
down into the two cases that it can possibly affect. This avoids calls to it that obviously can't do anything. llvm-svn: 61651
-
Chris Lattner authored
sure to pass it down. This makes the code a bit gross, I will clean it up in subsequent commits. llvm-svn: 61650
-
- Jan 04, 2009
-
-
Chris Lattner authored
ParseCastExpression into the switch. This gets it out of the hot path through ParseCastExpression for all the non-identifier and non-:: tokens. llvm-svn: 61643
-
Chris Lattner authored
llvm-svn: 61642
-
Chris Lattner authored
llvm-svn: 61641
-
Chris Lattner authored
llvm-svn: 61638
-
Chris Lattner authored
llvm-svn: 61637
-
Anders Carlsson authored
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. llvm-svn: 61621
-
- Dec 31, 2008
-
-
Bill Wendling authored
llvm-svn: 61534
-
Anders Carlsson authored
Perform default function/array conversion for input arguments to inline asm statements if the input expr can be a memory operand llvm-svn: 61515
-
- Dec 30, 2008
-
-
Douglas Gregor authored
llvm-svn: 61486
-
- Dec 29, 2008
-
-
Fariborz Jahanian authored
llvm-svn: 61476
-
- Dec 28, 2008
-
-
Sebastian Redl authored
llvm-svn: 61457
-
Sebastian Redl authored
llvm-svn: 61456
-
Sebastian Redl authored
llvm-svn: 61455
-
Sebastian Redl authored
Examples: int; typedef int; llvm-svn: 61454
-
Sebastian Redl authored
llvm-svn: 61453
-
Nuno Lopes authored
llvm-svn: 61452
-
- Dec 27, 2008
-
-
Anders Carlsson authored
llvm-svn: 61446
-
- Dec 26, 2008
-
-
Anders Carlsson authored
llvm-svn: 61445
-