]>
granicus.if.org Git - clang/log
Douglas Gregor [Fri, 20 Mar 2009 20:21:37 +0000 (20:21 +0000)]
Some minor tweaks and additional tests for rvalue references
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67397
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 20 Mar 2009 20:16:10 +0000 (20:16 +0000)]
rename the <predefines> buffer to <built-in> to solve PR3849.
Add a #include directive around the command line buffer so that
diagnostics generated from -include directives get diagnostics
like:
In file included from <built-in>:98:
In file included from <command line>:3:
./t.h:2:1: warning: type specifier missing, defaults to 'int'
b;
^
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67396
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 20 Mar 2009 20:10:45 +0000 (20:10 +0000)]
GRExprEngine:
- Conjure symbols at '--' and '++' unary operations
- Add utility method SVal::GetConjuredSymbolVal() and constify some arguments
along the way.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67395
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 20 Mar 2009 19:57:37 +0000 (19:57 +0000)]
Remove unneeded radar reference.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67394
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 20 Mar 2009 19:38:56 +0000 (19:38 +0000)]
Driver: Switch to using -include-pth.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67393
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 20 Mar 2009 19:34:03 +0000 (19:34 +0000)]
Update test case.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67392
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Fri, 20 Mar 2009 19:18:21 +0000 (19:18 +0000)]
More super dot-syntax property implementation
when there is actually a property declaration
used in the dot-syntax.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67391
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 20 Mar 2009 18:35:45 +0000 (18:35 +0000)]
Fix <rdar://problem/
6703892 > by not warning about self-comparisons of enum
constants.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67390
91177308 -0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Fri, 20 Mar 2009 18:24:39 +0000 (18:24 +0000)]
Fix ivar's size encoding.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67389
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 20 Mar 2009 18:21:51 +0000 (18:21 +0000)]
Driver: Parse Darwin version out of target triple.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67388
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 20 Mar 2009 17:56:12 +0000 (17:56 +0000)]
Add test case for '-include-pth'.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67386
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 20 Mar 2009 17:54:25 +0000 (17:54 +0000)]
PTHManager::Create() now creates a PTHManager even if the PTH file contains no
cached tokens. This is for use with -include-pth.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67385
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 20 Mar 2009 17:34:15 +0000 (17:34 +0000)]
retain/release checker: Tracking autorelease counts for objects. We're still not
completely there with accurately modeling autorelease pools.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67384
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 20 Mar 2009 17:33:33 +0000 (17:33 +0000)]
Allow profiling of "invalid" Symbols.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67383
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Fri, 20 Mar 2009 17:22:23 +0000 (17:22 +0000)]
Implement ir gen. for setter/getter applied to 'super'
in a property dot-syntax notation.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67382
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 20 Mar 2009 16:28:22 +0000 (16:28 +0000)]
add tests for the various .S bugs I fixed on wednesday.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67381
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 20 Mar 2009 16:16:49 +0000 (16:16 +0000)]
rename this test from .S to .c so that it gets run.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67380
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 20 Mar 2009 16:06:39 +0000 (16:06 +0000)]
Driver: Add and use darwin::Assemble tool.
- Based on patch from Pieter de Bie; thanks!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67379
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 20 Mar 2009 16:06:38 +0000 (16:06 +0000)]
refactor some code, fixing a problem discovered by the dragonfly bsd people, where
clang was defining "i386" even when in non-gnu mode.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67378
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 20 Mar 2009 15:59:01 +0000 (15:59 +0000)]
Driver: Add two option overload for AddAllArgValues.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67377
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 20 Mar 2009 15:55:34 +0000 (15:55 +0000)]
pass langoptions around.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67376
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 20 Mar 2009 15:52:06 +0000 (15:52 +0000)]
pass LangOptions into TargetInfo::getTargetDefines, so that targets
can have language-specific defines.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67375
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 20 Mar 2009 15:44:26 +0000 (15:44 +0000)]
add a new LangOptions::GNUMode bit to distinguish between GNU99 and C99 etc.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67374
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 20 Mar 2009 06:14:23 +0000 (06:14 +0000)]
Driver: Add Arg::getAsString and use when dumping arguments to
diagnostics.
- This ensures that the whole argument and values are printed,
instead of just the option name.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67366
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 20 Mar 2009 05:23:53 +0000 (05:23 +0000)]
strictly evaluate SVN_REVISION so that svnversion is run once instead of 4 times.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67365
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 20 Mar 2009 04:37:21 +0000 (04:37 +0000)]
Driver: Implement -print-search-dirs.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67362
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 20 Mar 2009 04:36:45 +0000 (04:36 +0000)]
Driver: Unbreak ToolChain::get{File,Program}Paths (which should return
reference, not copy).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67361
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 20 Mar 2009 00:57:52 +0000 (00:57 +0000)]
Driver: Sketch Darwin tool chains.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67356
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 20 Mar 2009 00:52:38 +0000 (00:52 +0000)]
Driver: Add darwin::Lipo tool.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67355
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 20 Mar 2009 00:40:03 +0000 (00:40 +0000)]
Preserve ordering between -include and -include-pth.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67354
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Fri, 20 Mar 2009 00:32:56 +0000 (00:32 +0000)]
Allow flexible array initializers that are not surrounded by
braces. We now build the appropriate fully-structured initializer list
for such things. Per PR3618, verified that we're getting the right
code generation.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67353
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 20 Mar 2009 00:26:38 +0000 (00:26 +0000)]
Implement "-include-pth" in low-level driver. This allows a PTH file to be used
similar to a regular file passed to "-include". When -include-pth is used, the
low-level driver queries the PTH file for the name of the original source file
that generated the PTH file and implicitly adds a '#include' for that file in
the Predefines buffer.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67352
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Fri, 20 Mar 2009 00:24:49 +0000 (00:24 +0000)]
Add accessor Preprocessor::getPTHManager().
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67351
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 20 Mar 2009 00:20:03 +0000 (00:20 +0000)]
Driver: Move tool chain implementations into ToolChains.cpp.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67350
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Fri, 20 Mar 2009 00:11:04 +0000 (00:11 +0000)]
Driver: Temporary hack to allow -ccc-print-bindings to work (for
testing) even with -pipe on.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67348
91177308 -0d34-0410-b5e6-
96231b3b80d8
Sebastian Redl [Thu, 19 Mar 2009 23:18:26 +0000 (23:18 +0000)]
Bindir and Win32 builds work, so switch to .inc files. Leave the .def files in the tree for a day or so longer.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67346
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 19 Mar 2009 22:19:30 +0000 (22:19 +0000)]
Add PTHManager::getOriginalSourceFile(), a method that returns the name of the
original source file (if any) that was used to generate the PTH cache.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67343
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 19 Mar 2009 22:10:38 +0000 (22:10 +0000)]
Store the name of the original file used to generate the PTH file in the PTH
file itself.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67340
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 19 Mar 2009 22:03:42 +0000 (22:03 +0000)]
wording.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67337
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Thu, 19 Mar 2009 22:01:50 +0000 (22:01 +0000)]
Variables marked as "extern" can actually have internal linkage if
there is a previous declaration marked "static". This fixes PR3645.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67336
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 19 Mar 2009 19:50:58 +0000 (19:50 +0000)]
Add test cases for PR 3820.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67327
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 19 Mar 2009 19:02:20 +0000 (19:02 +0000)]
Per Daniel's suggestion, remove default case from switch statement to make
uncaught language cases a compile warning instead of a runtime error.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67325
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 19 Mar 2009 18:58:22 +0000 (18:58 +0000)]
add link to new page
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67324
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 19 Mar 2009 18:57:33 +0000 (18:57 +0000)]
link to diags page.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67323
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 19 Mar 2009 18:56:04 +0000 (18:56 +0000)]
move most of the diags info out to its own file.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67321
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Thu, 19 Mar 2009 18:55:06 +0000 (18:55 +0000)]
Allow notes to be printed following a fatal error, then suppress any
diagnostics following those notes.
Make exceeding the template instantiation depth a fatal error.
Thanks to Daniel for pointing out the problem!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67320
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 19 Mar 2009 18:52:17 +0000 (18:52 +0000)]
split diagnostics examples out to its own file.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67318
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Thu, 19 Mar 2009 18:33:54 +0000 (18:33 +0000)]
Add a clarifying comment about HasPrototype's computation
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67316
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 19 Mar 2009 18:21:42 +0000 (18:21 +0000)]
Support langkind_cxx_pch when determining the language dialect.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67315
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Thu, 19 Mar 2009 18:15:34 +0000 (18:15 +0000)]
When looking for property name (or getter method) in a
dot-syntax expression after earching the list of protocols
in the qualified-id, must keep searching the protocol list
of each of the protocols in the list.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67314
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Thu, 19 Mar 2009 18:14:46 +0000 (18:14 +0000)]
If a function is declared as, e.g.,
F f;
where F is a typedef of a function type, then the function "f" has a
prototype. This is a slight tweak to Chris's suggested fix in
PR3817. Fixes PR3817 and PR3840.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67313
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 19 Mar 2009 17:36:04 +0000 (17:36 +0000)]
Driver/clang: -mattr strings were not comma separated.
- Apologies for commits w/o test cases; they are coming.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67310
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Thu, 19 Mar 2009 17:26:29 +0000 (17:26 +0000)]
Introduce a new expression type, UnresolvedDeclRefExpr, that describes
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.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67308
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 19 Mar 2009 08:27:24 +0000 (08:27 +0000)]
IRgen support for alias of global variable.
- PR3818.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67297
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 19 Mar 2009 08:03:45 +0000 (08:03 +0000)]
Driver: Compilation::Execute wasn't returning result code correctly.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67296
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 19 Mar 2009 08:01:45 +0000 (08:01 +0000)]
Driver: Executing piped jobs with a single command is easy.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67295
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 19 Mar 2009 07:57:08 +0000 (07:57 +0000)]
Driver: Claim unused input arguments when emitting "input file unused"
diagnostic (to suppress more generic unused warning).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67294
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 19 Mar 2009 07:55:12 +0000 (07:55 +0000)]
Driver: Claim -arch options when pipelining, and claim arguments that
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.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67293
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 19 Mar 2009 07:29:38 +0000 (07:29 +0000)]
Driver: Handle "linker input" arguments.
- Make InputInfo a variant of filename, pipe, input argument,
nothing.
- Leave a FIXME in InputInfo that this should be revisited.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67292
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Thu, 19 Mar 2009 07:22:40 +0000 (07:22 +0000)]
Driver: Add Arg::renderAsInput; this is a messy area and something I
was hoping to clean up in the rewrite, but I don't see it yet.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67291
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 19 Mar 2009 07:06:44 +0000 (07:06 +0000)]
add a note
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67290
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 19 Mar 2009 06:52:51 +0000 (06:52 +0000)]
update our bragging about diagnostics. :)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67289
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 19 Mar 2009 04:52:30 +0000 (04:52 +0000)]
add NestedNameSpecifier.h/cpp to the xcode project file for browsing.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67285
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Thu, 19 Mar 2009 04:25:59 +0000 (04:25 +0000)]
Print the context of tag types as part of pretty-printing, e.g.,
struct N::M::foo
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67284
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Thu, 19 Mar 2009 03:51:16 +0000 (03:51 +0000)]
Generalize printing of nested-name-specifier sequences for use in both
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.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67283
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 19 Mar 2009 01:51:49 +0000 (01:51 +0000)]
Update checker build
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67279
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 19 Mar 2009 00:42:56 +0000 (00:42 +0000)]
Plist diagnostics: distinguish between regular and extended messages for "events".
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67269
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Thu, 19 Mar 2009 00:39:20 +0000 (00:39 +0000)]
Extend the use of QualifiedNameType to the creation of class template
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.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67268
91177308 -0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 19 Mar 2009 00:23:53 +0000 (00:23 +0000)]
Encode ivar access control info.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67267
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 19 Mar 2009 00:20:07 +0000 (00:20 +0000)]
Update checker build.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67266
91177308 -0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Thu, 19 Mar 2009 00:18:19 +0000 (00:18 +0000)]
Introduce a representation for types that we referred to via a
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.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67265
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 18 Mar 2009 23:49:26 +0000 (23:49 +0000)]
Fix PR 3836 by eagerly assuming symbolic constraints returned by unary '!'.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67260
91177308 -0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Wed, 18 Mar 2009 23:47:39 +0000 (23:47 +0000)]
Use the instantiated expressions to build the ConditionalOperator. This addresses the second part of review feedback.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67259
91177308 -0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Wed, 18 Mar 2009 23:44:22 +0000 (23:44 +0000)]
Add a sugared version of ASTOwningResult::take,
that does a downcast. It is named takeAs<T>().
The plain-pointer version is also added, but
that side seems to be seriously bitrotten.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67258
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 18 Mar 2009 23:39:35 +0000 (23:39 +0000)]
Driver: Fix bug in translating -O to clang, add clang-translation test
case.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67257
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 18 Mar 2009 23:34:15 +0000 (23:34 +0000)]
Driver: Resolve program path for "cp" (used as part of transparent gcc
PCH support).
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67256
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 18 Mar 2009 23:18:19 +0000 (23:18 +0000)]
Driver: Forcibly disable pipe support until we can execute them, the
driver is functional without them.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67254
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 18 Mar 2009 23:08:52 +0000 (23:08 +0000)]
Driver: Delete the temporary files llvm::sys::Path::makeUnique
sometimes leaves around.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67253
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Wed, 18 Mar 2009 22:53:10 +0000 (22:53 +0000)]
Make -j8 safe.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67252
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 18 Mar 2009 22:49:41 +0000 (22:49 +0000)]
Add simple test case to make sure driver can generate executables.
- Hopefully Chris can pardon one executable test.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67251
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 18 Mar 2009 22:44:24 +0000 (22:44 +0000)]
Driver: Execute jobs; no pipe support yet.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67250
91177308 -0d34-0410-b5e6-
96231b3b80d8
Fariborz Jahanian [Wed, 18 Mar 2009 22:33:24 +0000 (22:33 +0000)]
objc: Implemented variables declared in class interface
whose sema decl is at the translation unit.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67249
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 18 Mar 2009 22:16:03 +0000 (22:16 +0000)]
Driver: Cleanup temporary/result files.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67248
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 18 Mar 2009 22:10:22 +0000 (22:10 +0000)]
Fix crash reported in <rdar://problem/
6695527 >. We now have
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.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67245
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 18 Mar 2009 21:34:08 +0000 (21:34 +0000)]
Driver: Lookup program names using llvm::sys::Program::FindProgramByName
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.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67243
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Wed, 18 Mar 2009 21:19:11 +0000 (21:19 +0000)]
The eventual name of this will be clang, might as well start now.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67241
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 18 Mar 2009 21:17:39 +0000 (21:17 +0000)]
Driver: Update test case.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67240
91177308 -0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Wed, 18 Mar 2009 21:13:53 +0000 (21:13 +0000)]
Add stub TableGen file for diagnostic options.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67238
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 18 Mar 2009 21:10:12 +0000 (21:10 +0000)]
silence some errors that should not apply to .S files on code like:
''
'
'
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67237
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 18 Mar 2009 21:00:25 +0000 (21:00 +0000)]
when preprocessing a .S file, unknown directives should just be passed through,
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
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67236
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 18 Mar 2009 20:58:27 +0000 (20:58 +0000)]
properly form a full token for # before calling HandleDirective.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67235
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 18 Mar 2009 20:41:10 +0000 (20:41 +0000)]
This is not considered a preprocessor directive in .S files:
# 4
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67233
91177308 -0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 18 Mar 2009 20:31:57 +0000 (20:31 +0000)]
constructs like:
#define Y X ## .
Y
are ok in .S files.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67231
91177308 -0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Wed, 18 Mar 2009 20:26:44 +0000 (20:26 +0000)]
added type dependent testcase
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67230
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 18 Mar 2009 20:26:19 +0000 (20:26 +0000)]
Driver: Support ToolChain specific path lists to search for files and
programs.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67229
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 18 Mar 2009 20:25:53 +0000 (20:25 +0000)]
Driver: Get executable path using llvm::sys::Path::GetMainExecutable.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67228
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Wed, 18 Mar 2009 20:25:18 +0000 (20:25 +0000)]
Add version information to ISO style test results.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67227
91177308 -0d34-0410-b5e6-
96231b3b80d8
Gabor Greif [Wed, 18 Mar 2009 20:12:58 +0000 (20:12 +0000)]
incorporate review comment (about the optimization when we have a non-typedependent expression)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67226
91177308 -0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Wed, 18 Mar 2009 20:12:50 +0000 (20:12 +0000)]
Move generated file to ObjDir.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67225
91177308 -0d34-0410-b5e6-
96231b3b80d8
Daniel Dunbar [Wed, 18 Mar 2009 19:51:01 +0000 (19:51 +0000)]
PR3835: Interaction with ABI structure passing can inhibit
readnone/readonly attributes.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67224
91177308 -0d34-0410-b5e6-
96231b3b80d8