1// RUN: rm -rf %t
2// RUN: %clang_cc1 -fmodules-cache-path=%t -fmodules -fimplicit-module-maps -I %S/Inputs %s -verify
3// RUN: %clang_cc1 -fmodules-cache-path=%t -fmodules -fimplicit-module-maps -I %S/Inputs -x c %s -verify
4// RUN: %clang_cc1 -fmodules-cache-path=%t -fmodules -fimplicit-module-maps -I %S/Inputs -x objective-c++ %s -verify
5
6// RUN: rm -rf %t.pch.cache
7// RUN: %clang_cc1 -fmodules-cache-path=%t.pch.cache -fmodules -fimplicit-module-maps -I %S/Inputs -emit-pch -o %t.pch -x objective-c-header %S/Inputs/use-builtin.h
8// RUN: %clang_cc1 -fmodules-cache-path=%t.pch.cache -fmodules -fimplicit-module-maps -I %S/Inputs %s -include-pch %t.pch %s -verify
9
10// expected-no-diagnostics
11
12void use_constant_string_builtins1(void) {
13  (void)__builtin___CFStringMakeConstantString("");
14  (void)__builtin___NSStringMakeConstantString("");
15}
16
17#include "builtin.h"
18
19int foo() {
20  return __builtin_object_size(p, 0);
21}
22
23#include "builtin_sub.h"
24
25int bar() {
26  return __builtin_object_size(p, 0);
27}
28
29int baz() {
30  return IS_CONST(0);
31}
32
33void use_constant_string_builtins2(void) {
34  (void)__builtin___CFStringMakeConstantString("");
35  (void)__builtin___NSStringMakeConstantString("");
36}
37