blob: ecac1cee60541e0ffa9d593d0cdc6a5891881ef0 [file] [log] [blame]
#define ONE 1
void extractExprMacros(int x) {
bool b = x == ONE;
// CHECK1: {\nreturn x == ONE;\n}
int y = ONE + x;
// CHECK1: {\nreturn ONE + x;\n}
int z = ONE - ONE * ONE;
// CHECK1: {\nreturn ONE - ONE * ONE;\n}
// CHECK1: {\nreturn ONE * ONE;\n}
// CHECK1: {\nreturn - ONE * ONE;\n}
}
// RUN: clang-refactor-test perform -action extract -selected=%s:4:12-4:20 -selected=%s:6:11-6:19 -selected=%s:8:12-8:26 -selected=%s:8:17-8:26 -selected=%s:8:15-8:26 %s | FileCheck --check-prefix=CHECK1 %s
#define MACRO2(x, y) x, y
int function(int x);
// MACRO-ARG3: "static int extracted(int x, int &y, int z) {\nreturn y = MACRO2(x + 2, function(z));\n}\n\n" [[@LINE+4]]:1
// MACRO-ARG2: "static int extracted(int z) {\nreturn function(z);\n}\n\n" [[@LINE+3]]:1
// MACRO-ARG1: "static int extracted(int x) {\nreturn x + 2;\n}\n\n" [[@LINE+2]]:1
;
void extractFromMacroArgument(int x, int y, int z) {
// macro-arg-expr4-begin: +4:7
// macro-arg-expr3-begin: +3:14
// macro-arg-expr2-begin: +2:21
// macro-arg-expr1-begin: +1:14
y = MACRO2(x + 2, function(z)); // comment4
// macro-arg-expr1-end: -1:19 // MACRO-ARG1: "extracted(x)" [[@LINE-1]]:14 -> [[@LINE-1]]:19
// macro-arg-expr2-end: -2:32 // MACRO-ARG2: "extracted(z)" [[@LINE-2]]:21 -> [[@LINE-2]]:32
// macro-arg-expr3-end: -3:32 // MACRO-ARG3: "extracted(x, y, z)" [[@LINE-3]]:3 -> [[@LINE-3]]:33
// macro-arg-expr4-end: -4:19
}
// RUN: clang-refactor-test perform -action extract -selected=macro-arg-expr1 %s | FileCheck --check-prefix=MACRO-ARG1 %s
// RUN: clang-refactor-test perform -action extract -selected=macro-arg-expr2 %s | FileCheck --check-prefix=MACRO-ARG2 %s
// RUN: clang-refactor-test perform -action extract -selected=macro-arg-expr3 %s | FileCheck --check-prefix=MACRO-ARG3 %s
// RUN: clang-refactor-test perform -action extract -selected=macro-arg-expr4 %s | FileCheck --check-prefix=MACRO-ARG3 %s