brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.3 KiB · a28acba Raw
118 lines · cpp
1// RUN: rm -rf %t2// RUN: mkdir -p %t3// RUN: split-file %s %t4// RUN: %clang_cc1 -std=c++20 %t/foo.cppm -emit-module-interface -o %t/foo.pcm5// RUN: %clang_cc1 -std=c++20 -fprebuilt-module-path=%t %t/use.cpp -dump-minimization-hints=%t/decls6// RUN: cat %t/decls7// RUN: cat %t/decls | FileCheck -check-prefix=RANGE %s8// RANGE:{9// RANGE-NEXT:"required_ranges": [10// RANGE-NEXT:  {11// RANGE-NEXT:    "file": "{{.+}}foo.cppm",12// RANGE-NEXT:    "range": [13// RANGE-NEXT:      {14// RANGE-NEXT:        "from": {15// RANGE-NEXT:          "line": 3,16// RANGE-NEXT:          "column": 117// RANGE-NEXT:        },18// RANGE-NEXT:        "to": {19// RANGE-NEXT:          "line": 3,20// RANGE-NEXT:          "column": 2221// RANGE-NEXT:        }22// RANGE-NEXT:      },23// RANGE-NEXT:      {24// RANGE-NEXT:        "from": {25// RANGE-NEXT:          "line": 4,26// RANGE-NEXT:          "column": 327// RANGE-NEXT:        },28// RANGE-NEXT:        "to": {29// RANGE-NEXT:          "line": 4,30// RANGE-NEXT:          "column": 931// RANGE-NEXT:        }32// RANGE-NEXT:      },33// RANGE-NEXT:      {34// RANGE-NEXT:        "from": {35// RANGE-NEXT:          "line": 4,36// RANGE-NEXT:          "column": 1037// RANGE-NEXT:        },38// RANGE-NEXT:        "to": {39// RANGE-NEXT:          "line": 4,40// RANGE-NEXT:          "column": 4341// RANGE-NEXT:        }42// RANGE-NEXT:      },43// RANGE-NEXT:      {44// RANGE-NEXT:        "from": {45// RANGE-NEXT:          "line": 6,46// RANGE-NEXT:          "column": 147// RANGE-NEXT:        },48// RANGE-NEXT:        "to": {49// RANGE-NEXT:          "line": 6,50// RANGE-NEXT:          "column": 251// RANGE-NEXT:        }52// RANGE-NEXT:      },53// RANGE-NEXT:      {54// RANGE-NEXT:        "from": {55// RANGE-NEXT:          "line": 8,56// RANGE-NEXT:          "column": 157// RANGE-NEXT:        },58// RANGE-NEXT:        "to": {59// RANGE-NEXT:          "line": 8,60// RANGE-NEXT:          "column": 761// RANGE-NEXT:        }62// RANGE-NEXT:      },63// RANGE-NEXT:      {64// RANGE-NEXT:        "from": {65// RANGE-NEXT:          "line": 8,66// RANGE-NEXT:          "column": 867// RANGE-NEXT:        },68// RANGE-NEXT:        "to": {69// RANGE-NEXT:          "line": 8,70// RANGE-NEXT:          "column": 2571// RANGE-NEXT:        }72// RANGE-NEXT:      },73// RANGE-NEXT:      {74// RANGE-NEXT:        "from": {75// RANGE-NEXT:          "line": 9,76// RANGE-NEXT:          "column": 377// RANGE-NEXT:        },78// RANGE-NEXT:        "to": {79// RANGE-NEXT:          "line": 9,80// RANGE-NEXT:          "column": 3681// RANGE-NEXT:        }82// RANGE-NEXT:      },83// RANGE-NEXT:      {84// RANGE-NEXT:        "from": {85// RANGE-NEXT:          "line": 11,86// RANGE-NEXT:          "column": 187// RANGE-NEXT:        },88// RANGE-NEXT:        "to": {89// RANGE-NEXT:          "line": 11,90// RANGE-NEXT:          "column": 291// RANGE-NEXT:        }92// RANGE-NEXT:      }93// RANGE-NEXT:    ]94// RANGE-NEXT:  }95// RANGE-NEXT:]96// RANGE-NEXT:}97 98//--- foo.cppm99export module foo;100 101namespace piecemeal { // line 3102  export int used(int n) { return n + 1; }103  export int unused(int n) { return n + 2; }104}105 106export namespace whole { // line 8107  int used(int n) { return n + 1; }108  int unused(int n) { return n + 3; }109} // line 11110 111//--- use.cpp112import foo;113 114int main() {115  piecemeal::used(4);  // only one of the functions used from each namespace.116  whole::used(4);117}118