summaryrefslogtreecommitdiffstats
path: root/clang
Commit message (Collapse)AuthorAgeFilesLines
...
* Introduce a new expression type, UnresolvedDeclRefExpr, that describesDouglas Gregor2009-03-1914-14/+295
| | | | | | | | | | | | | | | | | | | | | | | | dependent qualified-ids such as Fibonacci<N - 1>::value where N is a template parameter. These references are "unresolved" because the name is dependent and, therefore, cannot be resolved to a declaration node (as we would do for a DeclRefExpr or QualifiedDeclRefExpr). UnresolvedDeclRefExprs instantiate to DeclRefExprs, QualifiedDeclRefExprs, etc. Also, be a bit more careful about keeping only a single set of specializations for a class template, and instantiating from the definition of that template rather than a previous declaration. In general, we need a better solution for this for all TagDecls, because it's too easy to accidentally look at a declaration that isn't the definition. We can now process a simple Fibonacci computation described as a template metaprogram. llvm-svn: 67308
* IRgen support for alias of global variable.Daniel Dunbar2009-03-193-12/+23
| | | | | | - PR3818. llvm-svn: 67297
* Driver: Compilation::Execute wasn't returning result code correctly.Daniel Dunbar2009-03-191-1/+1
| | | | llvm-svn: 67296
* Driver: Executing piped jobs with a single command is easy.Daniel Dunbar2009-03-192-23/+35
| | | | llvm-svn: 67295
* Driver: Claim unused input arguments when emitting "input file unused"Daniel Dunbar2009-03-191-0/+2
| | | | | | diagnostic (to suppress more generic unused warning). llvm-svn: 67294
* Driver: Claim -arch options when pipelining, and claim arguments thatDaniel Dunbar2009-03-192-2/+8
| | | | | | | | | | | are forwarded to GCC. - The later is unfortunate, as it prevents us from generally warning about anything interesting on platforms that use a generic toolchain. However, we can't do much better without significantly complicating things, and generally we should have proper tool chain definitions. llvm-svn: 67293
* Driver: Handle "linker input" arguments.Daniel Dunbar2009-03-193-31/+69
| | | | | | | | | - Make InputInfo a variant of filename, pipe, input argument, nothing. - Leave a FIXME in InputInfo that this should be revisited. llvm-svn: 67292
* Driver: Add Arg::renderAsInput; this is a messy area and something IDaniel Dunbar2009-03-193-2/+18
| | | | | | was hoping to clean up in the rewrite, but I don't see it yet. llvm-svn: 67291
* add a noteChris Lattner2009-03-191-0/+3
| | | | llvm-svn: 67290
* update our bragging about diagnostics. :)Chris Lattner2009-03-192-27/+182
| | | | llvm-svn: 67289
* add NestedNameSpecifier.h/cpp to the xcode project file for browsing.Chris Lattner2009-03-191-0/+6
| | | | llvm-svn: 67285
* Print the context of tag types as part of pretty-printing, e.g.,Douglas Gregor2009-03-197-13/+39
| | | | | | struct N::M::foo llvm-svn: 67284
* Generalize printing of nested-name-specifier sequences for use in bothDouglas Gregor2009-03-1910-55/+130
| | | | | | | | QualifiedNameType and QualifiedDeclRefExpr. We now keep track of the exact nested-name-specifier spelling for a QualifiedDeclRefExpr, and use that spelling when printing ASTs. This fixes PR3493. llvm-svn: 67283
* Update checker buildTed Kremenek2009-03-191-1/+1
| | | | llvm-svn: 67279
* Plist diagnostics: distinguish between regular and extended messages for ↵Ted Kremenek2009-03-191-0/+5
| | | | | | "events". llvm-svn: 67269
* Extend the use of QualifiedNameType to the creation of class templateDouglas Gregor2009-03-196-12/+47
| | | | | | | | | | | specialization names. This way, we keep track of sugared types like std::vector<Real> I believe we are now using QualifiedNameTypes everywhere we can. Next step: QualifiedDeclRefExprs. llvm-svn: 67268
* Encode ivar access control info.Devang Patel2009-03-191-2/+10
| | | | llvm-svn: 67267
* Update checker build.Ted Kremenek2009-03-191-1/+1
| | | | llvm-svn: 67266
* Introduce a representation for types that we referred to via aDouglas Gregor2009-03-1926-99/+566
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | qualified name, e.g., foo::x so that we retain the nested-name-specifier as written in the source code and can reproduce that qualified name when printing the types back (e.g., in diagnostics). This is PR3493, which won't be complete until finished the other tasks mentioned near the end of this commit. The parser's representation of nested-name-specifiers, CXXScopeSpec, is now a bit fatter, because it needs to contain the scopes that precede each '::' and keep track of whether the global scoping operator '::' was at the beginning. For example, we need to keep track of the leading '::', 'foo', and 'bar' in ::foo::bar::x The Action's CXXScopeTy * is no longer a DeclContext *. It's now the opaque version of the new NestedNameSpecifier, which contains a single component of a nested-name-specifier (either a DeclContext * or a Type *, bitmangled). The new sugar type QualifiedNameType composes a sequence of NestedNameSpecifiers with a representation of the type we're actually referring to. At present, we only build QualifiedNameType nodes within Sema::getTypeName. This will be extended to other type-constructing actions (e.g., ActOnClassTemplateId). Also on the way: QualifiedDeclRefExprs will also store a sequence of NestedNameSpecifiers, so that we can print out the property nested-name-specifier. I expect to also use this for handling dependent names like Fibonacci<I - 1>::value. llvm-svn: 67265
* Fix PR 3836 by eagerly assuming symbolic constraints returned by unary '!'.Ted Kremenek2009-03-182-2/+26
| | | | llvm-svn: 67260
* Use the instantiated expressions to build the ConditionalOperator. This ↵Gabor Greif2009-03-181-8/+4
| | | | | | addresses the second part of review feedback. llvm-svn: 67259
* Add a sugared version of ASTOwningResult::take,Gabor Greif2009-03-181-2/+14
| | | | | | | | that does a downcast. It is named takeAs<T>(). The plain-pointer version is also added, but that side seems to be seriously bitrotten. llvm-svn: 67258
* Driver: Fix bug in translating -O to clang, add clang-translation testDaniel Dunbar2009-03-182-1/+12
| | | | | | case. llvm-svn: 67257
* Driver: Resolve program path for "cp" (used as part of transparent gccDaniel Dunbar2009-03-181-1/+3
| | | | | | PCH support). llvm-svn: 67256
* Driver: Forcibly disable pipe support until we can execute them, theDaniel Dunbar2009-03-181-1/+13
| | | | | | driver is functional without them. llvm-svn: 67254
* Driver: Delete the temporary files llvm::sys::Path::makeUniqueDaniel Dunbar2009-03-181-0/+4
| | | | | | sometimes leaves around. llvm-svn: 67253
* Make -j8 safe.Mike Stump2009-03-181-1/+1
| | | | llvm-svn: 67252
* Add simple test case to make sure driver can generate executables.Daniel Dunbar2009-03-181-0/+14
| | | | | | - Hopefully Chris can pardon one executable test. llvm-svn: 67251
* Driver: Execute jobs; no pipe support yet.Daniel Dunbar2009-03-184-16/+68
| | | | llvm-svn: 67250
* objc: Implemented variables declared in class interface Fariborz Jahanian2009-03-187-11/+75
| | | | | | whose sema decl is at the translation unit. llvm-svn: 67249
* Driver: Cleanup temporary/result files.Daniel Dunbar2009-03-185-6/+68
| | | | llvm-svn: 67248
* Fix crash reported in <rdar://problem/6695527>. We now haveTed Kremenek2009-03-183-16/+25
| | | | | | | | | SVal::GetRValueSymbolVal do the checking if we can symbolicate a type instead of having BasicStoreManager do it (which wasn't always doing the check consistently). Having this check in SVal::GetRValueSymbolVal keeps the check in one centralized place. llvm-svn: 67245
* Driver: Lookup program names using llvm::sys::Program::FindProgramByName Daniel Dunbar2009-03-182-1/+9
| | | | | | | | | if our usual methods fail. This isn't necessary for running the tool, but improves the accuracy of logging output. Also, have GCC tools lookup gcc program path. llvm-svn: 67243
* The eventual name of this will be clang, might as well start now.Mike Stump2009-03-181-1/+1
| | | | llvm-svn: 67241
* Driver: Update test case.Daniel Dunbar2009-03-181-15/+15
| | | | llvm-svn: 67240
* Add stub TableGen file for diagnostic options.Ted Kremenek2009-03-182-0/+17
| | | | llvm-svn: 67238
* silence some errors that should not apply to .S files on code like:Chris Lattner2009-03-181-4/+4
| | | | | | | | '' ' ' llvm-svn: 67237
* when preprocessing a .S file, unknown directives should just be passed through,Chris Lattner2009-03-182-1/+19
| | | | | | | | | | | | | | and the token after the # should be expanded if it is not a valid directive. This allows us to transform things like: #define FOO BAR # FOO into # BAR, even though FOO is not normally expanded for directives. This should fix PR3833 llvm-svn: 67236
* properly form a full token for # before calling HandleDirective.Chris Lattner2009-03-181-6/+7
| | | | llvm-svn: 67235
* This is not considered a preprocessor directive in .S files:Chris Lattner2009-03-181-0/+2
| | | | | | # 4 llvm-svn: 67233
* constructs like:Chris Lattner2009-03-181-3/+4
| | | | | | | | | #define Y X ## . Y are ok in .S files. llvm-svn: 67231
* added type dependent testcaseGabor Greif2009-03-181-2/+19
| | | | llvm-svn: 67230
* Driver: Support ToolChain specific path lists to search for files andDaniel Dunbar2009-03-182-2/+44
| | | | | | programs. llvm-svn: 67229
* Driver: Get executable path using llvm::sys::Path::GetMainExecutable.Daniel Dunbar2009-03-181-5/+8
| | | | llvm-svn: 67228
* Add version information to ISO style test results.Mike Stump2009-03-181-1/+2
| | | | llvm-svn: 67227
* incorporate review comment (about the optimization when we have a ↵Gabor Greif2009-03-181-2/+18
| | | | | | non-typedependent expression) llvm-svn: 67226
* Move generated file to ObjDir.Mike Stump2009-03-181-4/+4
| | | | llvm-svn: 67225
* PR3835: Interaction with ABI structure passing can inhibitDaniel Dunbar2009-03-182-0/+27
| | | | | | readnone/readonly attributes. llvm-svn: 67224
* Driver: Construct temporary file names.Daniel Dunbar2009-03-184-5/+27
| | | | | | - This is still suboptimal, but should at least be workable. llvm-svn: 67223
* HTML rewriter: Don't replace tabs with spaces by default.Ted Kremenek2009-03-181-2/+2
| | | | llvm-svn: 67221
OpenPOWER on IntegriCloud