- Jan 06, 2009
-
-
Douglas Gregor authored
information for declarations that were referenced via a qualified-id, e.g., N::C::value. We keep track of the location of the start of the nested-name-specifier. Note that the difference between QualifiedDeclRefExpr and DeclRefExpr does have an effect on the semantics of function calls in two ways: 1) The use of a qualified-id instead of an unqualified-id suppresses argument-dependent lookup 2) If the name refers to a virtual function, the qualified-id version will call the function determined statically while the unqualified-id version will call the function determined dynamically (by looking up the appropriate function in the vtable). Neither of these features is implemented yet, but we do print out qualified names for QualifiedDeclRefExprs as part of the AST printing. llvm-svn: 61789
-
Chris Lattner authored
shorter and more accurate. The type name might not be qualified. llvm-svn: 61788
-
Chris Lattner authored
llvm-svn: 61787
-
Chris Lattner authored
llvm-svn: 61786
-
Daniel Dunbar authored
InputArg and UnknownArg. - Every argument now always corresponds to some option, which simplifies other code. llvm-svn: 61783
-
Ted Kremenek authored
- 'Buffer' is now private and must be accessed via 'getBuffer()'. This paves the way for lazily mapping in source files on demand. - Added 'getSize()' (which gets the size of the content without necessarily accessing the MemBuffer) and 'getSizeBytesMapped()'. - Modifed SourceManager to use these new methods. This reduces the number of places that actually access the MemBuffer object for a file to those that actually look at the character data. These changes result in no performance change for -fsyntax-only on Cocoa.h. llvm-svn: 61782
-
Daniel Dunbar authored
llvm-svn: 61780
-
Chris Lattner authored
llvm-svn: 61770
-
Chris Lattner authored
avoid the version of Preprocessor::getSpelling that returns an std::string. llvm-svn: 61769
-
- Jan 05, 2009
-
-
Daniel Dunbar authored
Improve ext vector test case. llvm-svn: 61766
-
Daniel Dunbar authored
llvm-svn: 61764
-
Daniel Dunbar authored
llvm-svn: 61763
-
Daniel Dunbar authored
- I'm not sure this is appropriate, but it seems reasonable to be able to call getFloatingRank on anything which isFloatingType(). llvm-svn: 61758
-
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
-