#
d106a98f |
| 03-May-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Use the standard values for the __cplusplus macro, even when in GNU mode. GCC dropped its prior behavior of always defining __cplusplus to 1 in GNU mode in version 4.7.
llvm-svn: 156113
|
Revision tags: llvmorg-3.1.0-rc2, llvmorg-3.1.0-rc1 |
|
#
01ba47d7 |
| 13-Apr-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Implement the missing pieces needed to support libstdc++4.7's <atomic>: __atomic_test_and_set, __atomic_clear, plus a pile of undocumented __GCC_* predefined macros.
Implement library fallback for _
Implement the missing pieces needed to support libstdc++4.7's <atomic>: __atomic_test_and_set, __atomic_clear, plus a pile of undocumented __GCC_* predefined macros.
Implement library fallback for __atomic_is_lock_free and __c11_atomic_is_lock_free, and implement __atomic_always_lock_free.
Contrary to their documentation, GCC's __atomic_fetch_add family don't multiply the operand by sizeof(T) when operating on a pointer type. libstdc++ relies on this quirk. Remove this handling for all but the __c11_atomic_fetch_add and __c11_atomic_fetch_sub builtins.
Contrary to their documentation, __atomic_test_and_set and __atomic_clear take a first argument of type 'volatile void *', not 'void *' or 'bool *', and __atomic_is_lock_free and __atomic_always_lock_free have an argument of type 'const volatile void *', not 'void *'.
With this change, libstdc++4.7's <atomic> passes libc++'s atomic test suite, except for a couple of libstdc++ bugs and some cases where libc++'s test suite tests for properties which implementations have latitude to vary.
llvm-svn: 154640
show more ...
|
#
c0c0455f |
| 08-Apr-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Teach Clang about PIE compilations. This is the first step of PR12380.
First, this patch cleans up the parsing of the PIC and PIE family of options in the driver. The existing logic failed to claim
Teach Clang about PIE compilations. This is the first step of PR12380.
First, this patch cleans up the parsing of the PIC and PIE family of options in the driver. The existing logic failed to claim arguments all over the place resulting in kludges that marked the options as unused. Instead actually walk all of the arguments and claim them properly.
We now treat -f{,no-}{pic,PIC,pie,PIE} as a single set, accepting the last one on the commandline. Previously there were lots of ordering bugs that could creep in due to the nature of the parsing. Let me know if folks would like weird things such as "-fPIE -fno-pic" to turn on PIE, but disable full PIC. This doesn't make any sense to me, but we could in theory support it.
Options that seem to have intentional "trump" status (-static, -mkernel, etc) continue to do so and are commented as such.
Next, a -pie-level flag is threaded into the frontend, rigged to a language option, and handled preprocessor, setting up the appropriate defines. We'll now have the correct defines when compiling with -fpie.
The one place outside of the preprocessor that was inspecting the PIC level (as opposed to the relocation model, which is set and handled separately, yay!) is in the GNU ObjC runtime. I changed it to exactly preserve existing behavior. If folks want to change its behavior in the face of PIE, they can do that in a separate patch.
Essentially the only functionality changed here is the preprocessor defines and bug-fixes to the argument management.
Tests have been updated and extended to test all of this a bit more thoroughly.
llvm-svn: 154291
show more ...
|
#
bbafb8a7 |
| 11-Mar-2012 |
David Blaikie <dblaikie@gmail.com> |
Unify naming of LangOptions variable/get function across the Clang stack (Lex to AST).
The member variable is always "LangOpts" and the member function is always "getLangOpts".
Reviewed by Chris La
Unify naming of LangOptions variable/get function across the Clang stack (Lex to AST).
The member variable is always "LangOpts" and the member function is always "getLangOpts".
Reviewed by Chris Lattner
llvm-svn: 152536
show more ...
|
#
b4489162 |
| 10-Mar-2012 |
Aaron Ballman <aaron@aaronballman.com> |
No longer defining GNUC mode when compiling for Microsoft compatibility. This allows people's cross-platform compiler-specific macros to work properly.
llvm-svn: 152512
|
#
7b93f636 |
| 09-Mar-2012 |
Daniel Dunbar <daniel@zuster.org> |
[Basic] Rename LangOptions::NoInline to NoInlineDefine, to make things a bit more obvious.
llvm-svn: 152408
|
#
0867d9cf |
| 18-Feb-2012 |
David Chisnall <csdavec@swan.ac.uk> |
Implement #pragma redefine_extname.
This fixes PR5172 and allows clang to compile C++ programs on Solaris using the system headers.
llvm-svn: 150881
|
#
2c1dd271 |
| 05-Feb-2012 |
Dylan Noblesmith <nobled@dreamwidth.org> |
Basic: import SmallString<> into clang namespace
(I was going to fix the TODO about DenseMap too, but that would break self-host right now. See PR11922.)
llvm-svn: 149799
|
#
fa35df62 |
| 16-Jan-2012 |
David Chisnall <csdavec@swan.ac.uk> |
Some improvements to the handling of C11 atomic types:
- Add atomic-to/from-nonatomic cast types - Emit atomic operations for arithmetic on atomic types - Emit non-atomic stores for initialisation o
Some improvements to the handling of C11 atomic types:
- Add atomic-to/from-nonatomic cast types - Emit atomic operations for arithmetic on atomic types - Emit non-atomic stores for initialisation of atomic types, but atomic stores and loads for every other store / load - Add a __atomic_init() intrinsic which does a non-atomic store to an _Atomic() type. This is needed for the corresponding C11 stdatomic.h function. - Enables the relevant __has_feature() checks. The feature isn't 100% complete yet, but it's done enough that we want people testing it.
Still to do:
- Make the arithmetic operations on atomic types (e.g. Atomic(int) foo = 1; foo++;) use the correct LLVM intrinsic if one exists, not a loop with a cmpxchg. - Add a signal fence builtin - Properly set the fenv state in atomic operations on floating point values - Correctly handle things like _Atomic(_Complex double) which are too large for an atomic cmpxchg on some platforms (this requires working out what 'correctly' means in this context) - Fix the many remaining corner cases
llvm-svn: 148242
show more ...
|
#
ad01b31b |
| 03-Jan-2012 |
Douglas Gregor <dgregor@apple.com> |
Add a "Modules" language option, which subsumes the previous "AutoModuleImport" preprocessor option and is tied to -fmodules.
llvm-svn: 147448
|
#
3a5ff5cb |
| 03-Jan-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Teach the frontend to provide the builtin preprocessor defines for -ffast-math.
llvm-svn: 147440
|
#
cf501477 |
| 28-Dec-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Add a target hook for FLT_EVAL_METHOD and use it to set the value on x86 with sse disabled.
x87 math evaluates everything with 80 bits precision, so we have to set FLT_EVAL_METHOD to "2".
llvm-svn:
Add a target hook for FLT_EVAL_METHOD and use it to set the value on x86 with sse disabled.
x87 math evaluates everything with 80 bits precision, so we have to set FLT_EVAL_METHOD to "2".
llvm-svn: 147311
show more ...
|
#
3c6982b9 |
| 23-Dec-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Give C11's __STDC_VERSION__ the final value.
llvm-svn: 147222
|
#
e56f3932 |
| 23-Dec-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Mass rename C1x references to C11. The name hasn't proliferated like "C++0x" so this patch is surprisingly small.
Also drop -Wc1x-extensions in favor of -Wc11-extensions. I don't think we need to ke
Mass rename C1x references to C11. The name hasn't proliferated like "C++0x" so this patch is surprisingly small.
Also drop -Wc1x-extensions in favor of -Wc11-extensions. I don't think we need to keep this around for compatibility.
llvm-svn: 147221
show more ...
|
#
b0ffe50d |
| 09-Dec-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Move a free function from the Frontend library into the Lex library as part of HeaderSearch. This function just normalizes filenames for use inside of a synthetic include directive, but it is used in
Move a free function from the Frontend library into the Lex library as part of HeaderSearch. This function just normalizes filenames for use inside of a synthetic include directive, but it is used in both the Frontend and Serialization libraries so it needs a common home.
llvm-svn: 146227
show more ...
|
Revision tags: llvmorg-3.0.0, llvmorg-3.0.0-rc4, llvmorg-3.0.0-rc3, llvmorg-3.0.0-rc2 |
|
#
2c4542d3 |
| 28-Oct-2011 |
Douglas Gregor <dgregor@apple.com> |
Give __STDC_VERSION__ the value 201001L when we're in C1x mode. The committee hasn't set a value for __STDC_VERSION__ yet, so this is a placeholder. But at least it's > 199901L.
llvm-svn: 143245
|
#
7bba3ef8 |
| 19-Oct-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Define __STDC__ in -fms-extensions mode; defining it is consistent with gcc, and not defining it causes the system headers on multiple platforms to break with -fms-extensions because they assume the
Define __STDC__ in -fms-extensions mode; defining it is consistent with gcc, and not defining it causes the system headers on multiple platforms to break with -fms-extensions because they assume the lack of a definition of __STDC__ implies a traditional (pre-ANSI) preprocessor. PR10324 and <rdar://problem/10313809> .
llvm-svn: 142554
show more ...
|
Revision tags: llvmorg-3.0.0-rc1 |
|
#
eaed8d57 |
| 27-Sep-2011 |
Douglas Gregor <dgregor@apple.com> |
Remove the egregious hack that made Objective-C++ ARC work with older versions of libc++. Newer versions of libc++ know how to deal with ARC properly. Fixes <rdar://problem/10062179>.
llvm-svn: 1406
Remove the egregious hack that made Objective-C++ ARC work with older versions of libc++. Newer versions of libc++ know how to deal with ARC properly. Fixes <rdar://problem/10062179>.
llvm-svn: 140651
show more ...
|
#
9c902b55 |
| 25-Sep-2011 |
David Blaikie <dblaikie@gmail.com> |
Rename Diagnostic to DiagnosticsEngine as per issue 5397
llvm-svn: 140478
|
#
55071592 |
| 20-Sep-2011 |
Eric Christopher <echristo@apple.com> |
Remove __WCHAR_UNSIGNED__ and anything that used it.
llvm-svn: 140155
|
#
0706d203 |
| 17-Sep-2011 |
Francois Pichet <pichet2000@gmail.com> |
Rename LangOptions::Microsoft to LangOptions::MicrosoftExt to make it clear that this flag must be used only for Microsoft extensions and not emulation; to avoid confusion with the new LangOptions::M
Rename LangOptions::Microsoft to LangOptions::MicrosoftExt to make it clear that this flag must be used only for Microsoft extensions and not emulation; to avoid confusion with the new LangOptions::MicrosoftMode flag.
Many of the code now under LangOptions::MicrosoftExt will eventually be moved under the LangOptions::MicrosoftMode flag.
llvm-svn: 139987
show more ...
|
#
97eec24b |
| 15-Sep-2011 |
Douglas Gregor <dgregor@apple.com> |
Add an experimental flag -fauto-module-import that automatically turns #include or #import direcctives of framework headers into module imports of the corresponding framework module.
llvm-svn: 139860
|
#
79a91418 |
| 13-Sep-2011 |
Douglas Gregor <dgregor@apple.com> |
Switch LangOptions over to a .def file that describes header of the language options. Use that .def file to declare the LangOptions class and initialize all of its members, eliminating a source of an
Switch LangOptions over to a .def file that describes header of the language options. Use that .def file to declare the LangOptions class and initialize all of its members, eliminating a source of annoying initialization bugs.
AST serialization changes are next up.
llvm-svn: 139605
show more ...
|
#
b63ab947 |
| 12-Sep-2011 |
Douglas Gregor <dgregor@apple.com> |
Only predefine the __EXCEPTIONS macro if C++ exceptions are turned on. Only predefine the OBJC_ZEROCOST_EXCEPTIONS macro if Objective-C exceptions are turned on. Fixes PR10910.
llvm-svn: 139496
|
#
0e62c1cc |
| 23-Jul-2011 |
Chris Lattner <sabre@nondot.org> |
remove unneeded llvm:: namespace qualifiers on some core types now that LLVM.h imports them into the clang namespace.
llvm-svn: 135852
|