]> granicus.if.org Git - clang/log
clang
15 years agomake sure that UINTMAX_MAX has an unsigned type. This assumes that
Chris Lattner [Sat, 7 Feb 2009 06:38:06 +0000 (06:38 +0000)]
make sure that UINTMAX_MAX has an unsigned type.  This assumes that
uintmax_t is unsigned long long, which is not optimal, but is assumed
elsewhere already.

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

15 years agomake various MAX/MIN constants be preprocessor constants, not C constants.
Chris Lattner [Sat, 7 Feb 2009 06:33:44 +0000 (06:33 +0000)]
make various MAX/MIN constants be preprocessor constants, not C constants.
Thanks to Eli for pointing this out.

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

15 years agoEnsure that we assert if given an unhandled value.
Mike Stump [Sat, 7 Feb 2009 03:46:08 +0000 (03:46 +0000)]
Ensure that we assert if given an unhandled value.

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

15 years agoSet load/store alignment when doing ABI coercions.
Daniel Dunbar [Sat, 7 Feb 2009 02:46:03 +0000 (02:46 +0000)]
Set load/store alignment when doing ABI coercions.
 - Currently, this is producing poor code, but we prefer correctness
   to performance for now. Eventually we should be able to generally
   avoid having to set the alignment when we control the alignment of
   the alloca.

 - This knocks out 33/1000 failures on my single argument ABI tests,
   down to 22/1000 and 18 of these appear to be gcc bugs. Woot.

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

15 years agoUse 'Destroy(Context)' instead of 'Context.Deallocate()' (does recursive freeing...
Ted Kremenek [Sat, 7 Feb 2009 01:51:40 +0000 (01:51 +0000)]
Use 'Destroy(Context)' instead of 'Context.Deallocate()' (does recursive freeing of memory).

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

15 years agoOverhaul of Stmt allocation:
Ted Kremenek [Sat, 7 Feb 2009 01:47:29 +0000 (01:47 +0000)]
Overhaul of Stmt allocation:
- Made allocation of Stmt objects using vanilla new/delete a *compiler
  error* by making this new/delete "protected" within class Stmt.
- Now the only way to allocate Stmt objects is by using the new
  operator that takes ASTContext& as an argument.  This ensures that
  all Stmt nodes are allocated from the same (pool) allocator.
- Naturally, these two changes required that *all* creation sites for
  AST nodes use new (ASTContext&).  This is a large patch, but the
  majority of the changes are just this mechanical adjustment.
- The above changes also mean that AST nodes can no longer be
  deallocated using 'delete'.  Instead, one most do
  StmtObject->Destroy(ASTContext&) or do
  ASTContextObject.Deallocate(StmtObject) (the latter not running the
  'Destroy' method).

Along the way I also...
- Made CompoundStmt allocate its array of Stmt* using the allocator in
  ASTContext (previously it used std::vector).  There are a whole
  bunch of other Stmt classes that need to be similarly changed to
  ensure that all memory allocated for ASTs comes from the allocator
  in ASTContext.
- Added a new smart pointer ExprOwningPtr to Sema.h.  This replaces
  the uses of llvm::OwningPtr within Sema, as llvm::OwningPtr used
  'delete' to free memory instead of a Stmt's 'Destroy' method.

Big thanks to Doug Gregor for helping with the acrobatics of making
'new/delete' private and the new smart pointer ExprOwningPtr!

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

15 years agoGRExprEngine: When processing compound assignments, do a switch table lookup to get...
Ted Kremenek [Sat, 7 Feb 2009 00:52:24 +0000 (00:52 +0000)]
GRExprEngine: When processing compound assignments, do a switch table lookup to get the non-compound opcode from the compound opcode instead of relying on the order of BinaryOperator::opcode values.  This unbreaks the misc-ps.c test.

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

15 years agostart of tgmath, yuck.
Chris Lattner [Sat, 7 Feb 2009 00:47:29 +0000 (00:47 +0000)]
start of tgmath, yuck.

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

15 years agoAdd negative test cases and fix diagnostics for member pointer dereferencing.
Sebastian Redl [Sat, 7 Feb 2009 00:41:42 +0000 (00:41 +0000)]
Add negative test cases and fix diagnostics for member pointer dereferencing.

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

15 years agoWhen making dummy file entries, the directory name should also be
Daniel Dunbar [Sat, 7 Feb 2009 00:40:41 +0000 (00:40 +0000)]
When making dummy file entries, the directory name should also be
non-empty.

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

15 years agoUse our new snazzy stdint.h to make a testcase 64-bit portable.
Sebastian Redl [Sat, 7 Feb 2009 00:23:52 +0000 (00:23 +0000)]
Use our new snazzy stdint.h to make a testcase 64-bit portable.

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

15 years agoApparently it is important to define intptr_t and uintptr_t to
Chris Lattner [Sat, 7 Feb 2009 00:23:17 +0000 (00:23 +0000)]
Apparently it is important to define intptr_t and uintptr_t to
long instead of int.  This is because system heaers like to redefine
typedefs and that is an error if they don't exactly match.  Use long
for intptr_t on all systems where long is the right size.

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

15 years agoImplement dereferencing of pointers-to-member.
Sebastian Redl [Sat, 7 Feb 2009 00:15:38 +0000 (00:15 +0000)]
Implement dereferencing of pointers-to-member.

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

15 years agoFix some errors in the new stdint.h.
Sebastian Redl [Fri, 6 Feb 2009 23:57:52 +0000 (23:57 +0000)]
Fix some errors in the new stdint.h.

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

15 years agoFixed an objc2 nonfragile-abi code gen bug.
Fariborz Jahanian [Fri, 6 Feb 2009 23:46:26 +0000 (23:46 +0000)]
Fixed an objc2 nonfragile-abi code gen bug.
Now we can say 'hello world' objective-c style
in the nonfragile abi.

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

15 years agoonly define MB_LEN_MAX if the system <limits.h> doesn't.
Chris Lattner [Fri, 6 Feb 2009 23:29:39 +0000 (23:29 +0000)]
only define MB_LEN_MAX if the system <limits.h> doesn't.
don't typecast CHAR_MIN to char, this makes it not a PP constant
and gives it the wrong unpromoted type.  Thanks to Sebastian for
pointing this out!

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

15 years agoadd a stdint.h header.
Chris Lattner [Fri, 6 Feb 2009 22:59:47 +0000 (22:59 +0000)]
add a stdint.h header.

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

15 years agoExport __INT8_TYPE__ / __INT16_TYPE__ / __INT32_TYPE__ / __INT64_TYPE__
Chris Lattner [Fri, 6 Feb 2009 22:59:26 +0000 (22:59 +0000)]
Export __INT8_TYPE__ / __INT16_TYPE__ / __INT32_TYPE__ / __INT64_TYPE__
in a gcc 4.5 compatible way so that stdint.h can follow the compiler's
notion of types.

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

15 years agoClean up an already-fixed FIXME
Douglas Gregor [Fri, 6 Feb 2009 22:58:38 +0000 (22:58 +0000)]
Clean up an already-fixed FIXME

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

15 years agoSemantic checking for class template declarations and
Douglas Gregor [Fri, 6 Feb 2009 22:42:48 +0000 (22:42 +0000)]
Semantic checking for class template declarations and
redeclarations. For example, checks that a class template
redeclaration has the same template parameters as previous
declarations.

Detangled class-template checking from ActOnTag, whose logic was
getting rather convoluted because it tried to handle C, C++, and C++
template semantics in one shot.

Made some inroads toward eliminating extraneous "declaration does not
declare anything" errors by adding an "error" type specifier.

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

15 years agoUpdate comment.
Ted Kremenek [Fri, 6 Feb 2009 21:15:34 +0000 (21:15 +0000)]
Update comment.

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

15 years agoobjc2's nonfragile abi API for messages sent to 'super'.
Fariborz Jahanian [Fri, 6 Feb 2009 20:09:23 +0000 (20:09 +0000)]
objc2's nonfragile abi API for messages sent to 'super'.

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

15 years agoMove StringLiteral to allocate its internal string data using the allocator in
Ted Kremenek [Fri, 6 Feb 2009 19:55:15 +0000 (19:55 +0000)]
Move StringLiteral to allocate its internal string data using the allocator in
ASTContext. This required changing all clients to pass in the ASTContext& to the
constructor of StringLiteral. I also changed all allocations of StringLiteral to
use new(ASTContext&).

Along the way, I updated a bunch of new()'s in StmtSerialization.cpp to use the
allocator from ASTContext& (not complete).

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

15 years agoAdd sub-testcase where we process Cocoa.h using --disable-free (i.e., test the usage...
Ted Kremenek [Fri, 6 Feb 2009 19:36:35 +0000 (19:36 +0000)]
Add sub-testcase where we process Cocoa.h using --disable-free (i.e., test the usage of the BumpPtrAllocator in ASTContext).

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

15 years agoccc: Forward -dM to clang.
Daniel Dunbar [Fri, 6 Feb 2009 19:26:48 +0000 (19:26 +0000)]
ccc: Forward -dM to clang.

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

15 years agoccc/Darwin: Add a missing Darwin argument translation, -shared becomes
Daniel Dunbar [Fri, 6 Feb 2009 19:18:58 +0000 (19:18 +0000)]
ccc/Darwin: Add a missing Darwin argument translation, -shared becomes
-dynamiclib. Re-audited translations to make sure I didn't miss
something else.

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

15 years agoUse 'compile' instead of 'codegen' when reporting error to user.
Daniel Dunbar [Fri, 6 Feb 2009 19:18:03 +0000 (19:18 +0000)]
Use 'compile' instead of 'codegen' when reporting error to user.

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

15 years agoAdded special versions of new[]/delete[] to complement the new/delete which uses...
Ted Kremenek [Fri, 6 Feb 2009 19:10:16 +0000 (19:10 +0000)]
Added special versions of new[]/delete[] to complement the new/delete which uses ASTContext's allocator.  Updated some comments along the way.

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

15 years agocorrect description
Chris Lattner [Fri, 6 Feb 2009 18:45:59 +0000 (18:45 +0000)]
correct description

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

15 years agofirst hack at limits.h
Chris Lattner [Fri, 6 Feb 2009 18:34:27 +0000 (18:34 +0000)]
first hack at limits.h

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

15 years ago-funsigned-char sets __CHAR_UNSIGNED__
Chris Lattner [Fri, 6 Feb 2009 18:20:57 +0000 (18:20 +0000)]
-funsigned-char sets __CHAR_UNSIGNED__

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

15 years agoDiagnose attempts to define a namespace member out-of-line when no
Douglas Gregor [Fri, 6 Feb 2009 17:46:57 +0000 (17:46 +0000)]
Diagnose attempts to define a namespace member out-of-line when no
matching member exists. Thanks to Piotr Rak for reporting the problem!

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

15 years agoPut the region store specific test in a separate file.
Zhongxing Xu [Fri, 6 Feb 2009 08:56:58 +0000 (08:56 +0000)]
Put the region store specific test in a separate file.

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

15 years agoSymbolicRegions really have unknown sizes.
Zhongxing Xu [Fri, 6 Feb 2009 08:51:30 +0000 (08:51 +0000)]
SymbolicRegions really have unknown sizes.

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

15 years agoCreate ElementRegion when the base is SymbolicRegion. This is like what we do
Zhongxing Xu [Fri, 6 Feb 2009 08:44:27 +0000 (08:44 +0000)]
Create ElementRegion when the base is SymbolicRegion. This is like what we do
for FieldRegion. This enables us to track more values.

Simplify SymbolicRegion::getRValueType(). We assume the symbol always has
pointer type.

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

15 years agoAdd an implementation of -dM that follows GCC closely enough to permit
Chris Lattner [Fri, 6 Feb 2009 06:45:26 +0000 (06:45 +0000)]
Add an implementation of -dM that follows GCC closely enough to permit
diffing the output of:
  clang -dM -o - -E -x c foo.c | sort

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

15 years agoadd interface for walking macro table.
Chris Lattner [Fri, 6 Feb 2009 06:26:42 +0000 (06:26 +0000)]
add interface for walking macro table.

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

15 years agoadd support for -x c++-header, update comment.
Chris Lattner [Fri, 6 Feb 2009 06:19:20 +0000 (06:19 +0000)]
add support for -x c++-header, update comment.

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

15 years agofactor some code out into a helper function.
Chris Lattner [Fri, 6 Feb 2009 05:56:11 +0000 (05:56 +0000)]
factor some code out into a helper function.

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

15 years agofile gone.
Chris Lattner [Fri, 6 Feb 2009 05:18:06 +0000 (05:18 +0000)]
file gone.

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

15 years agoget __WCHAR_TYPE__ from the targetinfo hook
Chris Lattner [Fri, 6 Feb 2009 05:06:07 +0000 (05:06 +0000)]
get __WCHAR_TYPE__ from the targetinfo hook

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

15 years agosimplify and refactor a bunch of type definition code in Preprocessor
Chris Lattner [Fri, 6 Feb 2009 05:04:11 +0000 (05:04 +0000)]
simplify and refactor a bunch of type definition code in Preprocessor
predefines buffer initialization.

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

15 years agoremove some ad-hocery and use DefineTypeSize for more things.
Chris Lattner [Fri, 6 Feb 2009 04:55:18 +0000 (04:55 +0000)]
remove some ad-hocery and use DefineTypeSize for more things.
Now you too can have a 47 bit long long!

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

15 years agorefactor some code into a DefineTypeSize function.
Chris Lattner [Fri, 6 Feb 2009 04:50:25 +0000 (04:50 +0000)]
refactor some code into a DefineTypeSize function.

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

15 years agodefault diag::err_pp_file_not_found to mapping to fatal,
Chris Lattner [Fri, 6 Feb 2009 04:16:41 +0000 (04:16 +0000)]
default diag::err_pp_file_not_found to mapping to fatal,
implementing PR3492: #include failures should be a fatal error

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

15 years agodon't emit any diagnostics after a fatal one.
Chris Lattner [Fri, 6 Feb 2009 04:16:02 +0000 (04:16 +0000)]
don't emit any diagnostics after a fatal one.

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

15 years agohandle fatal errors, rely on warnings to point out missing cases.
Chris Lattner [Fri, 6 Feb 2009 03:57:44 +0000 (03:57 +0000)]
handle fatal errors, rely on warnings to point out missing cases.

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

15 years agoUse ASTContext's allocator to deallocate Stmt objects instead of using 'delete'....
Ted Kremenek [Fri, 6 Feb 2009 01:42:09 +0000 (01:42 +0000)]
Use ASTContext's allocator to deallocate Stmt objects instead of using 'delete'.  This fixes <rdar://problem/6561143>.

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

15 years agoccc: Give explicit error on @ style argument lists (not yet supported).
Daniel Dunbar [Fri, 6 Feb 2009 01:28:59 +0000 (01:28 +0000)]
ccc: Give explicit error on @ style argument lists (not yet supported).

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

15 years agoccc: Implement special language recognition handling for -.
Daniel Dunbar [Thu, 5 Feb 2009 23:44:44 +0000 (23:44 +0000)]
ccc: Implement special language recognition handling for -.
  - <rdar://problem/6551577> [ccc] require -x with -

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

15 years agoImprove the representation of template type parameters. We now
Douglas Gregor [Thu, 5 Feb 2009 23:33:38 +0000 (23:33 +0000)]
Improve the representation of template type parameters. We now
canonicalize by template parameter depth, index, and name, and the
unnamed version of a template parameter serves as the canonical.

TemplateTypeParmDecl no longer needs to inherit from
TemplateParmPosition, since depth and index information is present
within the type.

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

15 years agoUpdated checker build.
Ted Kremenek [Thu, 5 Feb 2009 23:19:12 +0000 (23:19 +0000)]
Updated checker build.

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

15 years agoallow mapping errors to fatal.
Chris Lattner [Thu, 5 Feb 2009 22:56:06 +0000 (22:56 +0000)]
allow mapping errors to fatal.

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

15 years agodocument fatal
Chris Lattner [Thu, 5 Feb 2009 22:49:08 +0000 (22:49 +0000)]
document fatal

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

15 years agoadd support to the diagnostics machinery for mapping warnings and
Chris Lattner [Thu, 5 Feb 2009 22:47:05 +0000 (22:47 +0000)]
add support to the diagnostics machinery for mapping warnings and
errors to 'fatal' error severity.

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

15 years agoAdd 'AppendValue' to the list of magic CF function names that cause a tracked object...
Ted Kremenek [Thu, 5 Feb 2009 22:34:53 +0000 (22:34 +0000)]
Add 'AppendValue' to the list of magic CF function names that cause a tracked object to escape.  Fixes <rdar://problem/6560661>.

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

15 years agoobjc2's nonfragile-abi - API selection for when receiver is a class
Fariborz Jahanian [Thu, 5 Feb 2009 20:41:40 +0000 (20:41 +0000)]
objc2's nonfragile-abi -  API selection for when receiver is a class

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

15 years agoFollow Eli's advice and store the VLA size with the native size_t type. Fixes PR3491.
Anders Carlsson [Thu, 5 Feb 2009 19:43:10 +0000 (19:43 +0000)]
Follow Eli's advice and store the VLA size with the native size_t type. Fixes PR3491.

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

15 years agoMore objc2's API chanes.
Fariborz Jahanian [Thu, 5 Feb 2009 19:35:43 +0000 (19:35 +0000)]
More objc2's API chanes.

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

15 years agoImprovements and fixes for name lookup with using directives, from Piotr Rak!
Douglas Gregor [Thu, 5 Feb 2009 19:25:20 +0000 (19:25 +0000)]
Improvements and fixes for name lookup with using directives, from Piotr Rak!

Also, put Objective-C protocols into their own identifier
namespace. Otherwise, we find protocols when we don't want to in C++
(but not in C).

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

15 years agoI didn't mean to change this.
Chris Lattner [Thu, 5 Feb 2009 19:05:56 +0000 (19:05 +0000)]
I didn't mean to change this.

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

15 years agoAdd Debian gcc 4.3 header search directories.
Torok Edwin [Thu, 5 Feb 2009 18:12:45 +0000 (18:12 +0000)]
Add Debian gcc 4.3 header search directories.

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

15 years ago#ifdef'out out objc2 API selection which is not done in gcc (unlike
Fariborz Jahanian [Thu, 5 Feb 2009 18:00:27 +0000 (18:00 +0000)]
#ifdef'out out objc2 API selection which is not done in gcc (unlike
the documentation to the contrary).

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

15 years agoUpdate checker build.
Ted Kremenek [Thu, 5 Feb 2009 15:48:51 +0000 (15:48 +0000)]
Update checker build.

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

15 years agoFix the symptom of the regression, by having the CXXConditionDeclExpr not destroy...
Sebastian Redl [Thu, 5 Feb 2009 15:12:41 +0000 (15:12 +0000)]
Fix the symptom of the regression, by having the CXXConditionDeclExpr not destroy its Decl.
However, the cause still remains: the Decl is linked into the chain of its DeclContext and remains there despite being deleted.

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

15 years agoPut the invalid flag of OwningResult into the Action pointer.
Sebastian Redl [Thu, 5 Feb 2009 15:02:23 +0000 (15:02 +0000)]
Put the invalid flag of OwningResult into the Action pointer.
This shrinks OwningResult by one pointer. Since it is no longer larger than OwningPtr, merge the two.
This leads to simpler client code and speeds up my benchmark by 2.7%.
For some reason, this exposes a previously hidden bug, causing a regression in SemaCXX/condition.cpp.

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

15 years agoRemove some non-ASCII in comment.
Sebastian Redl [Thu, 5 Feb 2009 12:33:33 +0000 (12:33 +0000)]
Remove some non-ASCII in comment.

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

15 years agoAdd bare bones test that parameter passing is consistent for
Daniel Dunbar [Thu, 5 Feb 2009 11:21:33 +0000 (11:21 +0000)]
Add bare bones test that parameter passing is consistent for
scalar/complex/aggregate cases.
 - Currently disabled for x86_64, triggering a misoptimization
   (PR3489).

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

15 years agoImplement Direct ABIInfo semantics.
Daniel Dunbar [Thu, 5 Feb 2009 11:13:54 +0000 (11:13 +0000)]
Implement Direct ABIInfo semantics.
 - No intended functionality change, this is essentially enabling
   direct passing of complex and aggregate values, which no ABI is
   using.

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

15 years agoSimplify test for whether we need an alloca to hold an indirect return
Daniel Dunbar [Thu, 5 Feb 2009 09:24:53 +0000 (09:24 +0000)]
Simplify test for whether we need an alloca to hold an indirect return
value.
 - No functionality change.

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

15 years agoImplement ABI Indirect sematics for arguments.
Daniel Dunbar [Thu, 5 Feb 2009 09:16:39 +0000 (09:16 +0000)]
Implement ABI Indirect sematics for arguments.
 - No intended functionality change, all current ABI implementations
   were only using indirect for complex/aggregate types, which were
   being passed indirectly with the Direct ABIInfo kind.

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

15 years agoMerge ABIInfo StructRet/ByVal into Indirect.
Daniel Dunbar [Thu, 5 Feb 2009 08:00:50 +0000 (08:00 +0000)]
Merge ABIInfo StructRet/ByVal into Indirect.
 - No (intended) functionality change, the semantic changes are to come.

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

15 years agomake clang agree with gcc 4.2's x86-64 predefines and settings.
Chris Lattner [Thu, 5 Feb 2009 07:32:46 +0000 (07:32 +0000)]
make clang agree with gcc 4.2's x86-64 predefines and settings.

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

15 years agocorrect and generalize computation of __INTMAX_MAX__.
Chris Lattner [Thu, 5 Feb 2009 07:27:41 +0000 (07:27 +0000)]
correct and generalize computation of __INTMAX_MAX__.

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

15 years agoprivatize some stuff.
Chris Lattner [Thu, 5 Feb 2009 07:27:29 +0000 (07:27 +0000)]
privatize some stuff.

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

15 years agofix some differences between apple gcc and clang on darwin/x86-32.
Chris Lattner [Thu, 5 Feb 2009 07:19:24 +0000 (07:19 +0000)]
fix some differences between apple gcc and clang on darwin/x86-32.

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

15 years agoPull CodeGenFunction::GetUndefRValue() out of EmitUnsupportedRValue.
Daniel Dunbar [Thu, 5 Feb 2009 07:09:07 +0000 (07:09 +0000)]
Pull CodeGenFunction::GetUndefRValue() out of EmitUnsupportedRValue.

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

15 years agoMake SymbolicRegion subclass TypedRegion, for symbols usually have types, so
Zhongxing Xu [Thu, 5 Feb 2009 06:57:29 +0000 (06:57 +0000)]
Make SymbolicRegion subclass TypedRegion, for symbols usually have types, so
do the symblic regions associated with them and we need them to be typed.

Current SymbolicRegion::getRValueType() method is very restricting. It may be
modified when we are more clear about what could be the types of symblic
regions.

BasicConstraintManager::Assume() is changed due to that now SymblicRegion is a
subclass of SubRegion.

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

15 years agoRemove a bunch of obscene double-buffering of BugReports in the retain/release
Ted Kremenek [Thu, 5 Feb 2009 06:50:21 +0000 (06:50 +0000)]
Remove a bunch of obscene double-buffering of BugReports in the retain/release
checker. This was previously needed because BugReport objects were previously
allocated on the stack and not owned by BugReporter. Now we can just issue them
on the fly. This change was motivated because we were seeing some weird cases
where some really long paths would get issued for bugs (particularly leaks)
because of some double-caching.

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

15 years agoccc: Translate -O to -O1 for clang, and only pass last -O option.
Daniel Dunbar [Thu, 5 Feb 2009 02:43:38 +0000 (02:43 +0000)]
ccc: Translate -O to -O1 for clang, and only pass last -O option.

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

15 years agoReapply Daniel's patch to match up with llvm 63765.
Dale Johannesen [Thu, 5 Feb 2009 01:50:47 +0000 (01:50 +0000)]
Reapply Daniel's patch to match up with llvm 63765.
Untested, Daniel or Nate please review.

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

15 years agox86-32: Use Ignore to avoid passing empty structs (instead of Expand).
Daniel Dunbar [Thu, 5 Feb 2009 01:50:07 +0000 (01:50 +0000)]
x86-32: Use Ignore to avoid passing empty structs (instead of Expand).

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

15 years agoHonor ByVal alignment. Patch by Nate Begeman!
Daniel Dunbar [Thu, 5 Feb 2009 01:31:19 +0000 (01:31 +0000)]
Honor ByVal alignment. Patch by Nate Begeman!

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

15 years ago This patch generates messaging code for objc2's non-fragile abi.
Fariborz Jahanian [Thu, 5 Feb 2009 01:13:09 +0000 (01:13 +0000)]
 This patch generates messaging code for objc2's non-fragile abi.

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

15 years agoInitialize alignment field for ByVal ABIInfo correctly.
Daniel Dunbar [Thu, 5 Feb 2009 01:01:30 +0000 (01:01 +0000)]
Initialize alignment field for ByVal ABIInfo correctly.

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

15 years agoFix regression: Leak (BugType) object should have 'isLeak()' return true.
Ted Kremenek [Thu, 5 Feb 2009 00:38:00 +0000 (00:38 +0000)]
Fix regression: Leak (BugType) object should have 'isLeak()' return true.

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

15 years agoUnbreak CGFunctionInfo::Profile method and reenable caching of ABI
Daniel Dunbar [Thu, 5 Feb 2009 00:00:23 +0000 (00:00 +0000)]
Unbreak CGFunctionInfo::Profile method and reenable caching of ABI
information.

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

15 years agoOverhaul BugReporter interface and implementation. The new interface cleans up
Ted Kremenek [Wed, 4 Feb 2009 23:49:09 +0000 (23:49 +0000)]
Overhaul BugReporter interface and implementation. The new interface cleans up
the ownership of BugTypes and BugReports. Now BugReports are owned by BugTypes,
and BugTypes are owned by the BugReporter object.

The major functionality change in this patch is that reports are not immediately
emitted by a call to BugReporter::EmitWarning (now called EmitReport), but
instead of queued up in report "equivalence classes". When
BugReporter::FlushReports() is called, it emits one diagnostic per report
equivalence class. This provides a nice cleanup with the caching of reports as
well as enables the BugReporter engine to select the "best" path for reporting a
path-sensitive bug based on all the locations in the ExplodedGraph that the same
bug could occur.

Along with this patch, Leaks are now coalesced into a common equivalence class
by their allocation site, and the "summary" diagnostic for leaks now reports the
allocation site as the location of the bug (this may later be augmented to also
provide an example location where the leak occurs).

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

15 years agoChase LLVM TOT in circles (i.e., revert r63773 to match revert of
Daniel Dunbar [Wed, 4 Feb 2009 23:40:00 +0000 (23:40 +0000)]
Chase LLVM TOT in circles (i.e., revert r63773 to match revert of
r63765).

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

15 years agoAdd ABIArgInfo::dump()
Daniel Dunbar [Wed, 4 Feb 2009 23:24:38 +0000 (23:24 +0000)]
Add ABIArgInfo::dump()

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

15 years agoImplement semantic analysis for the GNU flexible array initialization
Douglas Gregor [Wed, 4 Feb 2009 22:46:25 +0000 (22:46 +0000)]
Implement semantic analysis for the GNU flexible array initialization
extension. The interaction with designated initializers is a
bit... interesting... but we follow GNU's lead and don't permit too
much crazy code in this area.

Also, make the "excess initializers" error message a bit more
informative.

Addresses PR2561: http://llvm.org/bugs/show_bug.cgi?id=2561

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

15 years agoAdd support for blocks with explicit return types.
Mike Stump [Wed, 4 Feb 2009 22:31:32 +0000 (22:31 +0000)]
Add support for blocks with explicit return types.

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

15 years agoUse correct signature for calling enumeration mutation function.
Daniel Dunbar [Wed, 4 Feb 2009 22:00:33 +0000 (22:00 +0000)]
Use correct signature for calling enumeration mutation function.

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

15 years agoTemporarily disable caching of ABI results; this is going horribly
Daniel Dunbar [Wed, 4 Feb 2009 21:36:22 +0000 (21:36 +0000)]
Temporarily disable caching of ABI results; this is going horribly
wrong in some cases.

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

15 years agoImplement taking address of member functions, including overloaded ones.
Sebastian Redl [Wed, 4 Feb 2009 21:23:32 +0000 (21:23 +0000)]
Implement taking address of member functions, including overloaded ones.

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

15 years agoccc: Forward -femit-all-decls to clang and use an option group to
Daniel Dunbar [Wed, 4 Feb 2009 21:21:08 +0000 (21:21 +0000)]
ccc: Forward -femit-all-decls to clang and use an option group to
simplify handling of -f options clang recognizes.

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

15 years agoTest case for -femit-all-decls.
Daniel Dunbar [Wed, 4 Feb 2009 21:20:25 +0000 (21:20 +0000)]
Test case for -femit-all-decls.

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

15 years agoAdd -femit-all-decls codegen option.
Daniel Dunbar [Wed, 4 Feb 2009 21:19:06 +0000 (21:19 +0000)]
Add -femit-all-decls codegen option.
 - Emits all declarations, even unused (static) ones.
 - Useful when doing minimization of codegen problems (otherwise
   problems localized to a static function aren't minimized well).

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

15 years agoAdd asserts that the function signature matches the other arguments provide
Daniel Dunbar [Wed, 4 Feb 2009 21:17:21 +0000 (21:17 +0000)]
Add asserts that the function signature matches the other arguments provide
to CGCall functions.

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

15 years ago(llvm up) Update for intrinsic lookup changes.
Daniel Dunbar [Wed, 4 Feb 2009 21:09:15 +0000 (21:09 +0000)]
(llvm up) Update for intrinsic lookup changes.

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