]> granicus.if.org Git - clang/log
clang
14 years agoFix a typo that breaks the GCC build. Turns out that Clang isn't
Douglas Gregor [Wed, 9 Jun 2010 05:25:34 +0000 (05:25 +0000)]
Fix a typo that breaks the GCC build. Turns out that Clang isn't
diagnosing this code as an error when it should, so I've filed
http://llvm.org/bugs/show_bug.cgi?id=7325.

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

14 years agoAdded FixIt support to printf format string checking.
Tom Care [Wed, 9 Jun 2010 04:11:11 +0000 (04:11 +0000)]
Added FixIt support to printf format string checking.
- Refactored LengthModifier to be a class.
- Added toString methods in all member classes of FormatSpecifier.
- FixIt suggestions keep user specified flags unless incorrect.

Limitations:
- The suggestions are not conversion specifier sensitive. For example, if we have a 'pad with zeroes' flag, and the correction is a string conversion specifier, we do not remove the flag. Clang will warn us on the next compilation.

A    test/Sema/format-strings-fixit.c
M    include/clang/Analysis/Analyses/PrintfFormatString.h
M    lib/Analysis/PrintfFormatString.cpp
M    lib/Sema/SemaChecking.cpp

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

14 years agoTweak our handling of the notion of a standard conversion sequence
Douglas Gregor [Wed, 9 Jun 2010 03:53:18 +0000 (03:53 +0000)]
Tweak our handling of the notion of a standard conversion sequence
being a subsequence of another standard conversion sequence. Instead
of requiring exact type equality for the second conversion step,
require type *similarity*, which is type equality with cv-qualifiers
removed at all levels. This appears to match the behavior of EDG and
VC++ (albeit not GCC), and feels more intuitive. Big thanks to John
for the line of reasoning that supports this change: since
cv-qualifiers are orthogonal to the second conversion step, we should
ignore them in the type comparison.

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

14 years agoSimplify the code a bit and avoid a gcc waring about uninitialized variables.
Rafael Espindola [Wed, 9 Jun 2010 03:48:40 +0000 (03:48 +0000)]
Simplify the code a bit and avoid a gcc waring about uninitialized variables.

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

14 years agoGet rid of getMangledCXXCtorName and getMangledCXXDtorName.
Anders Carlsson [Wed, 9 Jun 2010 02:36:32 +0000 (02:36 +0000)]
Get rid of getMangledCXXCtorName and getMangledCXXDtorName.

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

14 years agoMore mangling cleanup.
Anders Carlsson [Wed, 9 Jun 2010 02:30:12 +0000 (02:30 +0000)]
More mangling cleanup.

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

14 years agoGet rid of an unnecessary getMangledName overload.
Anders Carlsson [Wed, 9 Jun 2010 02:20:01 +0000 (02:20 +0000)]
Get rid of an unnecessary getMangledName overload.

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

14 years agoFix a gcc warning.
Rafael Espindola [Wed, 9 Jun 2010 02:17:08 +0000 (02:17 +0000)]
Fix a gcc warning.

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

14 years agoFix test.
Anders Carlsson [Wed, 9 Jun 2010 01:42:52 +0000 (01:42 +0000)]
Fix test.

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

14 years agoImplement transpose/zip/unzip & table lookup.
Nate Begeman [Wed, 9 Jun 2010 01:10:23 +0000 (01:10 +0000)]
Implement transpose/zip/unzip & table lookup.
Test out some basic constant-checking.

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

14 years agoAdded helper function to Type class to determine if a type is a builtin type. This...
Tom Care [Wed, 9 Jun 2010 00:15:39 +0000 (00:15 +0000)]
Added helper function to Type class to determine if a type is a builtin type. This complements the existing function that determines if a type is a specific builtin type.

Modified:
    include/clang/AST/Type.h

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

14 years agoTry to fix buildbot tests.
Anders Carlsson [Tue, 8 Jun 2010 23:10:20 +0000 (23:10 +0000)]
Try to fix buildbot tests.

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

14 years agoFix memory leak in ASTContext where ASTRecordLayout objects involving C++ structures...
Ted Kremenek [Tue, 8 Jun 2010 23:00:58 +0000 (23:00 +0000)]
Fix memory leak in ASTContext where ASTRecordLayout objects involving C++ structures wouldn't have
their associated memory destroyed when using a BumpPtrAllocator.  These objects internally use
a DenseMap.

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

14 years agoFix memory leak in Preprocessor where MacroInfo objects in the MICache wouldn't have...
Ted Kremenek [Tue, 8 Jun 2010 23:00:53 +0000 (23:00 +0000)]
Fix memory leak in Preprocessor where MacroInfo objects in the MICache wouldn't have their
associated SmallVectors get deallocated.

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

14 years agoCode cleanup: remove explicit flush() in favor of using the ostream's str()
Jordy Rose [Tue, 8 Jun 2010 22:59:01 +0000 (22:59 +0000)]
Code cleanup: remove explicit flush() in favor of using the ostream's str()

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

14 years agoAdd test case.
Anders Carlsson [Tue, 8 Jun 2010 22:48:02 +0000 (22:48 +0000)]
Add test case.

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

14 years agoOn Darwin, initialization and destruction functions should go into the __StaticInit...
Anders Carlsson [Tue, 8 Jun 2010 22:47:50 +0000 (22:47 +0000)]
On Darwin, initialization and destruction functions should go into the __StaticInit section.

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

14 years agoAdd a global CreateGlobalInitOrDestructFunction and use it for creating global init...
Anders Carlsson [Tue, 8 Jun 2010 22:40:05 +0000 (22:40 +0000)]
Add a global CreateGlobalInitOrDestructFunction and use it for creating global init or destruction functions.

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

14 years agoRename __tcf_ to __cxx_global_array_dtor. Remove the UniqueAggreDestructorCount from...
Anders Carlsson [Tue, 8 Jun 2010 22:30:17 +0000 (22:30 +0000)]
Rename __tcf_ to __cxx_global_array_dtor. Remove the UniqueAggreDestructorCount from CodeGenFunction and let LLVM handle uniquing the internal functions instead.

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

14 years agoMove GenerateCXXAggrDestructorHelper to CGDeclCXX.cpp where it belongs.
Anders Carlsson [Tue, 8 Jun 2010 22:17:27 +0000 (22:17 +0000)]
Move GenerateCXXAggrDestructorHelper to CGDeclCXX.cpp where it belongs.

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

14 years agoSimplify GenerateCXXAggrDestructorHelper.
Anders Carlsson [Tue, 8 Jun 2010 22:14:59 +0000 (22:14 +0000)]
Simplify GenerateCXXAggrDestructorHelper.

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

14 years agoGlobally disable -fno-strict-aliasing, for reasons given in the comment.
Daniel Dunbar [Tue, 8 Jun 2010 21:55:02 +0000 (21:55 +0000)]
Globally disable -fno-strict-aliasing, for reasons given in the comment.

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

14 years agoWhen referring to a tag that was previously declared only as a friend,
Douglas Gregor [Tue, 8 Jun 2010 21:27:36 +0000 (21:27 +0000)]
When referring to a tag that was previously declared only as a friend,
build a new declaration for that tag type that will be visible for
future lookups of that tag.

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

14 years agoA built-in overload candidate is consider a non-template function when
Douglas Gregor [Tue, 8 Jun 2010 21:03:17 +0000 (21:03 +0000)]
A built-in overload candidate is consider a non-template function when
determining whether one overload candidate is better than
another. Fixes PR7319.

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

14 years agoBlock Code Gen. API. Call destructor on descriptior
Fariborz Jahanian [Tue, 8 Jun 2010 20:57:22 +0000 (20:57 +0000)]
Block Code Gen. API. Call destructor on descriptior
entry previously constructed via copy constructor.

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

14 years agoMakefiles: Remove unnecessary early include of Makefile.config.
Daniel Dunbar [Tue, 8 Jun 2010 20:57:22 +0000 (20:57 +0000)]
Makefiles: Remove unnecessary early include of Makefile.config.

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

14 years agoSimplify libIndex Makefile, which doesn't need to worry about altivec support.
Daniel Dunbar [Tue, 8 Jun 2010 20:57:18 +0000 (20:57 +0000)]
Simplify libIndex Makefile, which doesn't need to worry about altivec support.

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

14 years agoMakefiles: Set Clang CPP compiler flags in a single location, instead of scattered...
Daniel Dunbar [Tue, 8 Jun 2010 20:44:43 +0000 (20:44 +0000)]
Makefiles: Set Clang CPP compiler flags in a single location, instead of scattered throughout the project Makefiles.

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

14 years agoMakefile: Switch Clang Makefiles to always include the top-level Clang Makefile.
Daniel Dunbar [Tue, 8 Jun 2010 20:34:18 +0000 (20:34 +0000)]
Makefile: Switch Clang Makefiles to always include the top-level Clang Makefile.
 - This eliminates most dependencies on how Clang is installed relative to LLVM.

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

14 years agoUpdate Xcode project.
Anders Carlsson [Tue, 8 Jun 2010 20:02:04 +0000 (20:02 +0000)]
Update Xcode project.

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

14 years agoWarn about comparisons between arrays and improve self-comparison
Douglas Gregor [Tue, 8 Jun 2010 19:50:34 +0000 (19:50 +0000)]
Warn about comparisons between arrays and improve self-comparison
warnings, from Troy Straszheim! Fixes PR6163.

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

14 years agoTeach the PrintFunctionNames example to be a proper module, so that
Douglas Gregor [Tue, 8 Jun 2010 19:23:49 +0000 (19:23 +0000)]
Teach the PrintFunctionNames example to be a proper module, so that
Clang can load it as a plugin. Original fix by Troy D. Straszheim,
which I extended with Darwin support. Fixes PR6801.

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

14 years agoCorrectly handle fields with virtual bases containing empty subobjects.
Anders Carlsson [Tue, 8 Jun 2010 19:09:24 +0000 (19:09 +0000)]
Correctly handle fields with virtual bases containing empty subobjects.

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

14 years agoAdd ccc-analyzer support for '-imacros'. Fixes PR 7204.
Ted Kremenek [Tue, 8 Jun 2010 18:27:55 +0000 (18:27 +0000)]
Add ccc-analyzer support for '-imacros'.  Fixes PR 7204.

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

14 years agoFixes a typo which prevented proper code gen. for
Fariborz Jahanian [Tue, 8 Jun 2010 17:52:11 +0000 (17:52 +0000)]
Fixes a typo which prevented proper code gen. for
copy-in of c++ class objects into blocks.

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

14 years agoImplement a warning when converting the literal 'false' to a
Douglas Gregor [Tue, 8 Jun 2010 17:35:15 +0000 (17:35 +0000)]
Implement a warning when converting the literal 'false' to a
pointer. Original patch by Troy D. Straszheim; fixes PR7283.

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

14 years agoWhen checking whether we can place a base subobject at an offset, we don't need to...
Anders Carlsson [Tue, 8 Jun 2010 16:20:35 +0000 (16:20 +0000)]
When checking whether we can place a base subobject at an offset, we don't need to go past the highest offset that's known to contain an empty base subobject.

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

14 years agoMinor cleanups to the empty subobject map.
Anders Carlsson [Tue, 8 Jun 2010 15:56:03 +0000 (15:56 +0000)]
Minor cleanups to the empty subobject map.

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

14 years agoUpdate LINK_COMPONENTS for examples.
Daniel Dunbar [Tue, 8 Jun 2010 15:38:01 +0000 (15:38 +0000)]
Update LINK_COMPONENTS for examples.

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

14 years agoCorrectly mangle static variables of anonymous struct/union type.
Anders Carlsson [Tue, 8 Jun 2010 14:49:03 +0000 (14:49 +0000)]
Correctly mangle static variables of anonymous struct/union type.

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

14 years agoToken is POD-like.
Benjamin Kramer [Tue, 8 Jun 2010 11:23:26 +0000 (11:23 +0000)]
Token is POD-like.

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

14 years agoAdd a checker check if a global variable holds a local variable's address after
Zhongxing Xu [Tue, 8 Jun 2010 10:00:00 +0000 (10:00 +0000)]
Add a checker check if a global variable holds a local variable's address after
the function call is left where the local variable is declared.

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

14 years agoFix NEON intrinsic argument passing, support vext. Most now successfully make it...
Nate Begeman [Tue, 8 Jun 2010 06:03:01 +0000 (06:03 +0000)]
Fix NEON intrinsic argument passing, support vext.  Most now successfully make it through codegen to the .s file

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

14 years agoImplement -fcaret-diagnostics to undo -fno-caret-diagnostics.
Jeffrey Yasskin [Tue, 8 Jun 2010 04:56:20 +0000 (04:56 +0000)]
Implement -fcaret-diagnostics to undo -fno-caret-diagnostics.

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

14 years agoAdd a test to the previous commit.
Rafael Espindola [Tue, 8 Jun 2010 03:59:28 +0000 (03:59 +0000)]
Add a test to the previous commit.

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

14 years agoFix what looks like a merge problem that broke __clear_cache.
Rafael Espindola [Tue, 8 Jun 2010 03:52:53 +0000 (03:52 +0000)]
Fix what looks like a merge problem that broke __clear_cache.

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

14 years agoAdd test for previous commit.
Rafael Espindola [Tue, 8 Jun 2010 03:29:31 +0000 (03:29 +0000)]
Add test for previous commit.

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

14 years agoSince the enum values for each arch's builtins overlap, it is not appropriate to...
Nate Begeman [Tue, 8 Jun 2010 02:47:44 +0000 (02:47 +0000)]
Since the enum values for each arch's builtins overlap, it is not appropriate to check them when compiling or other archs.  Fixes a problem where compiling for NEON would use x86 sema rules.

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

14 years agoFix passing and returning of objects with non trivial copy constructors on
Rafael Espindola [Tue, 8 Jun 2010 02:42:08 +0000 (02:42 +0000)]
Fix passing and returning of objects with non trivial copy constructors on
ARM.

Fixes PR7310.

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

14 years agoImplement ARM NEON up through vcvt, alphabetically.
Nate Begeman [Tue, 8 Jun 2010 00:17:19 +0000 (00:17 +0000)]
Implement ARM NEON up through vcvt, alphabetically.

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

14 years agoExtend __builtin_shufflevector to expose the full power of the llvm shufflevector...
Nate Begeman [Tue, 8 Jun 2010 00:16:34 +0000 (00:16 +0000)]
Extend __builtin_shufflevector to expose the full power of the llvm shufflevector instruction.  This means it can now be used for vector truncation and concatenation.  This will be used for the ARM NEON implementation.

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

14 years agoDriver: Support invoking Clang on .ll or .bc inputs.
Daniel Dunbar [Mon, 7 Jun 2010 23:28:45 +0000 (23:28 +0000)]
Driver: Support invoking Clang on .ll or .bc inputs.
 - We actually pretend that we have two separate types for LLVM assembly/bitcode because we need to use the standard suffixes with LTO ('clang -O4 -c t.c' should generate 't.o').

It is now possible to do something like:
  $ clang -emit-llvm -S t.c -o t.ll ... assorted other compile flags ...
  $ clang -c t.ll -o t.o ... assorted other compile flags ...
and expect that the output will be almost* identical to:
  $ clang -c t.c -o t.o ... assorted other compile flags ...
because all the target settings (default CPU, target features, etc.) will all be initialized properly by the driver/frontend.

*: This isn't perfect yet, because in practice we will end up running the optimization passes twice. It's possible to get something equivalent out with a well placed -mllvm -disable-llvm-optzns, but I'm still thinking about the cleanest way to solve this problem more generally.

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

14 years agoFrontend: Add CodeGenAction support for handling LLVM IR.\r - This magically enables...
Daniel Dunbar [Mon, 7 Jun 2010 23:27:59 +0000 (23:27 +0000)]
Frontend: Add CodeGenAction support for handling LLVM IR.\r - This magically enables using 'clang -cc1' as a replacement for most of 'llvm-as', 'llvm-dis', 'llc' and 'opt' functionality.\r\rFor example, 'llvm-as' is:\r  $ clang -cc1 -emit-llvm-bc FOO.ll -o FOO.bc
and 'llvm-dis' is:\r  $ clang -cc1 -emit-llvm    FOO.bc -o -
and 'opt' is, e.g.:
  $ clang -cc1 -emit-llvm -O3 -o FOO.opt.ll FOO.ll
and 'llc' is, e.g.:
  $ clang -cc1 -S -o - FOO.ll

The nice thing about using the backend tools this way is that they are guaranteed to exactly match how the compiler generates code (for example, setting the same backend options).

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

14 years agoFrontend: Add FrontendAction support for handling LLVM IR inputs.
Daniel Dunbar [Mon, 7 Jun 2010 23:26:47 +0000 (23:26 +0000)]
Frontend: Add FrontendAction support for handling LLVM IR inputs.
 - These inputs follow an abbreviated execution path, but are still worth handling by FrontendAction so they reuse all the other clang -cc1 features.

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

14 years agoFrontendAction: Track active file kind.
Daniel Dunbar [Mon, 7 Jun 2010 23:25:49 +0000 (23:25 +0000)]
FrontendAction: Track active file kind.

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

14 years agoFrontend: Rename hasASTSupport to hasASTFileSupport, which is more accurate.
Daniel Dunbar [Mon, 7 Jun 2010 23:24:43 +0000 (23:24 +0000)]
Frontend: Rename hasASTSupport to hasASTFileSupport, which is more accurate.

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

14 years agoFrontend: Move some initialization from CompilerInstance to FrontendAction, to parall...
Daniel Dunbar [Mon, 7 Jun 2010 23:23:50 +0000 (23:23 +0000)]
Frontend: Move some initialization from CompilerInstance to FrontendAction, to parallel what is done for AST inputs.

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

14 years agoFrontend: Change FrontendAction::BeginSourceFile to take the input kind instead of...
Daniel Dunbar [Mon, 7 Jun 2010 23:23:06 +0000 (23:23 +0000)]
Frontend: Change FrontendAction::BeginSourceFile to take the input kind instead of an IsAST bool.

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

14 years agoFrontend: Lift InputKind enumeration to top level.
Daniel Dunbar [Mon, 7 Jun 2010 23:22:09 +0000 (23:22 +0000)]
Frontend: Lift InputKind enumeration to top level.

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

14 years agoFrontend: Drop unnecessary TargetData argument to EmitBackendOutput, we always
Daniel Dunbar [Mon, 7 Jun 2010 23:21:04 +0000 (23:21 +0000)]
Frontend: Drop unnecessary TargetData argument to EmitBackendOutput, we always
create modules which have target data strings.

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

14 years agoFrontend: Factor clang::EmitBackendOutput out of CodeGenAction.
Daniel Dunbar [Mon, 7 Jun 2010 23:20:08 +0000 (23:20 +0000)]
Frontend: Factor clang::EmitBackendOutput out of CodeGenAction.

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

14 years agoFrontend: Add CodeGenOptions::SimplifyLibCalls, and eliminate LangOptions argument...
Daniel Dunbar [Mon, 7 Jun 2010 23:19:17 +0000 (23:19 +0000)]
Frontend: Add CodeGenOptions::SimplifyLibCalls, and eliminate LangOptions argument to BackendConsumer.

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

14 years agoWhen using property-dot assignment syntax to call a setter method,
Fariborz Jahanian [Mon, 7 Jun 2010 22:02:01 +0000 (22:02 +0000)]
When using property-dot assignment syntax to call a setter method,
type of rhs need be compared to setter's argument and
not the getter type. Fixes radar 8062778

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

14 years agoFixed a block regression caused by trying to use
Fariborz Jahanian [Mon, 7 Jun 2010 19:39:39 +0000 (19:39 +0000)]
Fixed a block regression caused by trying to use
an existing ir for load of a bock variable. This cannot be
done across basic blocks.
Fixes radar 8064140.

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

14 years agoCatch free()s on non-regions and regions known to be not from malloc(), by checking...
Jordy Rose [Mon, 7 Jun 2010 19:32:37 +0000 (19:32 +0000)]
Catch free()s on non-regions and regions known to be not from malloc(), by checking the symbol type and memory space.

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

14 years agoImplement __clear_cache on ARM.
Rafael Espindola [Mon, 7 Jun 2010 17:26:50 +0000 (17:26 +0000)]
Implement __clear_cache on ARM.

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

14 years agoUse MaybeCreateCXXExprWithTemporaries for potential destruction of
Fariborz Jahanian [Mon, 7 Jun 2010 16:14:00 +0000 (16:14 +0000)]
Use MaybeCreateCXXExprWithTemporaries for potential destruction of
created temporary. Use own initialized entity for copied in block
variables.

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

14 years agoweekend checkpoint of arm neon builtins codegen.
Nate Begeman [Mon, 7 Jun 2010 16:01:56 +0000 (16:01 +0000)]
weekend checkpoint of arm neon builtins codegen.
TODO: add remainder of builtins to CGBuiltin, add code to SemaChecking to validate constants.

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

14 years agoPR7245: Make binding a reference to a temporary without a usable copy
Jeffrey Yasskin [Mon, 7 Jun 2010 15:58:05 +0000 (15:58 +0000)]
PR7245: Make binding a reference to a temporary without a usable copy
constructor into an extension warning into the error that C++98 requires.

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

14 years agoSimplify the methods for creating a pointer, reference, member-pointer,
John McCall [Sat, 5 Jun 2010 06:41:15 +0000 (06:41 +0000)]
Simplify the methods for creating a pointer, reference, member-pointer,
or block-pointer type by removing the qualifiers parameter.  Introduce a
method to perform semantic checking when adding qualifiers to a type.

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

14 years agoAdded AccessSpecDecl node.
Abramo Bagnara [Sat, 5 Jun 2010 05:09:32 +0000 (05:09 +0000)]
Added AccessSpecDecl node.

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

14 years agoAdd an extension to avoid an error when a global template has the same name as
Jeffrey Yasskin [Sat, 5 Jun 2010 01:39:57 +0000 (01:39 +0000)]
Add an extension to avoid an error when a global template has the same name as
a member template, and you try to call the member template with an explicit
template argument.  See PR7247

For example, this downgrades the error to a warning in:

template<typename T> struct set{};
struct Value {
    template<typename T>
    void set(T value) {
    }
};
void foo() {
    Value v;
    v.set<double>(3.2);  // Warning here.
}

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

14 years agoPreserve type info for local variables in optimized builds.
Devang Patel [Sat, 5 Jun 2010 01:14:40 +0000 (01:14 +0000)]
Preserve type info for local variables in optimized builds.
llvm-gcc enabled this couple of weeks ago.

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

14 years agoAlter the interface of GetTypeForDeclarator to return a TypeSourceInfo*.
John McCall [Fri, 4 Jun 2010 23:28:52 +0000 (23:28 +0000)]
Alter the interface of GetTypeForDeclarator to return a TypeSourceInfo*.
This is never null, but the associated type might be.

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

14 years agoCorrectly align large arrays in x86-64. This fixes PR5599.
Rafael Espindola [Fri, 4 Jun 2010 23:15:27 +0000 (23:15 +0000)]
Correctly align large arrays in x86-64. This fixes PR5599.

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

14 years agoWhen deciding whether reinterpret_cast casts away constness we need to look at array...
Anders Carlsson [Fri, 4 Jun 2010 22:47:55 +0000 (22:47 +0000)]
When deciding whether reinterpret_cast casts away constness we need to look at array qualifiers. Fixes rdar://problem/8018292.

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

14 years agoAdd indexing support for the block and @property type location information
John McCall [Fri, 4 Jun 2010 22:33:30 +0000 (22:33 +0000)]
Add indexing support for the block and @property type location information
I just implemented.

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

14 years agoInitial support for ARM NEON builtins, codegen up next
Nate Begeman [Fri, 4 Jun 2010 21:36:27 +0000 (21:36 +0000)]
Initial support for ARM NEON builtins, codegen up next

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

14 years agoBuild AST for copy-construction of copied-in
Fariborz Jahanian [Fri, 4 Jun 2010 21:35:44 +0000 (21:35 +0000)]
Build AST for copy-construction of copied-in
class object in blocks and carry it to IRGen.

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

14 years agoRemember type source information for Objective C property declarations.
John McCall [Fri, 4 Jun 2010 20:50:08 +0000 (20:50 +0000)]
Remember type source information for Objective C property declarations.

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

14 years agoAdded a field to BlockDeclRefExpr for future use.
Fariborz Jahanian [Fri, 4 Jun 2010 19:06:53 +0000 (19:06 +0000)]
Added a field to BlockDeclRefExpr for future use.
No functionality change yet.

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

14 years agoPreserve more information from a block's original function declarator, if one
John McCall [Fri, 4 Jun 2010 19:02:56 +0000 (19:02 +0000)]
Preserve more information from a block's original function declarator, if one
was given.  Remove some unnecessary accounting from BlockScopeInfo.  Handle
typedef'ed function types until such time as we decide not.

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

14 years agoDriver: Change -dwarf-debug-flags option to pass the original command line
Daniel Dunbar [Fri, 4 Jun 2010 18:47:06 +0000 (18:47 +0000)]
Driver: Change -dwarf-debug-flags option to pass the original command line
arguments after translation, instead of the -cc1 level arguments.

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

14 years agoDriver/Darwin: Model dsymutil properly, as a separate action/tool kind which is
Daniel Dunbar [Fri, 4 Jun 2010 18:28:41 +0000 (18:28 +0000)]
Driver/Darwin: Model dsymutil properly, as a separate action/tool kind which is
added as the last output step, instead of just hacking it into the link step.
 - Among other things, this fixes dSYM generation when using multiple -arch options.

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

14 years agoDriver: Add an explicit dsymutil action.
Daniel Dunbar [Fri, 4 Jun 2010 18:28:36 +0000 (18:28 +0000)]
Driver: Add an explicit dsymutil action.

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

14 years agoFor C++ copied in objects, use copy constructors in
Fariborz Jahanian [Fri, 4 Jun 2010 16:10:00 +0000 (16:10 +0000)]
For C++ copied in objects, use copy constructors in
setting up block's descriptor. This is on going work to
support c++ specific issues in setting up blocks
various APIs.

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

14 years agoAdd ARM paths for debian. Not enough to bootstrap on a beagle board, but
Rafael Espindola [Fri, 4 Jun 2010 14:28:10 +0000 (14:28 +0000)]
Add ARM paths for debian. Not enough to bootstrap on a beagle board, but
moves us further.

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

14 years agoRestructure how we interpret block-literal declarators. Correctly handle
John McCall [Fri, 4 Jun 2010 11:21:44 +0000 (11:21 +0000)]
Restructure how we interpret block-literal declarators.  Correctly handle
the case where we pick up block arguments from a typedef.  Save the block
signature as it was written, and preserve same through PCH.

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

14 years agoDon't insert in lexical context implicit definitions of static member instances.
Abramo Bagnara [Fri, 4 Jun 2010 09:35:39 +0000 (09:35 +0000)]
Don't insert in lexical context implicit definitions of static member instances.

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

14 years agoWhen checking for equality of template parameter lists, a template
Douglas Gregor [Fri, 4 Jun 2010 08:34:32 +0000 (08:34 +0000)]
When checking for equality of template parameter lists, a template
type parameter pack is distinct from a template type parameter.

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

14 years agoDelay checking for mutable const fields until we're checking the field.
John McCall [Fri, 4 Jun 2010 08:34:12 +0000 (08:34 +0000)]
Delay checking for mutable const fields until we're checking the field.
Allows this check to work properly for instantiated fields and removes
an unnecessary GetTypeForDeclarator call.

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

14 years agoProperly disambiguate between an elaborated-type-specifier and a
Douglas Gregor [Fri, 4 Jun 2010 07:30:15 +0000 (07:30 +0000)]
Properly disambiguate between an elaborated-type-specifier and a
type-parameter within a template parameter list. Found by inspection.

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

14 years agoMore refactoring.
John McCall [Fri, 4 Jun 2010 02:29:22 +0000 (02:29 +0000)]
More refactoring.

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

14 years agoAdd a short circuit in isVirtuallyDerivedFrom.
Anders Carlsson [Fri, 4 Jun 2010 01:40:08 +0000 (01:40 +0000)]
Add a short circuit in isVirtuallyDerivedFrom.

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

14 years agoAssignments to reference variables shouldn't kill the variable.
Jordy Rose [Fri, 4 Jun 2010 01:14:56 +0000 (01:14 +0000)]
Assignments to reference variables shouldn't kill the variable.

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

14 years agoFixed Objective-C type encoding for bitfields for the GNU runtime to match the encodi...
David Chisnall [Fri, 4 Jun 2010 01:10:52 +0000 (01:10 +0000)]
Fixed Objective-C type encoding for bitfields for the GNU runtime to match the encoding used by GCC.

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

14 years agoRemove now unused code.
Anders Carlsson [Fri, 4 Jun 2010 00:59:37 +0000 (00:59 +0000)]
Remove now unused code.

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

14 years agoUse CXXRecordDecl::getFinalOverriders to get final overriders. This speeds up vtable...
Anders Carlsson [Fri, 4 Jun 2010 00:54:04 +0000 (00:54 +0000)]
Use CXXRecordDecl::getFinalOverriders to get final overriders. This speeds up vtable layout by moving away from the old final overrider computation code that had O(N^2) complexity in some cases.

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

14 years agoRemove a couple of unnecessary uses of IsStandardConversion.
John McCall [Fri, 4 Jun 2010 00:29:51 +0000 (00:29 +0000)]
Remove a couple of unnecessary uses of IsStandardConversion.

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

14 years agoCheck the output of this test.
Eli Friedman [Thu, 3 Jun 2010 23:34:11 +0000 (23:34 +0000)]
Check the output of this test.

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