reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
    1
    2
    3
    4
    5
    6
    7
    8
    9
   10
   11
   12
   13
   14
   15
   16
   17
   18
   19
   20
   21
   22
   23
   24
   25
   26
   27
   28
   29
   30
   31
   32
   33
   34
   35
   36
// RUN: rm -rf %t
// RUN: %clang_cc1 -fmodules-cache-path=%t -fmodules -fimplicit-module-maps -I %S/Inputs %s -verify
// RUN: %clang_cc1 -fmodules-cache-path=%t -fmodules -fimplicit-module-maps -I %S/Inputs -x c %s -verify
// RUN: %clang_cc1 -fmodules-cache-path=%t -fmodules -fimplicit-module-maps -I %S/Inputs -x objective-c++ %s -verify

// RUN: rm -rf %t.pch.cache
// 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
// RUN: %clang_cc1 -fmodules-cache-path=%t.pch.cache -fmodules -fimplicit-module-maps -I %S/Inputs %s -include-pch %t.pch %s -verify

// expected-no-diagnostics

void use_constant_string_builtins1(void) {
  (void)__builtin___CFStringMakeConstantString("");
  (void)__builtin___NSStringMakeConstantString("");
}

#include "builtin.h"

int foo() {
  return __builtin_object_size(p, 0);
}

#include "builtin_sub.h"

int bar() {
  return __builtin_object_size(p, 0);
}

int baz() {
  return IS_CONST(0);
}

void use_constant_string_builtins2(void) {
  (void)__builtin___CFStringMakeConstantString("");
  (void)__builtin___NSStringMakeConstantString("");
}