- Jan 12, 2009
-
-
Daniel Dunbar authored
llvm-svn: 62101
-
- 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
-
- Dec 21, 2008
-
-
Douglas Gregor authored
which can refer to static data members, enumerators, and member functions as well as to non-static data members. Implement correct lvalue computation for member references in C++. Compute the result type of non-static data members of reference type properly. llvm-svn: 61294
-
- Dec 12, 2008
-
-
Chris Lattner authored
output that GCC does. rdar://6440297 llvm-svn: 60922
-
- Dec 11, 2008
-
-
Douglas Gregor authored
and separates lexical name lookup from qualified name lookup. In particular: * Make DeclContext the central data structure for storing and looking up declarations within existing declarations, e.g., members of structs/unions/classes, enumerators in C++0x enums, members of C++ namespaces, and (later) members of Objective-C interfaces/implementations. DeclContext uses a lazily-constructed data structure optimized for fast lookup (array for small contexts, hash table for larger contexts). * Implement C++ qualified name lookup in terms of lookup into DeclContext. * Implement C++ unqualified name lookup in terms of qualified+unqualified name lookup (since unqualified lookup is not purely lexical in C++!) * Limit the use of the chains of declarations stored in IdentifierInfo to those names declared lexically. * Eliminate CXXFieldDecl, collapsing its behavior into FieldDecl. (FieldDecl is now a ScopedDecl). * Make RecordDecl into a DeclContext and eliminates its Members/NumMembers fields (since one can just iterate through the DeclContext to get the fields). llvm-svn: 60878
-
- Dec 01, 2008
-
-
Anders Carlsson authored
llvm-svn: 60323
-
- Nov 25, 2008
-
-
Anders Carlsson authored
llvm-svn: 60032
-
- Nov 22, 2008
-
-
Anders Carlsson authored
llvm-svn: 59857
-
- Nov 17, 2008
-
-
Eli Friedman authored
moment. llvm-svn: 59435
-
Anders Carlsson authored
llvm-svn: 59433
-
- Nov 16, 2008
-
-
Chris Lattner authored
llvm-svn: 59426
-
Anders Carlsson authored
llvm-svn: 59405
-
- Nov 15, 2008
-
-
Anders Carlsson authored
llvm-svn: 59375
-
Anders Carlsson authored
llvm-svn: 59371
-
- Nov 11, 2008
-
-
Sebastian Redl authored
Introduce a single AST node SizeOfAlignOfExpr for all sizeof and alignof expressions, both of values and types. llvm-svn: 59057
-
- Oct 27, 2008
-
-
Chris Lattner authored
t.c:1:13: error: cannot codegen this designators yet int a[10] = {2, 4, [8]=9, 10}; ^~~~~~~~~~~~~~~~~ llvm-svn: 58220
-
- Oct 21, 2008
-
-
Douglas Gregor authored
llvm-svn: 57909
-
- Oct 12, 2008
-
-
Chris Lattner authored
llvm-svn: 57392
-
- Oct 06, 2008
-
-
Chris Lattner authored
constant lvalue. Implement this in codegen by moving the code out of CGBuiltin into EmitConstantExpr. llvm-svn: 57163
-
Chris Lattner authored
constants for them, just use the constant evaluator to do the job. This also fixes crashes on 'unknown constant builtins'. llvm-svn: 57155
-
- Aug 25, 2008
-
-
Anders Carlsson authored
llvm-svn: 55299
-
- Aug 23, 2008
-
-
Argyrios Kyrtzidis authored
llvm-svn: 55249
-
- Aug 19, 2008
-
-
Argyrios Kyrtzidis authored
Add ExplicitCastExpr to replace the current CastExpr, and have ImplicitCastExpr and ExplicitCastExpr derive from a common base class (CastExpr): Expr -> CastExpr -> ExplicitCastExpr -> ImplicitCastExpr llvm-svn: 54955
-
- Aug 16, 2008
-
-
Daniel Dunbar authored
llvm-svn: 54837
-
Daniel Dunbar authored
- We are beyond the point where this shows up often and when it does generating miscompiled files is bad. llvm-svn: 54836
-
- Aug 14, 2008
-
-
Daniel Dunbar authored
- Returns addr of constant for argument + '\0'. - I couldn't think of a better name. - Move appropriate users of GetAddrOfConstantString to this. Rename getStringForStringLiteral to GetStringForStringLiteral. Add GetAddrOfConstantStringFromLiteral - This combines GetAddrOfConstantString and GetStringForStringLiteral. This method can be, but is not yet, more efficient. Change GetAddrOfConstantString to not add terminating '\0' - <rdar://problem/6140956> llvm-svn: 54768
-
- Aug 13, 2008
-
-
Daniel Dunbar authored
ObjCProtocolDecl directly. Implement CodeGen support for forward protocol decls (no-ops are so nice to implement). Also moved CGObjCRuntime.h out of CodeGenModule.h llvm-svn: 54709
-
- Aug 12, 2008
-
-
Daniel Dunbar authored
Changed CGObjCRuntime::GenerateConstantString interface to take std::string instead of char* and size. Change ObjC functions which call on GenerateConstantString to bitcast result to appropriate type. llvm-svn: 54659
-
- Aug 11, 2008
-
-
Daniel Dunbar authored
- Changed CodeGenModule::getObjCRuntime to return reference. - Added CodeGenModule::hasObjCRuntime predicate. llvm-svn: 54645
-
Daniel Dunbar authored
- Remove internal uses of AST.h llvm-svn: 54628
-
- Aug 10, 2008
-
-
Daniel Dunbar authored
temporarily, I assumed GetAddrForConstantString literal was being used consistently but it doesn't look like it is. Factored out a CodeGenModule::getStringForStringLiteral which handles extracting a std::string for the bytes of a StringLiteral, padded to match the type. Update EmitLValue to use getStringForStringLiteral, this was previously not padding strings correctly. Good thing we only emit strings in 4 different places! llvm-svn: 54621
-
Daniel Dunbar authored
length element. Fix some 80-col violations. llvm-svn: 54610
-
- Aug 04, 2008
-
-
Chris Lattner authored
Finally fix PR2189. This makes a fairly invasive but important change to move getAsArrayType into ASTContext instead of being a method on type. This is required because getAsArrayType(const AT), where AT is a typedef for "int[10]" needs to return ArrayType(const int, 10). Fixing this greatly simplifies getArrayDecayedType, which is a good sign. llvm-svn: 54317
-
- Jul 30, 2008
-
-
Daniel Dunbar authored
- No (intended) functionality change. - Primary purpose is to clearly separate (lazy) construction of globals that are a forward declaration or tentative definition from those that are the final definition. - Lazy construction is now encapsulated in GetAddrOf{Function,GlobalVar} while final definitions are constructed in EmitGlobal{Function,Var}Definition. - External interface for dealing with globals is now limited to EmitGlobal and GetAddrOf{Function,GlobalVar}. - Also updated helper functions dealing with statics, annotations, and ctors to be private. llvm-svn: 54179
-
- Jul 27, 2008
-
-
Chris Lattner authored
llvm-svn: 54108
-
Chris Lattner authored
llvm-svn: 54107
-
- Jul 17, 2008
-
-
Daniel Dunbar authored
<rdar://problem/6078606> llvm-svn: 53737
-
- Jun 21, 2008
-
-
Chris Lattner authored
"this patch adds code generation hooks for Objective-C constant strings. It also modifies Sema so that Objective-C constant strings are treated as untyped objects if the interface for the constant string class can not be found. This is consistent with Apple GCC. I thought it was consistent with GNU GCC, since this was causing failures when trying to compile GNUstep with (GNU) GCC, but it appears that this is not the case when attempting to produce a simple test case to demonstrate it. Possibly there is a way of making the error go away, but I haven't found out what it is yet." Patch by David Chisnall! llvm-svn: 52599
-
- Jun 07, 2008
-
-
Eli Friedman authored
reported on cfe-dev by Cédric Venet. Note that I seriously doubt that this perticular construct is useful, though: it's a pointer in an alternate address space pointing into unqualified address space. llvm-svn: 52076
-
- Jun 06, 2008
-
-
Eli Friedman authored
PR2419. llvm-svn: 52060
-