diff options
author | Hans Wennborg <hans@hanshq.net> | 2014-06-25 22:19:48 +0000 |
---|---|---|
committer | Hans Wennborg <hans@hanshq.net> | 2014-06-25 22:19:48 +0000 |
commit | 82dd877e8a4fe1cbab27be2b067fe7724a07a875 (patch) | |
tree | c0583393230e9037ebcac23a151c94417ea49892 /clang/test/Parser/MicrosoftExtensions.cpp | |
parent | c010ddb73db9a3a89ff65fb2a653daeae3744d86 (diff) | |
download | bcm5719-llvm-82dd877e8a4fe1cbab27be2b067fe7724a07a875.tar.gz bcm5719-llvm-82dd877e8a4fe1cbab27be2b067fe7724a07a875.zip |
Don't allow dllimport variables in constant initializers
This is a follow-up to David's r211677. For the following code,
we would end up referring to 'foo' in the initializer for 'arr',
and then fail to link, because 'foo' is dllimport and needs to be
accessed through the __imp_?foo.
__declspec(dllimport) extern const char foo[];
const char* f() {
static const char* const arr[] = { foo };
return arr[0];
}
Differential Revision: http://reviews.llvm.org/D4299
llvm-svn: 211736
Diffstat (limited to 'clang/test/Parser/MicrosoftExtensions.cpp')
-rw-r--r-- | clang/test/Parser/MicrosoftExtensions.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/clang/test/Parser/MicrosoftExtensions.cpp b/clang/test/Parser/MicrosoftExtensions.cpp index 7f3ef6d903c..076de7cd785 100644 --- a/clang/test/Parser/MicrosoftExtensions.cpp +++ b/clang/test/Parser/MicrosoftExtensions.cpp @@ -118,7 +118,7 @@ typedef COM_CLASS_TEMPLATE_REF<struct_with_uuid, __uuidof(struct_with_uuid)> COM COM_CLASS_TEMPLATE_REF<int, __uuidof(struct_with_uuid)> good_template_arg; -COM_CLASS_TEMPLATE<int, __uuidof(struct_with_uuid)> bad_template_arg; // expected-error {{non-type template argument of type 'const _GUID' is not a constant expression}} +COM_CLASS_TEMPLATE<int, __uuidof(struct_with_uuid)> bad_template_arg; // expected-error {{non-type template argument of type 'const _GUID' cannot be converted to a value of type 'const GUID *' (aka 'const _GUID *')}} namespace PR16911 { struct __declspec(uuid("{12345678-1234-1234-1234-1234567890aB}")) uuid; |