]> granicus.if.org Git - clang/log
clang
15 years agoFix <rdar://problem/6243503> [sema] @throw; accepted outside catch block.
Steve Naroff [Wed, 11 Feb 2009 20:05:44 +0000 (20:05 +0000)]
Fix <rdar://problem/6243503> [sema] @throw; accepted outside catch block.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64318 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFinished semantic analysis of non-type template arguments, to check
Douglas Gregor [Wed, 11 Feb 2009 19:52:55 +0000 (19:52 +0000)]
Finished semantic analysis of non-type template arguments, to check
for non-external names whose address becomes the template
argument. This completes C++ [temp.arg.nontype]p1.

Note that our interpretation of C++ [temp.arg.nontype]p1b3 differs
from EDG's interpretation (we're stricter, and GCC agrees with
us). They're opening a core issue about the matter.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64317 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAvoid bogus warning.
Mike Stump [Wed, 11 Feb 2009 18:58:46 +0000 (18:58 +0000)]
Avoid bogus warning.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64313 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoReverted r64307. Moved hasSameType and hasSameUnqualifiedType from
Douglas Gregor [Wed, 11 Feb 2009 18:22:40 +0000 (18:22 +0000)]
Reverted r64307. Moved hasSameType and hasSameUnqualifiedType from
Sema to ASTContext.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64312 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAllow the use of default template arguments when forming a class
Douglas Gregor [Wed, 11 Feb 2009 18:16:40 +0000 (18:16 +0000)]
Allow the use of default template arguments when forming a class
template specialization (e.g., std::vector<int> would now be
well-formed, since it relies on a default argument for the Allocator
template parameter).

This is much less interesting than one might expect, since (1) we're
not actually using the default arguments for anything important, such
as naming an actual Decl, and (2) we'll often need to instantiate the
default arguments to check their well-formedness. The real fun will
come later.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64310 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix <rdar://problem/6206858> [sema] type check @throw statements.
Steve Naroff [Wed, 11 Feb 2009 17:45:08 +0000 (17:45 +0000)]
Fix <rdar://problem/6206858> [sema] type check @throw statements.

Added a FIXME to handle 'rethrow' check.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64308 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRename Sema::hasSameType to QualType::isSameAs
Douglas Gregor [Wed, 11 Feb 2009 16:47:37 +0000 (16:47 +0000)]
Rename Sema::hasSameType to QualType::isSameAs
Rename Sema::hasSameUnqualifiedType to QualType::isSameIgnoringQalifiers

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64307 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoSilence a warning about an unused variable in -Asserts builds
Douglas Gregor [Wed, 11 Feb 2009 16:17:49 +0000 (16:17 +0000)]
Silence a warning about an unused variable in -Asserts builds

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64306 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoImplement semantic checking for template arguments that correspond to
Douglas Gregor [Wed, 11 Feb 2009 16:16:59 +0000 (16:16 +0000)]
Implement semantic checking for template arguments that correspond to
pointer-to-member-data non-type template parameters. Also, get
consistent about what it means to returned a bool from
CheckTemplateArgument.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64305 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoPTH: Don't emit the PTH offset of the IdentifierInfo string data as that data is
Ted Kremenek [Wed, 11 Feb 2009 16:06:55 +0000 (16:06 +0000)]
PTH: Don't emit the PTH offset of the IdentifierInfo string data as that data is
referenced by other tables.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64304 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoUpdate checker build.
Ted Kremenek [Wed, 11 Feb 2009 07:50:23 +0000 (07:50 +0000)]
Update checker build.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64297 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix rdar://6518463, increment of a bool is always true, due to
Chris Lattner [Wed, 11 Feb 2009 07:40:06 +0000 (07:40 +0000)]
Fix rdar://6518463, increment of a bool is always true, due to
subtle and non-obvious promotion rules.  We already handle +=
and +1 correctly.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64296 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agofinish off codegen support for sub of pointer to functions,
Chris Lattner [Wed, 11 Feb 2009 07:21:43 +0000 (07:21 +0000)]
finish off codegen support for sub of pointer to functions,
finishing off rdar://6520707

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64295 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoPer PR 3187, disable the missing -dealloc check for classes that subclass SenTestCase.
Ted Kremenek [Wed, 11 Feb 2009 07:10:07 +0000 (07:10 +0000)]
Per PR 3187, disable the missing -dealloc check for classes that subclass SenTestCase.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64292 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd pmmintrin.h header.
Anders Carlsson [Wed, 11 Feb 2009 06:39:50 +0000 (06:39 +0000)]
Add pmmintrin.h header.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64291 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix some mistakes I made when I tried to decipher the Intel documentation of the...
Anders Carlsson [Wed, 11 Feb 2009 06:29:32 +0000 (06:29 +0000)]
Fix some mistakes I made when I tried to decipher the Intel documentation of the MXCSR register

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64290 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agotestcase for rdar://6096412 which already works.
Chris Lattner [Wed, 11 Feb 2009 06:22:30 +0000 (06:22 +0000)]
testcase for rdar://6096412 which already works.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64289 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoCHAR_BIT == 8
Douglas Gregor [Wed, 11 Feb 2009 04:02:22 +0000 (04:02 +0000)]
CHAR_BIT == 8

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64286 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd semantic checking for template arguments that correspond to
Douglas Gregor [Wed, 11 Feb 2009 01:18:59 +0000 (01:18 +0000)]
Add semantic checking for template arguments that correspond to
non-type template parameters that are references to functions or
pointers to member functions. Did a little bit of refactoring so that
these two cases, along with the handling of non-type template
parameters that are pointers to functions, are handled by the same
path.

Also, tweaked FixOverloadedFunctionReference to cope with member
function pointers. This is a necessary step for getting all of the fun
member pointer conversions working outside of template arguments, too.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64277 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoOne more tweak to account for gluing together llvm and clang into one.
Mike Stump [Wed, 11 Feb 2009 01:11:36 +0000 (01:11 +0000)]
One more tweak to account for gluing together llvm and clang into one.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64276 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoMore version experimentation.
Mike Stump [Wed, 11 Feb 2009 01:01:17 +0000 (01:01 +0000)]
More version experimentation.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64271 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoSemantic checking for template arguments that correspond to non-type
Douglas Gregor [Wed, 11 Feb 2009 00:44:29 +0000 (00:44 +0000)]
Semantic checking for template arguments that correspond to non-type
template parameters that have reference type. Effectively, we're doing
a very limited form of reference binding here.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64270 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRun a little experiment with version numbers.
Mike Stump [Wed, 11 Feb 2009 00:36:04 +0000 (00:36 +0000)]
Run a little experiment with version numbers.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64268 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd partial semantic checking of template arguments that are meant for
Douglas Gregor [Wed, 11 Feb 2009 00:19:33 +0000 (00:19 +0000)]
Add partial semantic checking of template arguments that are meant for
non-type template parameters of pointer-to-object and
pointer-to-function type. The most fun part of this is the use of
overload resolution to pick a function from the set of overloaded
functions that comes in as a template argument.

Also, fixed two minor bugs in this area:
  - We were allowing non-type template parameters of type pointer to
  void.
  - We weren't patching up an expression that refers to an overloaded
  function set via "&f" properly.

We're still not performing complete checking of the expression to be
sure that it is referring to an object or function with external
linkage (C++ [temp.arg.nontype]p1).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64266 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoBugReporter: Use llvm::raw_string_stream instead of std::ostringstream.
Ted Kremenek [Tue, 10 Feb 2009 23:56:07 +0000 (23:56 +0000)]
BugReporter: Use llvm::raw_string_stream instead of std::ostringstream.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64259 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd private extern to pretty printer(s).
Mike Stump [Tue, 10 Feb 2009 23:49:50 +0000 (23:49 +0000)]
Add private extern to pretty printer(s).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64258 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd another test case for the MissingDealloc checker.
Ted Kremenek [Tue, 10 Feb 2009 23:41:52 +0000 (23:41 +0000)]
Add another test case for the MissingDealloc checker.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64257 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd type-checking and implicit conversions for template parameters of
Douglas Gregor [Tue, 10 Feb 2009 23:36:10 +0000 (23:36 +0000)]
Add type-checking and implicit conversions for template parameters of
integral or enumeration type.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64256 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoHandle the case where EmitBlock might be called multiple times for the same block...
Anders Carlsson [Tue, 10 Feb 2009 22:50:24 +0000 (22:50 +0000)]
Handle the case where EmitBlock might be called multiple times for the same block. Fixes PR3536.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64252 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoThis patch is all it takes to pass all objc2's fast-enumeration
Fariborz Jahanian [Tue, 10 Feb 2009 22:46:12 +0000 (22:46 +0000)]
This patch is all it takes to pass all objc2's fast-enumeration
tests in the dejagnu test suite in the nonfragile abi mode.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64251 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoPTH generation: Discard tokens that appear after and on the same line as '#endif'.
Ted Kremenek [Tue, 10 Feb 2009 22:43:16 +0000 (22:43 +0000)]
PTH generation: Discard tokens that appear after and on the same line as '#endif'.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64250 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoBump PTH version.
Ted Kremenek [Tue, 10 Feb 2009 22:37:57 +0000 (22:37 +0000)]
Bump PTH version.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64249 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agomake -dM emit macros in a deterministic (sorted) order instead of
Chris Lattner [Tue, 10 Feb 2009 22:28:19 +0000 (22:28 +0000)]
make -dM emit macros in a deterministic (sorted) order instead of
random hash table order, I don't like non-determinstic output.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64248 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoPTH generation: Don't call 'EmitToken' in the loop condition. This is preparing...
Ted Kremenek [Tue, 10 Feb 2009 22:27:09 +0000 (22:27 +0000)]
PTH generation: Don't call 'EmitToken' in the loop condition.  This is preparing for other changes within the loop.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64247 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoPTH: Replace ad hoc 'file name' -> 'PTH data' lookup table in the PTH file with an...
Ted Kremenek [Tue, 10 Feb 2009 22:16:22 +0000 (22:16 +0000)]
PTH: Replace ad hoc 'file name' -> 'PTH data' lookup table in the PTH file with an on-disk chained hash table.  This data structure is implemented using templates, and will be used to replace similar data structures.  This change leads to no visibile performance impact on Cocoa.h, but now we only pay a price for the table on order with the number of files accessed and not the number in the PTH file.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64245 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agouse efficient form of getSpelling, this speeds up -dM by 16%.
Chris Lattner [Tue, 10 Feb 2009 22:16:03 +0000 (22:16 +0000)]
use efficient form of getSpelling, this speeds up -dM by 16%.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64244 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoGNU allows structs with flexible array members to be placed inside
Douglas Gregor [Tue, 10 Feb 2009 21:49:46 +0000 (21:49 +0000)]
GNU allows structs with flexible array members to be placed inside
arrays and other structs/unions as an extension. Downgrade our error
to a warning. Fixes PR3540.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64239 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoPull CodeGenFunction::EmitVAArg into target specific ABIInfo classes.
Daniel Dunbar [Tue, 10 Feb 2009 21:44:36 +0000 (21:44 +0000)]
Pull CodeGenFunction::EmitVAArg into target specific ABIInfo classes.
 - Missed this file.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64238 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoPull CodeGenFunction::EmitVAArg into target specific ABIInfo classes.
Daniel Dunbar [Tue, 10 Feb 2009 20:44:09 +0000 (20:44 +0000)]
Pull CodeGenFunction::EmitVAArg into target specific ABIInfo classes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64235 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoGenerate ir for ivar offset. This will pass
Fariborz Jahanian [Tue, 10 Feb 2009 20:21:06 +0000 (20:21 +0000)]
Generate ir for ivar offset. This will pass
type-nsobject-attribute.m in the dejagnu test suite
in the nonfragile abi mode.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64233 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFixup -ast-print so that:
Mike Stump [Tue, 10 Feb 2009 20:16:46 +0000 (20:16 +0000)]
Fixup -ast-print so that:

  We handle indentation of decls better.
  We Indent extern "C" { } stuff better.
  We print out structure contents more often.
  We handle pass indentation information into the statement printer, so that
  nested things come out more indented.
  We print out FieldDecls.
  We print out Vars.
  We print out namespaces.
  We indent functions better.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64232 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRefactor FieldDecls to be ValueDecls instead of NamedDecls.
Mike Stump [Tue, 10 Feb 2009 20:06:48 +0000 (20:06 +0000)]
Refactor FieldDecls to be ValueDecls instead of NamedDecls.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64231 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix a problem with bogus template shadowing warnings
Douglas Gregor [Tue, 10 Feb 2009 19:52:54 +0000 (19:52 +0000)]
Fix a problem with bogus template shadowing warnings

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64230 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoImplement parsing, semantic analysis and ASTs for default template
Douglas Gregor [Tue, 10 Feb 2009 19:49:53 +0000 (19:49 +0000)]
Implement parsing, semantic analysis and ASTs for default template
arguments. This commit covers checking and merging default template
arguments from previous declarations, but it does not cover the actual
use of default template arguments when naming class template
specializations.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64229 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoSome refactoring of Ivar offset code gen.
Fariborz Jahanian [Tue, 10 Feb 2009 19:02:04 +0000 (19:02 +0000)]
Some refactoring of Ivar offset code gen.
in preparation for nonfragile ivar offset work.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64225 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoSemantic analysis for non-type template parameter declarations.
Douglas Gregor [Tue, 10 Feb 2009 17:43:50 +0000 (17:43 +0000)]
Semantic analysis for non-type template parameter declarations.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64223 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoTweak x86-64 ABI to allow reuse for vararg handling.
Daniel Dunbar [Tue, 10 Feb 2009 17:06:09 +0000 (17:06 +0000)]
Tweak x86-64 ABI to allow reuse for vararg handling.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64221 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoUpdated checker build.
Ted Kremenek [Tue, 10 Feb 2009 07:38:50 +0000 (07:38 +0000)]
Updated checker build.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64208 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix an #ifndef that should be an #ifdef instead.
Anders Carlsson [Tue, 10 Feb 2009 06:18:19 +0000 (06:18 +0000)]
Fix an #ifndef that should be an #ifdef instead.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64206 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRemove the last remnants of the Obj-C EH stack code.
Anders Carlsson [Tue, 10 Feb 2009 06:07:49 +0000 (06:07 +0000)]
Remove the last remnants of the Obj-C EH stack code.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64205 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoStart removing the old Obj-C EH stack now that the cleanup stack is used instead.
Anders Carlsson [Tue, 10 Feb 2009 05:52:02 +0000 (05:52 +0000)]
Start removing the old Obj-C EH stack now that the cleanup stack is used instead.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64203 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix a crash in GRSimpleVals::EvalCast due not handling transparent unions.
Ted Kremenek [Tue, 10 Feb 2009 05:42:58 +0000 (05:42 +0000)]
Fix a crash in GRSimpleVals::EvalCast due not handling transparent unions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64200 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFunction parameters for PIC16 are like local variables. So use the keyword ".auto...
Sanjiv Gupta [Tue, 10 Feb 2009 04:17:25 +0000 (04:17 +0000)]
Function parameters for PIC16 are like local variables. So use the keyword ".auto." to mangle their names. The working of PIC16AsmPrinter relies on that keyword currently.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64198 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoSupport va_arg on _Complex.
Daniel Dunbar [Tue, 10 Feb 2009 03:03:30 +0000 (03:03 +0000)]
Support va_arg on _Complex.

gcc compat test suite results (Darwin x86-32 & -64):
--
# of expected passes 1110
# of unexpected failures 74
# of unresolved testcases 168
# of unsupported tests 2

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64197 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoBring in 'CHAR_BIT' for GCC 4.3.
Argyrios Kyrtzidis [Tue, 10 Feb 2009 02:14:34 +0000 (02:14 +0000)]
Bring in 'CHAR_BIT' for GCC 4.3.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64196 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoEnable parameter passing test for x86_64.
Daniel Dunbar [Tue, 10 Feb 2009 01:53:22 +0000 (01:53 +0000)]
Enable parameter passing test for x86_64.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64195 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoABI: Correctly handle load/store of values which have a different LLVM
Daniel Dunbar [Tue, 10 Feb 2009 01:51:39 +0000 (01:51 +0000)]
ABI: Correctly handle load/store of values which have a different LLVM
memory representation (e.g., bool).
 - This upgrades (downgrades) MultiSource/Applications/ClamAV/clamscan
   to a miscompile and fixes
   SingleSource/UnitTests/2003-05-31-CastToBool.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64194 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRearrange code. No functionality change.
Ted Kremenek [Tue, 10 Feb 2009 01:14:45 +0000 (01:14 +0000)]
Rearrange code. No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64193 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix potential padding error in PTH file and add stub code for emitting an on-disk...
Ted Kremenek [Tue, 10 Feb 2009 01:06:17 +0000 (01:06 +0000)]
Fix potential padding error in PTH file and add stub code for emitting an on-disk chained hash table.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64192 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd util Emit{LoadOf,StoreTo}Scalar methods to encapsulate conversion
Daniel Dunbar [Tue, 10 Feb 2009 00:57:50 +0000 (00:57 +0000)]
Add util Emit{LoadOf,StoreTo}Scalar methods to encapsulate conversion
from LLVM memory type to/from LLVM temporary type.
 - No intended functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64191 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoUpdate checker build.
Ted Kremenek [Tue, 10 Feb 2009 00:53:39 +0000 (00:53 +0000)]
Update checker build.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64190 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoTeach the type-id/expression disambiguator about different
Douglas Gregor [Tue, 10 Feb 2009 00:53:15 +0000 (00:53 +0000)]
Teach the type-id/expression disambiguator about different
disambiguation contexts, so that we properly parse template arguments
such as

  A<int()>

as type-ids rather than as expressions. Since this can be confusing
(especially when the template parameter is a non-type template
parameter), we try to give a friendly error message.

Almost, eliminate a redundant error message (that should have been a
note) and add some ultra-basic checks for non-type template
arguments.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64189 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoCheck template template arguments against their corresponding template
Douglas Gregor [Tue, 10 Feb 2009 00:24:35 +0000 (00:24 +0000)]
Check template template arguments against their corresponding template
template parameters.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64188 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoMake sure to initialize local variables, even if they were ignored by
Daniel Dunbar [Tue, 10 Feb 2009 00:06:49 +0000 (00:06 +0000)]
Make sure to initialize local variables, even if they were ignored by
ABI.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64187 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRudimentary checking of template arguments against their corresponding
Douglas Gregor [Mon, 9 Feb 2009 23:23:08 +0000 (23:23 +0000)]
Rudimentary checking of template arguments against their corresponding
template parameters when performing semantic analysis of a template-id
naming a class template specialization.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64185 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoid<Foo> is a POD type.
Anders Carlsson [Mon, 9 Feb 2009 21:53:01 +0000 (21:53 +0000)]
id<Foo> is a POD type.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64175 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoMove previously unsupported VLA test to vla.c
Anders Carlsson [Mon, 9 Feb 2009 21:48:07 +0000 (21:48 +0000)]
Move previously unsupported VLA test to vla.c

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64173 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoccc: -dM wasn't being passed to Darwin/CC1 correctly.
Daniel Dunbar [Mon, 9 Feb 2009 21:22:38 +0000 (21:22 +0000)]
ccc: -dM wasn't being passed to Darwin/CC1 correctly.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64169 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoUpdate test case; VLA's are now supported.
Daniel Dunbar [Mon, 9 Feb 2009 21:19:23 +0000 (21:19 +0000)]
Update test case; VLA's are now supported.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64168 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoImplement Sebastian's idea for simplifying our handling of the greater-than operator...
Douglas Gregor [Mon, 9 Feb 2009 21:04:56 +0000 (21:04 +0000)]
Implement Sebastian's idea for simplifying our handling of the greater-than operator/delimiter. Also, clean up after ourselves following a failed parse of a template-argument-list

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64166 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoCallExpr now uses ASTContext's allocate to allocate/delete its array of subexpressions.
Ted Kremenek [Mon, 9 Feb 2009 20:51:47 +0000 (20:51 +0000)]
CallExpr now uses ASTContext's allocate to allocate/delete its array of subexpressions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64162 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoUse the new cleanup infrastructure for VLAs. The next iteration of patches will remov...
Anders Carlsson [Mon, 9 Feb 2009 20:41:50 +0000 (20:41 +0000)]
Use the new cleanup infrastructure for VLAs. The next iteration of patches will remove the old Obj-C EH cleanup code.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64161 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoUse the new cleanup infrastructure for @try/@finally
Anders Carlsson [Mon, 9 Feb 2009 20:38:58 +0000 (20:38 +0000)]
Use the new cleanup infrastructure for @try/@finally

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64160 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoReplace a bunch of EmitBranch calls with EmitBranchThroughCleanup. No functionality...
Anders Carlsson [Mon, 9 Feb 2009 20:31:03 +0000 (20:31 +0000)]
Replace a bunch of EmitBranch calls with EmitBranchThroughCleanup. No functionality change (yet).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64159 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoSave and restore the DidCallStackSave variable
Anders Carlsson [Mon, 9 Feb 2009 20:23:40 +0000 (20:23 +0000)]
Save and restore the DidCallStackSave variable

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64157 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd DidCallStackSave variable to CodeGenFunction.
Anders Carlsson [Mon, 9 Feb 2009 20:20:56 +0000 (20:20 +0000)]
Add DidCallStackSave variable to CodeGenFunction.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64156 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoWhen handling "the rest" of a designated array subobject, maybe sure
Douglas Gregor [Mon, 9 Feb 2009 19:45:19 +0000 (19:45 +0000)]
When handling "the rest" of a designated array subobject, maybe sure
to tell it that it wasn't (directly) designated. This way, we unwind
back to the explicit initializer list properly rather than getting
stuck in the wrong subobject. Fixes llvm.org/PR3519

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64155 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoEliminate TemplateArg so that we only have a single kind of
Douglas Gregor [Mon, 9 Feb 2009 19:34:22 +0000 (19:34 +0000)]
Eliminate TemplateArg so that we only have a single kind of
representation for template arguments. Also simplifies the interface
for ActOnClassTemplateSpecialization and eliminates some annoying
allocations of TemplateArgs.

My attempt at smart pointers for template arguments lists is
relatively lame. We can improve it once we're sure that we have the
right representation for template arguments.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64154 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoStart processing template-ids as types when the template-name refers
Douglas Gregor [Mon, 9 Feb 2009 18:46:07 +0000 (18:46 +0000)]
Start processing template-ids as types when the template-name refers
to a class template. For example, the template-id 'vector<int>' now
has a nice, sugary type in the type system. What we can do now:

  - Parse template-ids like 'vector<int>' (where 'vector' names a
    class template) and form proper types for them in the type system.
  - Parse icky template-ids like 'A<5>' and 'A<(5 > 0)>' properly,
    using (sadly) a bool in the parser to tell it whether '>' should
    be treated as an operator or not.

This is a baby-step, with major problems and limitations:
  - There are currently two ways that we handle template arguments
  (whether they are types or expressions). These will be merged, and,
  most likely, TemplateArg will disappear.
  - We don't have any notion of the declaration of class template
  specializations or of template instantiations, so all template-ids
  are fancy names for 'int' :)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64153 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoUpdate new expression to make use of Declarator::getSourceRange().
Sebastian Redl [Mon, 9 Feb 2009 18:24:27 +0000 (18:24 +0000)]
Update new expression to make use of Declarator::getSourceRange().
References are not objects; implement this in Type::isObjectType().

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64152 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoImplement Declarator::getSourceRange().
Sebastian Redl [Mon, 9 Feb 2009 18:23:29 +0000 (18:23 +0000)]
Implement Declarator::getSourceRange().

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64151 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix PR 2514: Do not flag dead initializations for variables initialized to a constant...
Ted Kremenek [Mon, 9 Feb 2009 18:01:00 +0000 (18:01 +0000)]
Fix PR 2514: Do not flag dead initializations for variables initialized to a constant global variable.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64149 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoDeallocate the StringLiteral itself in StringLiteral::Destroy() and deallocate the...
Ted Kremenek [Mon, 9 Feb 2009 17:10:09 +0000 (17:10 +0000)]
Deallocate the StringLiteral itself in StringLiteral::Destroy() and deallocate the string data before running StringLiteral's destructor.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64146 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAllocate the subexpression array for OberloadExpr from ASTContext's allocator.
Ted Kremenek [Mon, 9 Feb 2009 17:08:14 +0000 (17:08 +0000)]
Allocate the subexpression array for OberloadExpr from ASTContext's allocator.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64145 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRefine PostStmtCustom to reference a tagged data pair with the tag to indicate the...
Ted Kremenek [Mon, 9 Feb 2009 16:59:59 +0000 (16:59 +0000)]
Refine PostStmtCustom to reference a tagged data pair with the tag to indicate the checker.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64144 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdded a new ProgramPoint 'PostStmtCustom' to enable checker-specific ProgramPoints.
Ted Kremenek [Mon, 9 Feb 2009 16:52:31 +0000 (16:52 +0000)]
Added a new ProgramPoint 'PostStmtCustom' to enable checker-specific ProgramPoints.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64143 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoMake Sema::getTypeName return the opaque pointer of a QualType rather
Douglas Gregor [Mon, 9 Feb 2009 15:09:02 +0000 (15:09 +0000)]
Make Sema::getTypeName return the opaque pointer of a QualType rather
than a Decl, which gives us some more flexibility to express the
results with the type system. There are no clients using this
flexibility yet, but it's meant to be able to describe qualified names
as written in the source (e.g., "foo::type") or template-ids that name
a class template specialization (e.g., "std::vector<INT>").

DeclSpec's TST_typedef has become TST_typename, to reflect its use to
describe types found by name (that may or may not be typedefs). The
type representation of a DeclSpec with TST_typename is an opaque
QualType pointer. All users of TST_typedef, both direct and indirect,
have been updated for these changes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64141 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agospell out explicitly
Chris Lattner [Mon, 9 Feb 2009 08:47:44 +0000 (08:47 +0000)]
spell out explicitly

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64129 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoadd doc
Chris Lattner [Mon, 9 Feb 2009 08:47:17 +0000 (08:47 +0000)]
add doc

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64128 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agonew document.
Chris Lattner [Mon, 9 Feb 2009 08:46:11 +0000 (08:46 +0000)]
new document.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64127 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd some more documentation. Also reflowed comments to 80 col.
Mike Stump [Sun, 8 Feb 2009 23:14:22 +0000 (23:14 +0000)]
Add some more documentation.  Also reflowed comments to 80 col.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64105 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoReuse case destinations.
Anders Carlsson [Sun, 8 Feb 2009 22:46:50 +0000 (22:46 +0000)]
Reuse case destinations.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64100 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAlways check if we can remove branch fixups, even if the cleanup stack is empty.
Anders Carlsson [Sun, 8 Feb 2009 22:45:15 +0000 (22:45 +0000)]
Always check if we can remove branch fixups, even if the cleanup stack is empty.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64099 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd a simplified EmitJumpThroughFinally and use it in CGObjC in preparation of making...
Anders Carlsson [Sun, 8 Feb 2009 22:25:30 +0000 (22:25 +0000)]
Add a simplified EmitJumpThroughFinally and use it in CGObjC in preparation of making it use the cleanup stack.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64098 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoMisc fixes to the cleanup stack code.
Anders Carlsson [Sun, 8 Feb 2009 22:13:37 +0000 (22:13 +0000)]
Misc fixes to the cleanup stack code.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64096 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoWhen we're at the stack depth we want, there isn't anything to do.
Mike Stump [Sun, 8 Feb 2009 22:00:53 +0000 (22:00 +0000)]
When we're at the stack depth we want, there isn't anything to do.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64095 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoadd another crazy idea :)
Chris Lattner [Sun, 8 Feb 2009 20:41:34 +0000 (20:41 +0000)]
add another crazy idea :)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64092 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agojust remove this insane testcase :)
Chris Lattner [Sun, 8 Feb 2009 19:44:51 +0000 (19:44 +0000)]
just remove this insane testcase :)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64087 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoTeach the constant evaluator about C++ const integral variables.
Sebastian Redl [Sun, 8 Feb 2009 15:51:17 +0000 (15:51 +0000)]
Teach the constant evaluator about C++ const integral variables.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64086 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix redundant errors with missing default arguments in member declarations.
Sebastian Redl [Sun, 8 Feb 2009 14:56:26 +0000 (14:56 +0000)]
Fix redundant errors with missing default arguments in member declarations.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@64085 91177308-0d34-0410-b5e6-96231b3b80d8